Jmeter生成html报告
文章目录
- 生成默认html报表
- 通过Jmeter界面工具(仅支持json格式数据)
- 通过Jmeter指令(仅支持json格式数据)
- 利用已有.jtl文件生成报告
- jmeter -g "D:\Html\result\压力测试.jtl" -o "D:\Html\report压力测试"
- 无.jtl文件生成测试报告
- jmeter -n -t "D:\code\payment_group\doc\项目文档\pbs\设计文档\第三方token\pbs-token 自动化测试脚本.jmx" -l "D:\Html2\result\压力测试%time::=%.jtl" -e -o "D:\Html2\report"
- Html报告默认样式界面介绍(不支持展示详细出入参)
- Dashboard报告总览页面
- Test and Report informations
- APDEX (Application Performance Index 应用性能指标图)
- Statistic详细统计分析信息
- Errors报告中出现错误信息汇总
- Top 5 Errors by sampler(统计数排名前五的错误请求信息)
- Requests Summary请求通过情况饼状图
- Customs Graphs生成报告的脚本信息介绍
- Charts细化图表页
- 自定义Html报告默认使用说明(支持多种数据格式)
- 输出自定义扩展样式Html格式的测试报告(以Windows系统使用为例)
- ant -f build.xml -Djmxname="Test"
- ant build.xml
- 自定义html报告样式文件
- jmeter-results-report-apitest.xsl
- 汇总报告页
- 结果树列表页
- 详细结果页
- jmeter-results-shanhe-me.xsl
- 结果树列表页
- 详细结果页
生成默认html报表
使用监控插件对于运行的状态有一定的限制,而且很多时候我们会在服务器上以命令行的形式来运行脚本,此时,这部分插件就无法正常发挥出作用了。但是还是需要根据执行结果来拿到分析数据,此时就可以根据运行的jtl文件来生成图标。
通过Jmeter界面工具(仅支持json格式数据)
通过Jmeter指令(仅支持json格式数据)
生成html测试报告从效果上就是把jtl文件中csv格式的信息转换成一个json格式的文件,然后通过模拟网页获取到json形式的返回结果后完成页面渲染,生成写死的包含具体报告信息的某些特定的html页面。
生成默认HTML测试报告的两种方式,具体情况如下,可以通过Jmeter自带的使用说明来了解。这种生成的文件样式比较适合压力测试的统计报告,默认提供一些统计维度上的展示信息,如果想自己分析某一个接口的情况这种视图当前是不适合分析。
利用已有.jtl文件生成报告
进入jmeter的bin目录下,输入如下命令:
jmeter.bat(Windows)/jmeter.sh(Linux) -g [csv results file] -o [path to output folder (empty or not existing)]
- -g:xxx.jtl文件所在的路径
- -o:HTML报告文件存放的路径(需要是空的已经存在的目录,否则将无法正常执行)
jmeter -g “D:\Html\result\压力测试.jtl” -o “D:\Html\report压力测试”
无.jtl文件生成测试报告
如果还未生成.jtl文件,则可以通过如下命令,一次性完成测试执行和生成HTML可视化报告的操作,进入jmeter的bin目录下,输入如下命令:
jmeter.bat(Windows)/jmeter.sh(Linux) -n -t test-file [-p property-file] [-l results-file] [-j log-file] -e -o [Path to output folder]
- -n:以非GUI形式运行Jmeter
- -t:jmeter.jmx 脚本路径
- -l:result.jtl 运行结果保存路径(.jtl),此默认不支持覆盖,如果预先存在文件则会报错,支持传入一个不存在的路径,程序会自动按照层级新建相应的目录
- -e:在脚本运行结束后生成html报告
- -o:用于存放html报告的目录,html
jmeter -n -t “D:\code\payment_group\doc\项目文档\pbs\设计文档\第三方token\pbs-token 自动化测试脚本.jmx” -l “D:\Html2\result\压力测试%time::=%.jtl” -e -o “D:\Html2\report”
压力测试的命令行展示信息
单线程业务接口测试的命令行展示信息
Html报告默认样式界面介绍(不支持展示详细出入参)
执行完毕后,用浏览器打开生成的文件目录下的index文件,效果展示如下:
Dashboard报告总览页面
Test and Report informations
用于展示生成报告的脚本信息,脚本名称,
APDEX (Application Performance Index 应用性能指标图)
详细图标解读参照官网https://en.wikipedia.org/wiki/Apdex
- Apdex(满意度),取值范围0-1,1最高,值越大表现越好
- Toleration Threshold(通过响应阈值)
- Frustration threshold(失败响应时间阈值)
Statistic详细统计分析信息
- Sampleles 采样数量
- KO 失败数量
- Error 失败百分比
- Average 平均响应时间,单位ms
- 90thpct 90%的采样数据响应时间
- Transactions/s 每秒吞吐量
Errors报告中出现错误信息汇总
Top 5 Errors by sampler(统计数排名前五的错误请求信息)
Requests Summary请求通过情况饼状图
Customs Graphs生成报告的脚本信息介绍
Test and Report informations
Charts细化图表页
图表支持功能介绍**:**
- 图表部分可以通过小窗来调节缩放,在图表中点击后拖拽展示某一部分范围内的图表
- 图标展示折线部分支持通过点选图例选中某几个(默认全部展示),并且调整后会自动缩放至最佳视图
- 支持将图表另存为图片
- 支持控制展示/隐藏图表
- Over Time脚本运行期间的随时间变化响应时间趋势图
- Througput 吞吐量
- Resouse Times 响应时间
Over Time脚本运行期间的随时间变化的趋势图汇总
- Response Times Over Time 以时间维度绘制的平均响应时间射线图
- 横坐标时间
- 纵坐标按照业务接口分组的平均响应时间
- Response Time Percentiles Over Time (successful responses)运行成功的请求以时间维度绘制的响应时间射线图(将Statistic统计图标中的几个指标以折线图的形式展示)
- 横坐标时间
- 纵坐标总的影响时间统计口径(90%95%,最大/小值等,)分组的平均响应时间
- Active Threads Over Time 随时间变化的线程数信息折线图
- 横坐标时间
- 纵坐标当前活跃的线程数
- Bytes Throughput Over Time 随时间变化的接收/发送数据量的平均值折线图
- 横坐标时间
- 纵坐标按照发送/接口分组的信息字节平均数值
- Latencies Over Time随时间变化测试期间的接口响应延迟时间,延迟时间指的是请求结束到服务器开始响应的这段时间(断言、其他一些后置的shell等的耗时信息)
- 横坐标时间
- 纵坐标按照接口分组的延时响应部分平均耗时
- Connect Time Over Time 主要展示的是在负载测试期间发送请求后与服务器建立连接的平均时间
- 横坐标时间
- 纵坐标按照接口分组的建立连接部分平均耗时
参考资料:
https://www.cnblogs.com/dydxw/p/14188116.html
https://www.cnblogs.com/imyalost/p/10239317.html
Throughput 吞吐量相关的趋势图汇总页
- Hits Per Second随时间变化每秒产生的请求服务的数量的折线图
- 横坐标时间
- 纵坐标每秒请求服务数量
- Codes Per Second 随时间变化每秒返回http类型请求响应码的数量折线图
- 横坐标时间
- 纵坐标Http请求服务按照状态码分组的统计数量
- Transactions Per Second 随时间变化每秒每个请求的吞吐量折线图
- 横坐标时间
- 纵坐标按照接口分组的吞吐量
- Total Transactions Per Second随时间变化每秒所有请求(按照成功/失败分别统计)的吞吐量折线图
- 横坐标时间
- 纵坐标按照成功/失败分组的吞吐量
- Latency Vs Request随总请求数变化所有请求(按照成功/失败分别统计)响应延时(断言、其他一些后置的shell等的耗时)中位数散点图
- 横坐标每秒总请求数信息
- 纵坐标响应延时部分按照成功/失败分组响应时间中位数值
- Response Time Vs Request 随总请求数变化所有请求(按照成功/失败分别统计)响应耗时的中位数散点图
- 横坐标每秒总请求数信息
纵坐标业务请求按照成功/失败分组响应时间中位数值
Response Times响应时间相关的趋势图汇页
- Response Time Percentiles 所有接口响应时间按照百分比占比计算的平均时间折线图
- 横坐标占百分比
- 纵坐标响应平均时间
- Response Time Overview所有接口响应时间范围绘制的柱状图
- 横坐响应时间范围
- 纵坐标响应统计数量值
- Time Vs Threads 随着线程数的增长,每个接口(含汇总)平均影响时间折线图
- 横坐并发线程数
- 纵坐标响应平均时间
- Response Time Distribution 粒度更细的Response Time Overview图
- 横坐响应时间范围
- 纵坐标响应统计数量值
自定义Html报告默认使用说明(支持多种数据格式)
默认的html样式针对压测类型的结果生成报告的支持非常强大,因为压测的场景不太会在报告层面来关注具体每一个请求的初入参信息。一般更多的是关注统计层面的信息。但是针对需要查看某一个请求的具体初入参的场景,目前的html报告就不太能满足要求了。当然可以直接用View Result Tree组件来打开该jtl文件,查看所需的信息。
输出自定义扩展样式Html格式的测试报告(以Windows系统使用为例)
自定义扩展方式生成html报告的方式则需要依赖其他的组件ant,这种情况就可以自定义html报告的样式了,可以通过前端的页面语言DIY。但是对于目前支持的脚本格式有要求,需要是xml格式的jtl结果信息。这种自定义的样式会展示全部的测试结果信息,并且通过程序写成一个html文件,请求数据量比较多的情况不适合用这种方式产生带详细初入参信息的报表。
这部分功能需要借助%JMATER_HOME%\extras\目录下的资源
ant -f build.xml -Djmxname=“Test”
备注:将ant的安装目录添加到环境变量Path里,否则就需要在bin
ant build.xml
build.xml部分详解见附件文件,这边配置了jtl文件的读取路径、html报告的样式文件、html报告的输出路径等等内容。
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter" default="run" basedir="D:\AboutWork\apache-jmeter-5.1.1\extras\"><tstamp><format property="time" pattern="yyyyMMddhhmm" /></tstamp><property environment="env"/><!-- 需要改成自己本地的 Jmeter 目录--> <property name="jmeter.home" value="${env.JMETER_HOME}" /><property name="jmeter.result.parent.dir" value="D:\Html2\" /><!-- jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="${jmeter.result.parent.dir}\result" /><!-- jmeter生成html格式的结果报告的路径--><property name="jmeter.result.html.dir" value="${jmeter.result.parent.dir}\diyReport" /><!-- 生成的报告的前缀--> <property name="jmxname" value="${jmxname}" /><condition property="jmeter.jmxname" value="${jmxname}" else="*.jmx"><!-- jmeter.jmxname设置了值而且值非空的情况下才返回true,此时不采用默认值 --><and><!--如果属性jmxname不存在则返回false --><isset property="jmxname" /><not><!--如果属性jmeter.jmxname非空在则返回true --><equals arg1="${jmxname}" arg2="" /></not></and></condition><echo message="jmxname代表当前需要执行的脚本名称,不需要待(.jmx),此时生成的jtl和html文件均以此命名"/><property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${jmeter.jmxname}.jtl" /><property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${jmeter.jmxname}.html" /><property name="jmeter.result.jmxName" value="${jmeter.result.parent.dir}/${jmeter.jmxname}.jmx" /><target name="run"><!-- <antcall target="doTest"/> --><antcall target="clear" /> <antcall target="report" /></target><path id="jmeter.classpath"><fileset dir="${basedir}"><include name="ant-jmeter*.jar"/></fileset></path><target name="-check-use-file"> <available property="file.exists" file="${jmeter.result.jtl.dir}/*.html" /> </target> <!-- 删除目录下现有的html页面--><target name="clear" depends="-check-use-file" if="file.exists"><echo message="判断是否存在匹配的${jmeter.result.html.dir}/*.html文件并删除"/><delete file="${jmeter.result.html.dir}/*.html"/> </target><!-- 运行目标Jmeter测试脚本 --> <target name="doTest"><echo message="当前运行的脚本=${jmeter.jmxname},并且生成${jmeter.result.jtlName}结果文件"/><taskdef name="jmeter" classpathref="jmeter.classpath"classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /><jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"testplan ="${jmeter.result.jmxName}" ><!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本--><!-- <testplans dir="${jmeter.result.parent.dir}" includes="${jmeter.jmxname}" /> --><property name="jmeter.save.saveservice.assertion_results" value="all"/><property name="jmeter.save.saveservice.bytes" value="true"/><property name="file_format.testlog" value="${format}"/><property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/><property name="jmeter.save.saveservice.output_format" value="xml"/></jmeter></target><path id="xslt.classpath"><fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/><fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/></path><!-- html结果生成报告 --> <target name="report"><tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp> <xslt classpathref="xslt.classpath"force="true"in="${jmeter.result.jtlName}"out="${jmeter.result.htmlName}"style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl" /> <!-- style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl" />style="${jmeter.home}/extras/jmeter-results-report-apitest.xsl" /> --> <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> <copy todir="${jmeter.result.html.dir}"><fileset dir="${jmeter.home}/extras"><include name="collapse.png" /><include name="expand.png" /></fileset></copy></target> </project>
Html报告的样式文件可以由前端人员自定义,如果对于现有的两种样式文件不满意,可以自己定制。下面介绍了两种常规的样式,请根据需要自行选择。
自定义html报告样式文件
样式文件下载链接
jmeter-results-report-apitest.xsl
这种样式包含简单的统计信息和详细的初入参信息
汇总报告页
结果树列表页
详细结果页
选中结果树列表中某条记录的+号即可展示详细信息
jmeter-results-shanhe-me.xsl
结果树列表页
按照所属线程组分类展示
Ps:有点小缺陷,目前点击左侧小三角无法实现缩放,需要前端人员支持修改
详细结果页
这里根据分栏展示了如下几类内容:
- Sampler 某一次请求信息的粗略汇总信息
- Assertion 断言判断具体信息
- Request 请求信息详情
- Response 响应信息详情
Jmeter生成html报告相关推荐
- 十三、Jmeter生成html报告
十三.Jmeter生成html报告 一.生成HTML测试报告的两种方式 1.利用已有.jtl文件生成报告 如果已经有经过测试生成的.jtl文件(可以在聚合报告等上面设置保存),可以利用该文件直接生成H ...
- jmeter生成html报告修改,jmeter:测试后生成html报告
以下是生成报告所遵循的步骤: 我有 .jtl 文件 我复制给定的粘贴 sample configuration 对我 user.properties 文件位于 apache-jmeter-5.0\bi ...
- mac系统jmeter生成html报告,jmeter5.1.1 生成html报告
1.首先需要准备好 .jmx 脚本 2.修改jmeter.properties文件(把注解去掉,报告中才能展示所需信息) jmeter.save.saveservice.output_format=x ...
- jmeter生成html报告修改,Jmeter生成html报告(示例代码)
新的JMeter版本中引入了Dashboard Report,用于生成HTML页面格式图形化报告的扩展模块. 注:本文用的是3.2版本. 生成html报告 一.检查.jtl文件,如果没有.jtl文件, ...
- jmeter添加html,Jmeter 报告可视化 —— 配置生成测试报告仪表板,Jmeter + Jenkins 自动化构建生成 HTML 报告...
目录 一.jmeter报告仪表板相关信息 二.文件修改说明 三.jmeter.properties文件配置 四.user.properties文件配置 五.新建jtl报告目录 六.复制jmeter.p ...
- 【二十三】win 10 :Jmeter 报告可视化 —— 配置生成测试报告仪表板,Jmeter + Jenkins 自动化构建生成 HTML 报告
目录 一.jmeter报告仪表板相关信息 二.文件修改说明 三.jmeter.properties文件配置 四.user.properties文件配置 五.新建jtl报告目录 六.复制jmeter.p ...
- Jmeter命令行执行并生成HTML报告
前提:准备好jmeter脚本,找到jmeter配置文件查看生成的日志格式是否为csv,如果不是请改为csv 注意:使用命令执行jmeter脚本必须使用jmeter 3.0及以上版本 1.使用命令行执行 ...
- jmeter 导出聚合报告_使用Jmeter聚合报告生成对比图表
背景 最近在帮别的项目组执行性能测试,使用的工具是Jmeter.接口录制和参数化前一个人已经做好了,我主要的工作就是执行脚本,撰写测试报告.事情并不复杂,可做起来却极为耗时. 首先,由于有6组账号,分 ...
- 执行jmeter脚本生成html报告解读
我么执行脚本之后,会生成result结果文件,我们在服务器里面打包之后下载下来,打开查看分析结果 一.执行脚本 1.首先我们得在本地,也就是客户端调试好脚本之后,放在服务器上上面跑 就是图片中保存文件 ...
最新文章
- unilever workspace creating space
- laravel 模板继承_Laravel框架模板之公共模板、继承、包含实现方法分析
- du命令、df命令用法
- LINUX编译:通过prefix把编译结果输出到指定位置
- 【优化算法】多目标水母搜索优化算法 (MOJS) 【含Matlab源码 248期】
- Html学习手册(W3CSchool.chm)
- 元胞自动机python代码_Python实现元胞自动机(康威生命游戏)
- 双击事件(dblclick)时,不触发单击事件(click)
- 操作系统 - startx/xinit
- sublime匹配汉字
- C语言中预编译/预处理的使用
- 曼尼托巴大学计算机科学硕士,曼尼托巴大学计算机科学本科申请.pdf
- [Linux]关于在国产操作系统上安装Oracle数据库
- 《自然语言处理》的相关资源
- 基于XMPP的IOS聊天客户端程序(IOS端二)
- 前端 vue 制作一个日历(一)
- 机器学习笔记之深度玻尔兹曼机(二)深度玻尔兹曼机的预训练过程
- IDV客户端下发界面会出现“获取磁盘信息失败”
- mysql cte_mysql 8.0 CTE 介绍
- 5G会给物联网行业带来哪些变化?
热门文章
- 如何在文档中显示藏文_信息检索系统中藏文自动提示的研究与实现.doc
- Linux现实哪种shell,Linux下查看使用的是哪种shell的方法汇总
- 脑电EEG静息态数据重新分段
- 网页内容超长用省略号代替超过部分(转载)
- 自动接单小票打印机是怎么实现的?
- CentOS7重启指令(重启命令)reboot、shutdown -r now
- 机器学习数据集pima-indians-diabetes.data 及R语言读入命令
- java计算机毕业设计客户台账管理源程序+mysql+系统+lw文档+远程调试
- 服务器creo怎么添加配置文件,Creo 2.0 配置文件选项以及实例
- 配置kubeconfig_多Kubernetes集群如何切换?基于Kubectl客户端配置的实操分享