为什么要使用命令行?
在我们启动jmeter时,你会看见:Don’t use GUI mode for load testing !, only for Test creation and Test debugging.For load testing, use CLI Mode (was NON GUI):
这句话的意思就是说,不要使用gui模式进行负载测试,gui模式仅仅是创建脚本和调试脚本,你要是进行负载测试,使用NONGUI模式–也就是命令行模式。
两个方面,第一个方面从性能角度出发,命令行模式性能相对于GUI模式要好,能够节省更多的资源,测试结果相对准确。
第二个方面从持续集成角度出发,有过这方面实战的小伙伴都知道,在集成里面往往使用的是命令,关于持续集成方面,以后有机会我会写出来,因为现在我还用不到。。。。。。
综上,我们要掌握jmeter命令行常见命令是非常必要的,我感觉挺简单的。
首先介绍下常见命令:
-? : 列出jmeter的命令行参数及简要说明。
-h : 列出jmeter提供的帮助文档。
-n : 表示使用命令行模式启动jmeter,必选参数
-t : 表示指定要执行的jmeter的脚本,属于必选参数
-l : 表示指定存放测试结果的文件
为了方便理解,我是这么记住的,首先我们得告诉jmeter我要用命令行模式-n,我们要告诉jmeter,执行那个脚本 -t 脚本执行完了结果在哪里 -l 指定结果路径。
jmeter -n -t php论坛.jmx -l result/t1.jtl
执行php论坛.jmx脚本,结果存放到 result文件夹下的t1.jtl文件里面。
那我们怎么去看这个结果呢?
这个时候我们要用到gui模式了–
下面介绍一下如何生成报告
-e : 表示生成html格式的报告
该参数常和-o联用
-o : 表示指定用于存储html格式的报告的目录
jmeter -n -t php论坛.jmx -l result/t3.jtl -e -o result/h1
将报告存放在result h1中。
这个时候我们就遇见了一个问题:每跑一次脚本我的这个线程组合循环次数啊都要改,实在太麻烦了,怎么办呢?有办法!
修改脚本:将需要进行参数处理的值替换为对应的_P()函数。
传参使用
-D : 表示在命令行模式下传递jmeter的properties变量
-G:作用和用法和-D类似,区别在于,如果使用分布式测试,则必须使用-G
例子:jmeter -n -t php论坛.jmx -l result/t2.jtl -Dthread.num=6 -Dloop.num=6 -e -o result/h1
有个小问题:如果 你使用的是powershell,-D后面的参数要加空格,如果是cmd 不要加空格,我们来看一下报告。
我们就可以看到报告啦!
写在最后:我也是最近才刚开始看jmeter,有的地方写的不够准确,希望各位大神指导,也欢迎小伙伴一起学习jmeter!
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理