jmeter无法从使用自己的代理的ERP应用程序捕获请求
问题描述:
我一直在考察在Eclipse之上测试用Java编写的ERP应用程序。该应用程序带有自己的jre等。我没有访问源代码,但我现在从开发人员和我自己的研究中了解到,应用程序将其后端驻留在Amazon云上。jmeter无法从使用自己的代理的ERP应用程序捕获请求
设置我的jmeter代理后,我注意到它捕获了任何东西,而不是从我的ERP应用程序。 ERP应用程序只能绕过我设置的任何代理设置。
我注意到的唯一有趣的事情是,如果我在系统设置中将我的jmeter代理设置为SOCKS代理(或者只是运行ERP应用程序的VM的SOCKS代理),那么整个应用程序就会崩溃。
这使我相信应用程序可能在某种代理本身的后面,这会阻止jmeter捕获请求。
有没有人有任何建议?
答
基本上你需要完成两个步骤:
-
开始JMeter的HTTP(S) Test Script Recorder。最简单的方法是使用JMeter Templates feature:
- 从JMeter的主菜单中选择
File -> Templates -> Recording
,然后单击“创建” - 展开并单击“开始”
- 从JMeter的主菜单中选择
-
配置您的应用程序使用的JMeter作为代理。据Java Networking and Proxies文章,你需要设置以下系统属性:
http.proxyHost=localhost http.proxyPort=8888
以防万一您的应用程序正在使用HTTPS传输:
https.proxyHost=localhost https.proxyPort=8888
的属性可以通过像-D命令行参数设置:
java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888 ... your application
或者您可以将它们添加到您的应用程序启动脚本。
已经尝试设置HTTP和HTTPS的系统属性,但它们什么都不做,应用程序继续工作,但jmeter无法捕获任何请求。只有当我设置socksProxyHost和socksProxyPort时,应用程序实际上会因网络连接错误而崩溃。 – Toms