JMeter https代理记录不起作用

Abh*_*kar 6 ssl proxy google-chrome jmeter load-testing

我正在JMeter上录制基于JSF的Web应用程序的https会话,但它无法正常工作.

目标应用程序托管在: AWS
JMeter版本: 2.9 r1437961
浏览器: Chrome版本29.0.1547.65
Java: java版本"1.6.0_27"
OpenJDK运行时环境(IcedTea6 1.12.5)(6b27-1.12.5-0ubuntu0.12.04.1)
OpenJDK Server VM(build 20.0-b12,混合模式)
OS: Ubuntu 12.04

代理服务器配置:
端口:8084
目标控制器:测试计划>线程组
捕获HTTP标头已选中.
HTTP样本设置:
类型:未选中.按照重定向并使用KeepAlive进行检查.

要排除的网址格式:
1.已添加建议的排除
2..*\.jsf

被抛出的异常(来自JMeter.log):

ERROR - jmeter.protocol.http.proxy.Proxy:  java.net.SocketException: Connection closed by remote host
    at sun.security.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1377)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:62)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at org.apache.jmeter.protocol.http.proxy.Proxy.writeToClient(Proxy.java:404)
    at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:218)

ERROR - jmeter.protocol.http.proxy.Proxy: Problem with SSL certificate? Ensure browser is set to accept the JMeter proxy cert: Connection closed by remote host java.net.SocketException: Connection closed by remote host
    at sun.security.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1377)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:62)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at org.apache.jmeter.protocol.http.proxy.Proxy.writeToClient(Proxy.java:404)
    at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:218)
Run Code Online (Sandbox Code Playgroud)


我遵循的步骤如下:
1.将代理服务器设置为8084.
2.从chrome更改代理设置:将https proxy设置为8084.
3.禁用所有chrome扩展和chrome帐户.
4.启动jmeter代理服务器并点击https://url/login
5.浏览器上出现证书确认页面.同时,jmeter.log显示:

   2013/09/11 13:16:30 INFO  - jmeter.protocol.http.proxy.Daemon: Creating Daemon Socket on port: 8084 
2013/09/11 13:16:30 INFO  - jmeter.protocol.http.proxy.Daemon: Proxy up and running! 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: Proxy will remove the headers: If-Modified-Since,If-None-Match,Host 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: Opened Keystore file: /home/abhijeet/Automation_Dev/LoadAutomation/Jmeter/apache-jmeter-2.9/bin/proxyserver.jks 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: KeyStore for SSL loaded OK and put host in map (clients4.google.com) 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: Opened Keystore file: /home/abhijeet/Automation_Dev/LoadAutomation/Jmeter/apache-jmeter-2.9/bin/proxyserver.jks 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: KeyStore for SSL loaded OK and put host in map (translate.googleapis.com) 
2013/09/11 13:22:40 INFO  - jmeter.protocol.http.sampler.HTTPHCAbstractImpl: Local host = abhijeet-desktop 
2013/09/11 13:22:40 INFO  - jmeter.protocol.http.sampler.HTTPHC4Impl: HTTP request retry count = 1 
2013/09/11 13:22:40 INFO  - jmeter.protocol.http.sampler.HTTPHC4Impl: Setting up HTTPS TrustAll scheme 
2013/09/11 13:22:40 INFO  - jmeter.protocol.http.proxy.FormCharSetFinder: Using htmlparser version: 2.0 (Release Build Sep 17, 2006)<br>
Run Code Online (Sandbox Code Playgroud)

6.线程组开始向这些域显示未知请求:

1. translate.googleapis.com
2. clients4.google.com
3. www.google.co.in
4. www.google.com
5. ssl.gstatic.com
6. safebrowsing.google.com
7. alt1-safebrowsing.google.com
8. clients4.google.com
9. www.gstatic.com
.
.
n all other requests going to the target application.
Run Code Online (Sandbox Code Playgroud)

(对于每个请求,抛出上述异常)

我相信,上面的谷歌域名请求被记录,因为Chrome正在动态搜索谷歌上的关键字,而我正在地址栏中键入url字符串.但我不希望这些请求记录在线程组中.

此外,我尝试了这些页面中的解决方案,但它们对我不起作用:
Link 1
Link 2
Link 3

我不明白,为什么JMeter无法使用它已有的假证书.我检查了chrome中的SSL设置,但找不到任何JMeter证书.需要帮忙!!

erh*_*hun 2

我有同样的问题并解决它以信任证书。就像我看的时候你一样

Options > Advanced > Certificates > View Certificates ==> Authorities
Run Code Online (Sandbox Code Playgroud)

并且看不到名称ApacheJMeterRootCertificate.crt或相关名称,但我意识到有一个类似的名称

_除非这是您的证书,否则请勿安装

我单击该对象并单击该对象下的“Edit_Trust”这两个项目。我分享我的截图。我希望这可以帮助您和其他人。

我使用火狐浏览器。在 chrome 上应该有类似的方法来编辑证书。

在此输入图像描述

  • 它起作用了!谢啦!!火狐 50.1.0 和 Jmeter 3.0 r1743807 (2认同)