JMeter non-GUI 模式执行

在用JMeter进行压测时,为了少占用客户端资源,一般不使用带有界面的GUI模式运行。所以在进行正式的压测时一定要使用non-gui模式运行,如果并发数很高或者客户端的硬件资源比较一般的话,还可以以server模式用多个client进行分布式测试。

命令行模式的优势

  • 没有交互界面,节约系统资源
  • 只需启动命令行,输入命令执行即可,可以远程或分部执行
  • 易于持续集成,通过shell脚本或批处理命令执行,易于生成报告

命令参数

命令参数 命令解释
-n 设置命令行模式
-t

指定JMX脚本路径

(当前目录or绝对路径or相对路径)

-l

指定结果文件路径(jtl or csv)

(路径不存在将自动创建)

-j

指定执行日志路径

(路径不存在不会自动创建,同时将日志输出至命令行控制台)

-r

 设置分布式(远程)执行

服务器列表由 JMETER_HOMEinjmeter.properties中remote_hosts 指定

-R

指定远程(分布式)服务器列表

 配置形式同remote_hosts 

-g

 指定测试结果文件路径,仅用于生成测试报表

csv结果文件

-e 设置测试完成后生成测试报表 
-o

指定测试报表生成文件夹,文件夹必须为空或不存在 

-H

指定代理服务器域名或代理服务器IP

-P 指定代理服务器端口号

命令执行

  1. 在 jmeter.properities文件中把#jmeter.save.saveservice.output_format=xml注释掉
  2. 开始—运行—cmd,进入到命令行模式;
  3. cd到JMeter的bin目录下,(如果配置过JMeter的环境变量,在任意目录下都可以执行); 
  4. 执行命令:
1 jmeter -n -t D:XXXXscripts	est.jmx -l D:XXXXjmeter-Non-GUI-resultscsvhtml.csv -e -o D:XXXXjmeter-Non-GUI-resultshtml -j D:XXXXjmeter-Non-GUI-resultslog1-log.log

通过传参就可以实现不同线程数和持续时间的场景测试

1 jmeter -n -t .scripts	est.jmx -J threads=10 -J duration=10  -l .jtl	est001.jtl -j .jtl	est001.log
原文地址:https://www.cnblogs.com/hereisdavid/p/13806236.html