使用JMeter测试Spring Boot Rest端点时发生SSLException

问题描述

我正在尝试使用JMeter对在端口8080上本地运行的spring boot应用程序进行负载测试。 配置的请求是GET请求,协议是https。我收到以下错误消息:

javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
    at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnkNownRecord(SSLSocketInputRecord.java:439)
    at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:184)
    at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)
    at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1151)
    at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1062)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)

对它的任何输入都会有所帮助吗?

解决方法

您最有可能使用https来访问服务器,而您应该使用http,因为端口8080通常用于http。

否则将https的端口更改为8443

,

您是否在JMeter上交叉检查了端口号?

确保在JMeter中也定义了相同的端口。

https://localhost/application/sub/url

对于上述URL,端口号是443,这是https的默认端口。

https://localhost:8080/application/sub/url

上述URL使用8080进行通信。

请确保已指定正确的端口。

此外,还请注意,JMeter本身不允许未签名的证书。确保证书已通过证书颁发机构正确签名。