为什么要命令行执行脚本,主要有以下三点:
1) 图形化界面消耗更多资源,CPU和内存
2) 图形化界面不支持大型的负载测试和性能测试
3) 命令行测试支持持续集成,例如放到Jenkins这样的CI工具上。
先创建一个JMeter- Http请求脚本,在JMeter运行成功后,打开命令行。
具体步骤如下。
1. 通过双击jmeter.bat打开JMeter图形界面
2.在默认的Test Plan上创建一个Thread Group
3.在Thread Group上面添加一个Sampler,选择HTTP Request
4.在Thread Group上面添加一个View Results Tree
5.点击Run,在弹出对话框询问是否保存,点击Yes,保存脚本到桌面,JMeter_CommlineLineTest.jmx
6.检查View Results Tree里面的response code 是不是200,
7.通过检查测试通过,说明测试脚本没问题,我们这里选择删除View Results Tree
8.关闭当前JMeter对话框
9. 打开cmd,通过cd命令先切换到JMeter安装路径或者直接将JMeter\bin放到Path中
例如: >cd /d E:\软件分类\apache-jmeter-5.1.1\bin
10. 输入一下命令开始执行测试
运行命令格式:
jmeter -n -t [jmx脚本路径] -l [测试输出文件路径]
参数解释:
-n: 表示 non gui mode,就是非图形化模式
-t: 表示jmeter脚本的路径
-l:表示输出结果路径,如果没有该文件就自动创建,可以生成csv或者jtl文件。
结果会在桌面生成一个demo.cvs文件,内容如下:
Jmeter的运行方式:
Windows GUI形式运行JMeter
(1)Windows下以GUI的形式运行JMeter很简单,直接双击jmeter.bat文件即可,这是我们前面一直在做的事情。
但是在双击jmeter.bat启动JMeter时,会弹出如下命令行提示符,如下图所示:
不要使用GUI模式进行负载测试,只用于测试创建和测试调试。对于负载测试,请使用非GUI模式:
命令如下:
jmeter -n -t [jmx file] -l[results file] -e -o[Path to web report folder]
分布式运行JMeter
在使用Jmeter进行性能测试时,如果要求并发比较大,单台电脑的配置(CPU、内存)可能无法支持,这就可以使用JMeter分布式测试。
(1)分布式测试原理
选择一台机器作为调度机(master),其它机器作为执行机(slave)
执行时,master会把脚本发送到每台slave上,slave拿到脚本后就开始执行,slave执行时不需要启动GUI
执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总
(2)执行机(slave)的配置,我们称之为server
首先需要安装JMeter;
配置环境变量
修改jmeter.properties文件的几个选项(待补充)
(3)控制机(master)的配置,我们称之为client
从JMeter 4.0开始,需要生成rmi_keystore.jks文件,最简单的方法是,windows下双击bin目录下的create-rmi-keystore.bat文件,即可。然后将该文件上传到server端的bin目录下。
修改jmeter.properties文件的几个选项(待补充)
(4)在server端,启动jmeter-server.bat(或者jmeter-server)
(5)在client端,启动jmeter
(6)通过client,连接启动server机