问题关联:
最近使用JMeter进行HTTP服务器性能测试,在并发数上升到一定量时,产生错误:
Response code: Non HTTP response code:org.apache.http.conn.ConnectTimeoutException
Response message: Non HTTP responsemessage: Connect to 10.15.107.112:9089 timed out
错误分析:Non HTTPresponse code说明没有收到来自服务器的response。导致ConnectTimeoutException错误的可能有JMeter本身问题,也可能是服务器问题。
解决方案:简单的方法,通过分布式运行JMeter的方式来消除JMeter本身的影响。
分布式配置&实施测试:
在JMeter分布式测试中,分为控制器(controller)和代理(agent)概念。需要手动部署测试代理,手动修改配置文件。
1、 部署Agent:
配置环境变量,推荐新建JMETER_HOME环境变量,在CLASSPATH加入如下内容:
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar
在%JMETER_HOME%路径的bin下启动jmeter-server.bat(作为JMeter agent)。
2、 修改Controller配置文件:
在作为Controller的JMeter的bin目录下,修改jmeter.properties:
找到字符串remote_hosts,修改为形如remote_hosts=10.15.107.92:1099,localhost:1099的内容,其中1099为缺省RMI通信端口。
注:如果Controller也作为Agent,则也必须加入到remote_hosts中,如localhost在本例中既作为controller也作为agent。
3、 在作为controller的jmeter的bin目录启动jmeter.bat,打开jmeter用户界面。
启动:
点击“运行/远程启动”,可启动某一具体远程代理;
点击“远程全部启动”,启动所有agent执行脚本。
参考:
http://www.cnblogs.com/jackei/archive/2006/09/14/504638.html
http://www.testwo.com/space-778-do-blog-id-6373.html