JMeter命令行执行+生成HTML报告
myzbx 2025-01-05 19:02 10 浏览
1、为什么用命令行模式
使用GUI方式启动jmeter,运行线程较多的测试时,会造成内存和CPU的大量消耗,导致客户机卡死;
所以一般采用的方式是在GUI模式下调整测试脚本,再用命令行模式执行;
命令行方式支持在多个环境下使用,windosw的dos环境下,也可以在linux环境上执行。
注意:使用命令执行jmeter脚本必须使用jmeter 3.0及以上版本。
2、怎么用
2.1、执行命令
jmeter -n -t <testplan filename> -l <listener filename>
示例: jmeter -n -t testplan.jmx -l test.jtl
示例含义:表示以命令行模式运行testplan.jmx文件,输出的日志文件为test.jtl
2.2、参数介绍
Jmeter官方手册给的介绍如下:
-h, –help -> prints usage information and exit
-n, –nongui -> run JMeter in nongui mode
-t, –testfile <argument> -> the jmeter test(.jmx) file to run
-l, –logfile <argument> -> the file to log samples to
-r, –runremote -> Start remote servers (as defined in remote_hosts)
-H, –proxyHost <argument> -> Set a proxy server for JMeter to use
-P, –proxyPort <argument> -> Set proxy server port for JMeter to use
中文释义:
-h 帮助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-R 远程执行 -> 远程执行机的IP(ip地址)如果有多个ip时,使用-R 192.168.2.170,192.168.2.171(分布式使用)
-r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器(分布式使用)
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
2.3、执行过程
命令:jmeter -n -t C:\Users\yzs\Desktop\Unione_performance.jmx -l report\03-result.jtl
不在jmeter安卓目录执行脚本的前提是配置了jmeter的环境变量。
2.4、报告查看
上述的命令有测试结果保存到D:\report中,在GUI模式下查看测试报告:
1、在测试计划下,添加对应的测试报告元件,举例增加了:查看结果树、聚合报告
2、在“所有数据写入一个文件”,选择加载对应的结果文件
3、下面就会有对应的表格展示,具体见下图
2.5、命令行传递变量值
设置线程组的线程数和循环次数。
注意格式:
${__P(threadNum)}
${__P(threadCount)}
其中P前面是两个下划线,()内就是变量名
执行时,在命令行中用-J参数给变量赋值即可:
jmeter -n -t C:\Users\yzs\Desktop\Unione_performance.jmx -J threadNum=10 -J threadCount=2 -l report\03-result.jtl
此次测试相当于:10个线程,循环2次,共计20个请求。
3、生成HTML报告
生成HTML报告有2种方式,一种是直接在命令行加上-o参数,另一种是已有jtl结果文件,运行命令生成报告
3.1、命令行直接生成报告
jmeter -n -t 【Jmx脚本位置】-l 【中间文件result.jtl位置】-e -o 【报告指定文件夹】
-e:测试结束后,生成测试报告
-o:指定测试报告的存放位置
注意:-o后面跟的文件夹一定是不存在的或者是空文件夹
3.2、已有jtl结果文件,运行命令生成报告
jmeter -g【已经存在的.jtl文件的路径】-o 【用于存放html报告的目录】
注意:经实操,windows系统上,以上2种方法都可以生成HTML测试报告,但是在Linux系统上第1种方法,没有生成报告,只有第二种方法才可以(具体原因后面在慢慢找吧)
3.3、HTML报告注解
用浏览器打开index.html
报告详解
Dashboard:(重点查看)
Test and Report informations:指的是测试和报告信息
- File:测试结果的保存文件名称
- Start Time:测试开始时间
- End Time:测试结束时间
- Filter for display展示过滤器
APDEX(Application Performance Index):应用程序性能满意度的标准
其中,
- “Apdex”范围在0-1之间,1表示达到所有用户均满意,越接近1满意度越高
- “toleration threshold”:耐受阈值(0.5秒)
- “frustration threshold”:挫败阈值(1.5秒)
Requests Summary:请求的通过率(OK)与失败率(KO),百分比显示
Statistics:数据分析,基本将Summary Report和Aggrerate Report的结果合并(平均响应时间、TPS在此查看)
Errors:错误情况,依据不同的错误类型,将所有错误结果展示
关于Apdex的补充:
性能指数,Apdex(Application Performance Index)是一个国际通用标准,Apdex 是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终用户的体验和应用性能作为一个完整的指标进行统一度量。下图表示为通用用户满意度区域,0代表没有满意用户,1则代表所有用户都满意。实际业务系统开发过程中,1是团队的追求目标。
若所有请求的Apdex值都接近1,说明用户满意度优秀,也从侧面说明了服务器响应速度快。
通常而言,最低要求超过0.5,当然项目组可设定具体需求。
Charts:(辅助分析)
主要有如下特点:
(1)将测试过程中经常使用的数据,用图表的形式展示,让测试结果更加直观
(2)每个图表数据,有两种展示形式
(3)支持请求样例过滤显示
(4)支持导出PNG图片格式
Over Time Charts:
- Response Times Over Time:每秒钟响应时间,X轴表示的是系统运行的时刻,Y轴表示的是响应时间,F(X,Y)表示系统随着时间的推移,系统的响应时间的变化,可以看出响应时间稳定性
- Bytes Throughput Over Time:字节接收与发送的数量,每秒传输字节吞吐量,表明Jmeter在测试时,随着时间推移发送和接收的字节数
- Latencies Over Time:延迟时间
Throughput Charts:
- Hits Per Second: 每秒点击率
- Codes Per Second:每秒状态码数量
- Transactions Per Second:每秒事务量
- Response Time Vs Request:响应时间点请求的成功与失败数
- Latency Vs Request:延迟时间点请求的成功与失败数
Response Times Charts:
- Response Time Percentiles:响应时间百分比
- Active Threads Over Time:激活线程数
- Time Vs Threads:响应时间用户数, X轴表示的是活动线程数,也就是并发访问的用户数,Y轴表示的是响应时间,F(X,Y)表示在某种并发量的情况下,系统的响应时间是多少
- Response Time Distribution:响应时间分布
3.4、HTML报告的自定义配置
JMeter3.0开始在bin目录新增了reportgenerator.properties文件保存了所有关于图形化HTML报告生成模块的默认配置,要变更配置,建议不要直接编辑该文件,而是推荐在user.properties中去配置和覆盖。
3.4.1总体配置
总体配置都是以jmeter.reportgenerator.为前缀,如:jmeter.reportgenerator.overall_granularity=60000
- overall_granularity:定义采样点粒度,默认为60000ms,通常在稳定性以外的测试中,我们可能需要定义更细的粒度,比如1000ms,我们可以在user.properties文件末尾添加如下配置
# Change this parameter if you want to change the granularity of over time graphs.
jmeter.reportgenerator.overall_granularity=6000
- report_title:定义报告的标题,我们可能需要将标题定义为实际测试项名称
- apdex_satisfied_threshold:定义Apdex评估中满意的阈值(单位ms)
- apdex_tolerated_threshold: 定义Apdex评估中可容忍的阈值
Apdext = (Satisfied Count + Tolerating Count / 2) / Total Samples
另外,在jmeter.properties中,有关于集合报告中的三个百分位的默认值:
aggregate_rpt_pct1 : Defaults to 50
aggregate_rpt_pct2 : Defaults to 70
aggregate_rpt_pct3 : Defaults to 99
3.5、HTML报告的定制
JMeter的HTML报告生成时是使用了固定的模板,模板文件路径为./bin/report-template。
进入该目录可以看到报告的每个页面都有一个.fmkr模板文件,包括index.html.fmkr和./content/pages路径下的几个文件。通过查看这些模板文件,就可以知道怎样去进行报告的轻度定制,比如将一些文本修改得更易懂,或者修改为中文等
页面的title
默认为"Apache JMeter Dashboard"
可以由reportgenerator.properties中的jmeter.reportgenerator.report_title来统一定义,这种方式就是所有页面的title都使用同一个。
也可以直接修改对应的.fmkr文件中的title标签中双引号内的值,如<title>${reportTitle!"想要设置的title"}</title>,这中方式可以为每个页面单独定义title
图表的名称
当前版本下,各图表的名称是直接在模板文件中定义,要修改也是直接修改模板文件中对应元素的值即可
如要修改Transactions Per Second图表的名称,可以直接在./content/pages/Throughput.html.fmkr文件中修改,效果如下图
相关推荐
- 基于Abaqus的手动挡换挡机构可靠性仿真
-
手动挡,也称手动变速器,英文全称为Manualtransmission,简称MT,即用手拨动换挡操纵总成才能改变变速器内的齿轮啮合位置,改变传动比,从而达到变速的目的。家用轿车主要采用软轴连接的换挡...
- 【pytorch】目标检测:彻底搞懂YOLOv5详解
-
YOLOv5是GlennJocher等人研发,它是Ultralytics公司的开源项目。YOLOv5根据参数量分为了n、s、m、l、x五种类型,其参数量依次上升,当然了其效果也是越来越好。从2020...
- 超实用!50个非常实用的PS快捷键命令大全分享
-
今天,给大家介绍50个非常实用的快捷键命令大全,大家伙都是设计师,关于软件使用那是越快越好啊。一、常用的热键组合1、图层混合模式快捷键:正常(Shift+Option+N),正片叠底(Shif...
- Pohtoshop中深藏不露的小技巧(科目一考试技巧记忆口诀看完必过)
-
邢帅教育ps教程为大家总结了一些Pohtoshop中深藏不露的小技巧,可以帮助到大家在设计时减少不必要的麻烦,提高工作效率哦~~~1.设置网格线保持像素完美不在1:1分辨率下也能保持像素完美,可以...
- Ganglia监控安装总结(监控安装工作总结)
-
一、ganglia简介:Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格。它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数据...
- 谁说Adobe XD做不出好看的设计?那是你没搞懂这些功能
-
AdobeXD的美化栏具有将设计视图美化的功能,它能使界面设计和原型设计更漂亮、更吸引眼球。美化栏的7个功能包括竖线布局设计、横线布局设计、重复网格、图形大小和位置设置、响应式调整大小、文字美化以及...
- 新款名爵MG4 EV实车图曝光 新一代性能纯电钢炮?
-
【太平洋汽车新车频道】3月19日,我们从工信部申报图中可以看到新款上汽MG名爵MG4EV的身影。新车是品牌首款基于“星云纯电架构”打造的全球车型,定位为纯电紧凑级SUV。外观部分,新车并未采用纯电...
- LS/XS 19.7 tex SJ品种纺纱锭速提升方法探析
-
2020年7月—2021年6月,笔者公司细纱车间LS/XS60/4019.7texSJ品种在机约50台。由于该品种纺纱机台多、锭速低,导致日产量、吨纱产质量低,吨纱耗电量高等问题,为实现“优质...
- 用了4年的XS MAX电池健康度还有82%!苹果手机这样设置更省电
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:七楼七大叔现在安卓手机的电池动辄4000-5000毫安时,苹果手机的电池不到4000毫安时,一天一充肯定是少不了。本人的XSMAX是201...
- 一分钱能掰两半花:存储单元一分为二的神技让闪存容量翻倍涨
-
东芝在1987年发明NAND闪存,历经制程微缩、MLC多层单元和3D立体堆叠多次技术革命,当前闪存已经成为每个人生活中不可或缺的存储介质。无论是手机、智能手表还是汽车、飞机,都离不开闪存存储。近日铠侠...
- 国外网页/移动端手机开发组件ui工具包欣赏
-
网上有很多可用的webui工具包,让你可以简单的创建一个易于使用的和有吸引力的界面。然而,许多网页设计师都会同意,找到一个好的网页设计工具可以轻松的克服网页设计项目中的挑战。有一件好事是,我们准备了...
- 还在从头开发Web项目?这些模板请收下!
-
在过去的日子里,从头开始创建一个网站变得越来越容易。了解HTML、可能还有CSS的程序员,可以用很少的精力创建一个不错的网页,然后把它放在网络服务器上,就搞定了。比如:当然,你可以选择这种创建方式,但...
- 基于Spring Cloud Alibaba + Nacos构建微服务框架
-
一、技术选型说明mermaidgraphTDA[SpringCloudAlibaba2022.0.0]-->B[Nacos2.2.3]A-->C[Se...
- Consul微服务注册中心使用指南(微服务注册中心选型)
-
Consul作为微服务注册中心,提供了服务发现、健康检查、多数据中心支持等核心功能。以下是关于Consul的详细分步说明:1.Consul核心概念Agent:运行在每个节点上的守护进程,负责...
- 结合Sklearn的网格和随机搜索进行自动超参数调优
-
什么是超参数?今天,隐藏着数学世界的算法只需要几行代码就可以训练出来。它们的成功首先取决于训练的数据,然后取决于用户使用的超参数。这些超参数是什么?超参数是用户定义的值,如kNN中的k和Ridge和L...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 基础教程 (29)
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 选择器 (30)
- CSS 轮廓 (30)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 中级教程 (30)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)