jmeter场景的运行方式(GUI运行和命令行运行)
运行方式:
GUI运行:通过图形界面方式运行,该运行方式的可视化界面及监听器动态展示 结果都比较消耗负载机资源,建议大并发时不用,一般进行脚本调试;
命令行运行:通过jmeter命令行工具运行(性能测试建议通过命令行执行脚本)
运行架构
本地运行:运行本地一台Jmeter机器,所有的请求通过该机器发送。
远程运行:用一台Jmeter控制机控制远程的多台机器来产生负载。控制机与负载 机之间通过RMI方式来完成通信。
以上运行架构可参考:文章末尾有参考方式
jmeter的GUI运行
1、通过在jmeter的GUI上的倒三角图标运行或者通过菜单栏中的运行启动执行脚本;如下图
注意:
jmeter可视化界面及监听器动态展示 结果都比较消耗负载机资源,建议大并发时不用会对性能测试结果产生影响,一般进行测试脚本的创建和调试;
再进行性能测试的时候在启动jmeter时dos窗口也会给出提示;如下图:
意思大概为:不要使用GUI模式进行负载测试,GUI只用于Test创建和Test调试。 对于负载测试,使用CLI模式(非GUI);
jmeter命令行运行(性能测试建议通过命令行执行脚本)
jmeter命令行工具部分参数说明:
-n:非GUI方式运行。
-t:指定运行的测试脚本地址与名称(后缀为.jmx文件),可以是相对或绝对路径
-h:查看帮助
-l:记录测试结果到文件(后缀为.jtl),指定名称与路径,可以是相对或绝对路径
-r:开启远程负载机,远程负载机列表在jmeter.properties文件中指定
-R:开启远程负载机,可以指定负载机IP,会覆盖jmeter.properties中的设置
-X:停止远程执行
-J:定义Jmeter属性,等同于在jmeter.properties中设置(参考下方命令行运行实战的第6个命令详解)
-G:定义Jmeter全局属性,等同于在Global.properties中设置,线程间可相互共享
-e:在脚本运行结束后生成html报告
-o:保存html报告的地址
-g:指定已存在的测试结果文件
常用的命令如下:jmeter -n -t 脚本路径.jmx -l 测试结果路径.jtl -e -o html结果路径(空文件夹);(备注:可不写-e -o 后面的命令先生成jtl文件,再通过-g参数把jtl文件生成html报告)
注意:Jmeter使用命令行运行时间较长的时候,2小时以上,会发现jmeter命令行到时间仍然未停止,但实际上请求是没有发的(不会出现end of run),此时如果配置了网页版报告,就会不能生成(jtl报告能生成)。
那可以使用-g 命令加载 jtl 文件生成网页版报告
命令:jmeter -g jtl文件路径 -o html空文件夹
jmeter命令行运行实战:
1、本地运行脚本并生成测试报告,其中测试报告的后缀名为jtl
jmeter -n -t 脚本路径 -l 测试报告路径
2、远程运行脚本并生成测试报告,其中测试报告的后缀名为jtl
jmeter -n -t 脚本路径 -r -l 测试报告路径
3、远程运行脚本并生成测试报告,其中测试报告的后缀名为jtl
jmeter -n -t 脚本路径 -R 负载机IP -l 测试报告路径
4、本地运行并生成网页版测试报告,其中测试结果路径为空目录
jmeter -n -t 脚本路径 -l 测试报告路径 -e -o 测试结果路径
5、把jtl格式的测试结果文件转换为html格式
jmeter -g 测试结果路径 -o html报告路径
6、本地运行脚本并生成测试报告,把线程数和循环次数在命令行配置
jmeter -n -t 脚本路径 -l 测试结果路径 -JthreadNum=50 -JloopNum=10
要完成上述第6个实战的操作生效,也就是jmeter命令行参数 -J的用法;如下
6.1 利用函数助手对话框的 P 函数设置获取命令行属性
6.2 把生成的函数通过用户定义的变量配置
6.3 把用户定义的变量放入需要使用到的地方
6.4 在命令行窗口执行的时使用-J参数;如下: