非GUI(界面化)执行性能测试脚本,并生成html格式的性能报告。

本文详细介绍JMeter在非GUI模式下如何进行本机及分布式性能测试,包括环境配置、命令参数解析及测试报告生成,适合希望提升测试效率的性能测试工程师。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  JMeter界面化进行性能测试时虽然有聚合报告、用表格查看结果树,但是结果还不够直观,不够方面,并且JMeter使用界面化时比较吃计算机资源。所以有了非界面化的性能场景执行,且没有界面化消耗资源。

一、非GUI本机执行脚本

我的环境:
  window系统

      1、首先从cmd中输入jmeter,要可以打开jmeter(打不开的说明没有添加环境变量,将jmeter的bin路径放入到环境变量的path中)

      2、如果可以打开,进行如下命令操作 (这个是我的脚本路径)
jmeter -n -t
G:\Jmeter\apache-jmeter-3.3\douban.jmx -l G:\Jmeter\apache-jmeter-3.3\douban.jtl -e -o G:\Jmeter\apache-jmeter-3.3\resultReport

测试报告结果生成后是个目录

命令参数说明:

 · -h 帮助 -> 打印出有用的信息并退出
 · -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
 · -t 测试文件 -> 要运行的 JMeter 测试脚本文件
 · -l 日志文件 -> 记录结果的文件
 · -r 远程执行 -> 启动远程服务
 · -H 代理主机 -> 设置 JMeter 使用的代理主机
 · -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
 · -e 测试结束后生成html测试报告,此模式需要在 jmeter.property(配置文件)开启jmeter.save.saveservice.output_format=csv
 · -o 指定测试报告的存放位置

在这里插入图片描述

生成的resultReport目录文件内容,然后点击"index.html"查看
在这里插入图片描述
下图是生成的性能报告
在这里插入图片描述

二、非GUI分布式测试

处理过程:

    一:调度机master启动以后,会自动拷贝本地的jmx文件分发到远程的slave机器上(5台机器);

    二:slave机器拿到脚本以后启动命令行模式去执行脚本,每台slave机器拿到的脚本都是一样的,所以如果jmx脚本为100个线程跑1分钟,那么实际并发就是 100 * 5 = 500 个线程并发跑1分钟;

    三:执行时,slave会把执行获得的数据结果传给master机器,master机器会收集所有slave机器的信息并汇总,这样master机器上就存在一份所有slave机器汇总的数据结果。


1、我们需要先把分布机器的IP地址放入到控制机器的配置文件中,打开该文件

在这里插入图片描述

2、找到这一行,然后进行添加分布机器的IP地址(格式 xx.xx.xx.xx:1099),有多个时以逗号隔开,负载机也是一样,把自己的IP地址以及端口放入,尽量不要用127.0.0.1的地址。
在这里插入图片描述
逗号分隔
在这里插入图片描述

3、把slave机上jmeter.properties中的server.rmi.ssl.disable属性改为true

4、如果控制机修改了端口号,负载机器也要把端口号修改,要保持一致,所有配置完后,我们可以添加脚本进行测试了

我们要先开启负载机的服务(jmeter-server)

两种打开方式
  1、可以从bin目录中开启jmeter-server.bat
  2、在cmd中输入 jmeter-server
  2、在linux系统中输入 ./jmeter-server

打开之后出现该提示表示是正常的
附图

有时打开可能不是这样,可上网查询具体的报错信息

当控制机的IP地址配置完以及负载机的服务正常打开后,就可以进行执行了

在控制机中执行分布式命令:jmeter -n -t G:\Jmeter\apache-jmeter-3.3\douban.jmx -r -l G:\Jmeter\apache-jmeter-3.3\doubanresults.jtl

命令参数说明:

 · -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
 · -t 测试文件 -> 要运行的 JMeter 测试脚本文件
 · -l 日志文件 -> 记录结果的文件
 · -r 远程执行 -> 启动远程服务

如果连上只有负载机,负载机的页面会有提示,且控制机也会有提示,显示有没有成功。
在这里插入图片描述

summary + 47 in 00:00:09 = 5.0/s Avg: 127 Min: 9 Max: 1826 Err: 2 (4.26%) Active: 9 Started: 9 Finished: 0
summary + 913 in 00:00:30 = 30.4/s Avg: 27 Min: 8 Max: 328 Err: 0 (0.00%) Active: 10 Started: 10 Finished: 0
summary = 960 in 00:00:39 = 24.3/s Avg: 32 Min: 8 Max: 1826 Err: 2 (0.21%)
summary + 728 in 00:01:35 = 7.6/s Avg: 20 Min: 8 Max: 178 Err: 0 (0.00%) Active: 0 Started: 10 Finished: 10
summary = 1688 in 00:02:15 = 12.5/s Avg: 27 Min: 8 Max: 1826 Err: 2 (0.12%)

界面显示分析

每30秒进行一次打印显示

summary是请求数,=5.0/s 指每秒完成请求数(TPS),最后一行是总的请求数以及TPS的值;
Avg:平均响应时间
Min:最小响应时间
Max:最大响应时间
Err:是错误率;
Active是活跃线程数(这里我设置的是10个线程)

注意点:每次执行的性能报告在下次执行脚本时,需要删除或者更改保存的路径,否则下次无法成功执行
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值