从命令行运行Jmeter

为什么要命令行执行脚本,主要有以下三点:

  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文件即可查看报告内容

猜你喜欢

转载自www.cnblogs.com/dangkai/p/10255306.html