jmeter学习指南之非GUI命令行运行详解-创新互联
一、为什么要用命令行运行jmeter?
主要有以下三点:
1) 图形化界面消耗更多资源,如CPU和内存,容易使压力机达到瓶颈,从而影响测试结果。
2) 图形化界面不支持大型的负载测试和性能测试,并发较大时,jmeter会崩溃。
3) 命令行方式可以把脚本配置到Jenkins上实现持续集成,做成自动化测试。
二、解读命令行参数
1、常用格式
jmeter -n -t [jmx脚本路径] -l [测试输出结果文件路径]
参数解释:
-n: 表示 non gui mode,就是非图形化模式
-t: 即testplan,后跟要运行的jmeter脚本的路径和脚本名称。
若指定路径下没有指定名称的脚本,则自动创建。
若没有路径只写脚本名称,则默认是在当前目录查找或创建。
-l: 后跟输出结果文件路径和结果文件名称。
若指定路径下没有指定名称的脚本,则自动创建,可以生成csv或者jtl文件。
若只写脚本名称,则默认是在当前目录查找或创建。
示例: jmeter -n -t testplan.jmx -l test.jtl
示例含义:以命令行模式运行当前目录下的testplan.jmx文件,并在当前目录下输出日志文件test.jtl
2、其它参数命令:
jmeter -n -t test.jmx -R 10.6.5.31,10.6.5.32 -l log.jtl
jmeter -n -t test.jmx -l log.jtl -H 192.168.1.1 -P 8080
-r/R 远程执行 -> 启动远程服务,即分布式执行多台压力机
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
使用-R指定节点时,要首先在这些节点上启动jmeter-server的服务
Linux和windows系统下运行jmeter命令行
三、Linux系统运行jmeter命令行
1、修改配置文件
如果你是第一次使用命令行执行测试脚本,那么看到的输出结果可能是类似下面这样的:
这些信息仅仅告诉我们执行成功啦。
但是我想要看到本次测试的更多结果,要怎么办呢?
可以通过修改jmeter.properties配置文件来解决:
将上面的注释打开,并且值修改成true,就会打开该条记录,jmeter就会将对应的信息输出到我们指定的jtl文件中(不过这样会在压测过程中产生大量的日志文件,真正压测时,最好不要开太多的日志记录),然后可以在结果文件中查看详细的信息。
但是我们想在脚本执行的过程中实时查看结果信息,要怎么做呢?
同样是修改配置文件jmeter.properties
打开上面的summariser.name、summariser.i
nterval、summariser.out这三个配置项,保存,重新运行jmeter,应该就可以在shell里看到统计信息了,如下图所示:
这里显示的信息就相当于GUI界面下聚合报告元件所显示的信息。
其中主要有两种信息:summary + 和summary =,其它项都是类似的
summary + 4386 in 00:00:30:在30秒内增加了4386个请求,其中时间间隔由配置文件中的interval统计频率的值决定
summary = 27455 in 00:03:12:在3分12秒内产生的总请求数是27455个,其中的时间段是从脚本运行开始计算到当前时间为止,一般在脚本运行过程中主要关注 “summary=” 信息即可
146.2/s:系统每秒处理的请求数,相当于TPS
Avg: 684:平均响应时间
Min: 201:最小响应时间
Max: 1499:大响应时间
Err: 0 (0.00%):错误数/率
Active: 100:活动的线程数
2、那么怎么查看生成的jtl文件呢?
把生成的jtl结果文件下载到本地
打开jmeter,添加察看结果树和聚合报告元件
在”文件名”处选择浏览,打开jtl结果文件,即可察看详细结果
3、命令行中的文件路径
示例:jmeter -n -t testplan.jmx -l test.jtl
JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录。比如你在 C:toolsapache-jmeter-3.0bin 目录下执行以上命令,JMeter 会去该目录下寻找 test.jmx 脚本并把执行结果放在该目录。
如果你的脚本在其他目录,而且想要把执行结果放在另外文件夹,需要使用绝对路径告诉 JMeter,比如:
C:toolsapache-jmeter-3.0bin>jmeter -n -t e:addCustomer.jmx -l e:addCustomer.jtl
四、windows系统下运行jmeter命令行
在windows下运行命令行跟linux下是一样的,只是通过cmd命令行工具来运行的
当前文章:jmeter学习指南之非GUI命令行运行详解-创新互联
URL链接:http://ybzwz.com/article/dgshje.html