[搬运工系列]-JMeter(十) 命令行(非GUI)模式

时间:2021-07-04 09:07:17

前文 讲述了JMeter分布式运行脚本,以更好的达到预设的性能测试(并发)场景。同时,在前文的第一章节中也提到了 JMeter 命令行(非GUI)模式,那么此文就继续前文,针对 JMeter 的命令行模式进行详细解说。

 

一、应用场景

1、无需交互界面或受环境限制(linux text model)

2、远程或分布式执行

3、持续集成,通过shell脚本或批处理命令均可执行,生成的测试结果可被报表生成模块直接使用,便于生成报告

 

二、命令行模式优点

1、节约系统资源:无需启动界面,节约系统资源

2、便捷快速:仅需启动命令行,输入命令便可执行,是为命令达人最爱

3、易于持续集成:可通过shell脚本命令执行

 

三、参数详解

[搬运工系列]-JMeter(十) 命令行(非GUI)模式

 

四、实例演示

1、执行测试脚本

jmeter -n -t JMeter分布式测试示例.jmx

命令行窗口输出如下所示:

[搬运工系列]-JMeter(十) 命令行(非GUI)模式

日志默认输出路径同 jmx 脚本路径。

 

2、指定结果文件及日志路径

jmeter -n -t JMeter分布式测试示例.jmx -l report\01-result.csv -j report\01-log.log

 命令行窗口输出如下所示:

 [搬运工系列]-JMeter(十) 命令行(非GUI)模式

若日志路径不存在,则JMeter不会自动创建,同时将日志输出至命令行窗口。

结果文件类型为 jtl 或 csv,可通过JMeter的聚合报告浏览结果文件,查看最终的结果,如下所示:

[搬运工系列]-JMeter(十) 命令行(非GUI)模式

 

3、分布式(远程)执行默认服务器列表

jmeter -n -t JMeter分布式测试示例.jmx -r -l report\01-result.csv -j report\01-log.log

命令行窗口输出如下所示:

[搬运工系列]-JMeter(十) 命令行(非GUI)模式

执行机命令行输出如下所示:

[搬运工系列]-JMeter(十) 命令行(非GUI)模式

执行机(Slave)端的日志文件默认生成在用户目录下。

若出现如下图所示情况,请检查:网络是否畅通、服务器域名(IP)及端口是否正确、执行机是否启动 jmeter-server.bat 或 jmeter-server

[搬运工系列]-JMeter(十) 命令行(非GUI)模式

 

4、分布式(远程)执行执行服务器列表

jmeter -n -t JMeter分布式测试示例.jmx -R 10.9.215.47:1029 -l report\01-result.csv -j report\01-log.log

命令行窗口输出如下所示:

[搬运工系列]-JMeter(十) 命令行(非GUI)模式

 

5、设置代理

jmeter -n -t JMeter分布式测试示例.jmx -H 20.9.215.90 -P 9999 -l report\01-result.csv -j report\01-log.log
<br>注意:-H 20.9.215.90 -P 9999:此 IP 及端口号为代理机器的 IP 和 port,当前为我机器的地址及 fiddler 的代理端口

命令行输入如下所示:

[搬运工系列]-JMeter(十) 命令行(非GUI)模式

通过日志信息可知,代理正确。部分日志信息如下所示:

2016/06/15 14:04:02 INFO  - jmeter.JMeter: Set http[s].proxyHost: 10.9.215.90 Port: 9999
2016/06/15 14:04:02 INFO  - jmeter.services.FileServer: Default base = 'I:\CNblogs\JMeter\023'
2016/06/15 14:04:02 INFO  - jmeter.services.FileServer: Set new  base = 'I:\CNblogs\JMeter\023'

通过抓包工具 fiddler 抓取的包如下所示:

[搬运工系列]-JMeter(十) 命令行(非GUI)模式

通过 fiddler 抓图的信息同样可知,代理设置已生效!