运行 Jmeter 文件生成 HTML 测试报告,我选择 ANT 工具

概述

ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于 Java 环境中的软件开发。

在与 Jmeter 生成的 jmx 文件配合使用中,ant 会完成jmx计划的执行和生成jtl文件,并将jtl文件转化为html页面进行查看。

还可与 Jenkins 配合使用。

优点:跨平台、操作简单、维护简单、集成方便。

依赖

在使用 ant 时请确保已经安装了 java jdk,因为ant的使用需要依赖java环境。

并且需要配置java环境变量。

安装

进入apache-ant 官网并下载 zip 包。https://ant.apache.org/bindownload.cgi
将下载好的 zip 解压。

解压后的 bin 目录是 ant 的程序运行入口,如果没用对 ant 进行环境变量的配置,在 bin 目录中运行bat程序,同样可以达到 build 任务目的。

ANT环境变量配置

为了使用起来方便,对 ant 进行环境变量配置。

在我的电脑 --> 右键属性 --> 高级系统配置 -> 环境变量->系统变量中添加 ant 路径。

新建系统变量 ANT_HOME = C:\apache-ant-1.9.9

在环境变量PATH的最后面添加一下内容:

;%ANT_HOME%\bin 注意前面的分号。

校验安装成功

使用 ant -version 对配置进行验证

使用

设置

jmeter默认保存的是.csv格式的文件,所以需要设置 bin/jmeter.properties 文件内容,将 jmeter.save.saveservice.output_format=csv 取消注释,并且将csv修改为xml;  

将apache-jmeter-5.1.1\extras\ant-jmeter-1.1.1.jar拷贝到apache-ant-1.9.9\lib目录下;

这样ant运行时才能找到 "org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" 这个类,从而成功触发JMeter脚本。

新建 build.xml

在存放Jmeter导出的 jmx 目录下,新建build.xml文件,并且编辑内容如下:

在ant运行时会在当前目录下寻找build.xml文件,所以在运行时要确保 build.xml 在当前目录下。

python 复制代码
<?xml version="1.0" encoding="utf-8"?>
<project name="Ant-Jmeter-Test" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="F:\yang\apache-jmeter-5.1.1" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="F:\yang\apache-jmeter-5.1.1\report" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="F:\yang\apache-jmeter-5.1.1\report" />
    <!-- 生成的报告的前缀 -->
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
    <target name="all">
        <antcall target="test" />
        <antcall target="report" />
    </target>
    <target name="test">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
            <testplans dir="F:\yang\apache-jmeter-5.1.1\case" includes="*.jmx" />
        </jmeter>
    </target>
    <target name="report">
        <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
        <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
 
</project>

如果使用上面 build.xml 内容则需要修改四个地方

修改内容如下图

还可以修改报告的名称,如下图标记的地方为测试报告的名称

ant 运行

进入build.xml 所在的目录,在命令行中使用 ant 命令进行运行q
 进入report的 html 目录下查看生成结果

打开 html 报告

但是时间显示为NaN

需要从Jmeter 的 lib 中将 xalan-2.7.2.jar 和 serializer-2.7.2.jar 两个包 copy到 Ant 的 lib 目录下

重新运行 ant 命令生成报告,结果如下

HTML 报告强化

下载 jmeter.results.shanhe.me.xsl 文件

下载地址: https://pan.baidu.com/s/1MJb3ctyEHS3eWwP_AVZbzg

下载后将文件放在...\apache-jmeter-5.1.1\extras 目录下

修改 build.xml 中 对应 style 的值,替换成下载的文件名,如下图

重新运行 ant 命令生成报告,结果如下

比起上个报告,多了好多参数。

是不是很赞

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】


【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

相关推荐
XWM_Web27 分钟前
JavaApi---第二节
java·开发语言·python·学习
Zaly.43 分钟前
【Python刷题】动态规划相关问题
开发语言·python·动态规划
只怕自己不够好1 小时前
《全面解析图像平滑处理:多种滤波方法及应用实例》
图像处理·python·opencv
股票GPT分析1 小时前
《Python 股票交易分析:开启智能投资新时代》(一)
服务器·开发语言·python·fastapi
天才奇男子1 小时前
Python爬虫爬取网页小说
开发语言·爬虫·python
努力更新中1 小时前
Python浪漫之画明亮的月亮
开发语言·python·动画
数据小爬虫@1 小时前
利用Python爬虫获取商品评论:技术与实践
开发语言·爬虫·python
叫我:松哥1 小时前
基于python flask的网页五子棋实现,包括多种语言,可以悔棋、重新开始
开发语言·python·算法·游戏·flask
秋夜白2 小时前
【排序算法 python实现】
开发语言·python·排序算法
qq_273900232 小时前
旋转向量v和旋转矩阵R
人工智能·python·线性代数·矩阵