JMeter远程调用
一般在做测试时因为本地环境无法发大压力,所以借助硬件资源更好,更多的服务器一起发压
一、GUI方式:
1.在负载机上部署jmeter,确保jmeter的bin目录下存在ApacheJMeter.jar与jmeter-server.bat这两个文件。(jdk是否配置好,jmeter是否安装成功)
2. 双击启动负载机的jmeter-server.bat程序
3. 在jmeter控制机的bin目录找到jmeter.properties文件,并修改”remote_hosts”,增加负载机IP,多个IP使用英文逗号隔开,修改后要重启jmeter
4. 进入jmeter控制机的GUI图形界面,远程运行,点击安全即可,点击后,jmeter控制机会自动探测,只要先启动远程负载上的Agent,开始运行测试计划时就会自己连接负载机去完成
5. 停止(可选),点击上面右图的后面两个按钮即可。前者是执行完成当前迭代停 止(比如脚本中有5个请求,在运行第2个的时候收到停止命令,那么将继续执行 完5个请求然后再停止),后者是立即终止
注意:remote_hosts里设置127.0.0.1 。需要控制机也启动jmeter-server.bat
二、非GUI方式:
命令窗口运行没有Jmeter界面,通过DOS命令窗口运行场景。用纯命令方式运行Jmeter是因为Jmeter可视化界面及监听器动态展示结果都比较消耗负载机资 源,在大并发情况下GUI方式往往会导致负载机资源紧张,会对性能结果产生影响。 这个影响不是指被测系统的性能受到影响,而是指负载机的性能受到影响, 导致负载量上不去,比如命令模式100个线程可产生100TPS的负载,而GUI方式只 产生80TPS的负载。所以推荐进行性能测试的时候,使用命令方式来运行测试计划
Jmeter命令窗口方式运行场景的命令如下:
1、java -jar %JMETER_HOME%\bin\ApacheJMeter.jar -n -t %JMETER_HOME%\script\script.jmx -r -l result.jtl
2、%JMETER_HOME%\bin\jmeter -n -t %JMETER_HOME%\script\script.jmx -r -l result.jtl
注意:两条命令都可以运行测试计划,其中%JMETER_HOME%必须配置jmeter的环境变量,%JMETER_HOME%\script\script.jmx为jmeter脚本存放路径
jmeter命令行工具部分参数说明:
-n:非GUI方式运行。
-t:指定运行的测试脚本地址与名称,可以是相对或绝对路径
-h:查看帮助
-v:查看版本
-p:指定读取Jmeter属性文件,比如jmeter.properties文件中设置的
-l:记录测试结果到文件,指定名称与路径,可以是相对或绝对路径
-s:以服务器方式运行(远程方式)
-r:开启远程负载机,远程负载机列表在jmeter.properties文件中指定
-R:开启远程负载机,可以指定负载机IP,会覆盖jmeter.properties中的设置
-L:定义Jmeter的日志级别,如DEBUG、INFO、ERROR等
-H:设置代理IP
-P:设置代理端口
-u:设置代理帐号
-a:设置代理帐号密码
-X:停止远程执行
-J:定义Jmeter属性,等同于在jmeter.properties中设置
-G:定义Jmeter全局属性,等同于在Global.properties中设置,线程间可相互共享
jmeter不能远程出现的可能原因(解决):
1.加压机(负载机)jmeter-server.bat没有开启
2.Jmeter.properties改了配置,没有重启jmeter,让配置文件生效
3.负载机的jmeter版本和控制机的jmeter版本不一样
4.如果有CSV参数化,必须把CSV文件,复制到每一个负载机上,同一位置,同一名称
5.控制机防火墙没有关
6.把其它网络连接关掉(如虚拟机的Vmnet1,Vmnet8),再双击jmeter-server.bat看网络IP是不是本机的