作者:徐青乔府_631 | 来源:互联网 | 2023-08-11 14:51
为什么要命令行执行脚本,主要有以下三点:1)图形化界面消耗更多资源,CPU和内存2)图形化界面不支持大型的负载测试和性能测试3)命令行测试支持持续集成,例如放到Jenkins这样的
为什么要命令行执行脚本,主要有以下三点:
1) 图形化界面消耗更多资源,CPU和内存
2) 图形化界面不支持大型的负载测试和性能测试
3) 命令行测试支持持续集成,例如放到Jenkins这样的CI工具上。
具体步骤如下。
1. 通过双击jmeter.bat打开JMeter图形界面
2.在默认的Test Plan上创建一个Thread Group
3.在Thread Group上面添加一个Sampler,选择HTTP Request
4.在Thread Group上面添加一个View Results Tree
5.点击Run,在弹出对话框询问是否保存,点击Yes,保存脚本到桌面,CommondLineTest.jmx
6.检查View Results Tree里面的response code 是不是200,
7.通过检查测试通过,说明测试脚本没问题,我们这里选择删除View Results Tree
8.关闭当前JMeter对话框
9. 打开cmd,通过cd命令先切换到JMeter安装路径
例如: cd C:\apache-jmeter-3.2\bin
10. 输入一下命令开始执行测试
运行命令格式:
jmeter -n -t [jmx脚本路径] -l [测试输出文件路径] 如:./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl
参数解释:
-n: 表示 non gui mode,就是非图形化模式
-t: 表示jmeter脚本的路径
-l:表示输出结果路径,如果没有该文件就自动创建,可以生成csv或者jtl文件。
测试结果:
会在桌面生成一个demo.cvs文件,内容如下:
如果想要生成HTML报告,有两种方式:
1.可以在测试过程中将jtl转成测试报告(在jmeter的bin目录下执行): ./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport
参数说明:
-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错
如上命令执行,可以看到控制台开始打印数据了
2.使用之前的测试结果,生成测试报告
./jmeter -g baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport
-g : 指定已存在的测试结果文件
-e :测试结果后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须 不存在 ,否则执行会失败
第一种和第二种其实最终都依赖生成的jtl文件,将jtl文件生成测试报告。双击测试报告中的index.html文件即可查看报告内容
从命令行运行Jmeter