JMETER - 使用记录器对IP地址(而不是域名)的HTTPS请求

时间:2018-04-16 15:49:57

标签: https jmeter

我有一些负载测试要做。我的Web应用程序没有域名(只有IP地址)并使用HTTPS。

当尝试使用JMeter的脚本记录器时,我的Web浏览器出现以下错误:

An error occurred during a connection to 188.165.49.217:8443. SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG

如果我查看JMeter的日志,我会看到以下内容:

Problem with keystore
java.io.IOException:   >> erreur keytool : java.lang.RuntimeException: 
java.io.IOException: DNSName components must begin with a letter <<
Command failed, code: 1
'"C:\Program Files (x86)\Java\jre1.8.0_121\bin\keytool" -genkeypair -alias 1XX.XXX.XX.XXX -dname "cn=1XX.XXX.XX.XXX, o=JMeter Proxy (TEMPORARY TRUST ONLY)" -keyalg RSA -keystore proxyserver.jks -storepass {redacted} -keypass {redacted} -validity 7 -ext san=dns:1XX.XXX.XX.XXX'
    at org.apache.jorphan.exec.KeyToolUtils.genkeypair(KeyToolUtils.java:171) ~[jorphan.jar:4.0 r1823414]
    at org.apache.jorphan.exec.KeyToolUtils.generateSignedCert(KeyToolUtils.java:285) ~[jorphan.jar:4.0 r1823414]
    at org.apache.jorphan.exec.KeyToolUtils.generateHostCert(KeyToolUtils.java:276) ~[jorphan.jar:4.0 r1823414]
    at org.apache.jmeter.protocol.http.proxy.ProxyControl.updateKeyStore(ProxyControl.java:1563) ~[ApacheJMeter_http.jar:4.0 r1823414]
    at org.apache.jmeter.protocol.http.proxy.Proxy.getSSLSocketFactory(Proxy.java:324) [ApacheJMeter_http.jar:4.0 r1823414]
    at org.apache.jmeter.protocol.http.proxy.Proxy.startSSL(Proxy.java:429) [ApacheJMeter_http.jar:4.0 r1823414]
    at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:194) [ApacheJMeter_http.jar:4.0 r1823414]
2018-04-16 17:33:24,397 WARN o.a.j.p.h.p.Proxy: [61014]  Unable to negotiate SSL transaction, no keystore?
2018-04-16 17:33:24,397 ERROR o.a.j.p.h.p.Proxy: [61014]  Exception when processing sample java.io.IOException: Unable to negotiate SSL transaction, no keystore?
        at org.apache.jmeter.protocol.http.proxy.Proxy.startSSL(Proxy.java:446) ~[ApacheJMeter_http.jar:4.0 r1823414]
        at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:194) [ApacheJMeter_http.jar:4.0 r1823414]
2018-04-16 17:33:24,398 WARN o.a.j.p.h.p.Proxy: [61014]  Exception while writing error java.net.SocketException: Connection reset by peer: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method) ~[?:1.8.0_121]
    at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[?:1.8.0_121]
        at java.net.SocketOutputStream.write(Unknown Source) ~[?:1.8.0_121]
        at java.io.DataOutputStream.writeBytes(Unknown Source) ~[?:1.8.0_121]
        at org.apache.jmeter.protocol.http.proxy.Proxy.writeErrorToClient(Proxy.java:561) 
[ApacheJMeter_http.jar:4.0 r1823414]
        at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:258)     [ApacheJMeter_http.jar:4.0 r1823414]

我看到它的方式,JMeterScript Recorder不接受HTTPS录音的IP地址,我是对的吗?有没有办法解决这个问题(除了我们的应用程序的域名)?

此致 埃利

2 个答案:

答案 0 :(得分:1)

一个选项是修改运行jmeter的服务器上的hosts文件,以便jmeter可以解析域名。您可以找到有关如何修改操作系统here的主机文件的信息。

答案 1 :(得分:0)

自apache-jmeter的 5.1版以来,此问题已解决,您可以输入以数字开头的IP或域名。