首页 > 其他分享 >Jmeter+Ant生成优化HTML的接口测试报告

Jmeter+Ant生成优化HTML的接口测试报告

时间:2024-07-30 17:52:58浏览次数:8  
标签:ant jmeter 测试报告 Ant truejmeter HTML save response saveservice

为什么要这么做?

在实际测试场景遇到这样一种情况,开发重构了接口实现逻辑,该接口主要用于查询操作,接口的入参有上千种可能,查询出来的内容很多,需要与原来接口比对,检查是否一致

那此时,单纯用jmeter跑一遍的话,很难直观的看到测试之后的结果,所以就需要这样一种报告来展示,供开发修改

在这里,本地用的jmeter+ant的方式进行产出报告

具体操作步骤如下:

  1. 安装配置java环境和Jmeter环境---->这两个比较简单,不再叙述

  2.安装Ant及配置

    下载地址:https://ant.apache.org/bindownload.cgi

    a. 下载后解压到指定位置即可

    b. 将jmeter所在目录下的extras子目录里的ant-jmeter-1.1.1.jar复制到ant所在的目录lib子目录之下

    配置环境变量:

    ANT_HOME F:\apache-Ant

    CLASSPATH %ANT_HOME%\lib

    Path  %ANT_HOME%\bin

  命令行输入ant -version,出现版本信息则安装成功

  3. 实现原理

  通过执行ant命令,来调用build.xml

  build文件规定了脚本的调用路径(支持多脚本)、生成报告的模版、生成报告的路径和生成报告的名称

  build再通过配置调用jmeter执行脚本生成jtl结果文件,并把结果文件转换为html报告展示

  报告的展示内容首先受jmeter用例模版的控制,其次还受jmeter配置中的参数输出项控制

  4.实现步骤

    a. 把jmeter安装包extras目录下的ant-jmeter-1.1.1.jar转移到ant安装包lib目录下,ant运行时才能找到org.programmerplanet.ant.taskdefs.jmeter.JMeterTask这个类,之后可以触发Jmeter脚本

    b.jmeter插件包处理,对于部分版本的jmeter包缺少插件JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar  ,下载后放到jmeter/lib/ext目录下

    c. 新建文件夹pc,pc文件夹分别新建buildfile、resultlog、script三个文件夹,buildfile文件夹放入build.xml文件,resultlog里面新建html和jtl文件夹 ,script中放置待测试的jmx脚本

      build.xml文件的内容如下:

    

<?xml version="1.0" encoding="UTF-8"?>     <project name="ant-jmeter-test" default="run" basedir=".">             <tstamp>           <format property="time" pattern="yyyyMMddhhmm" />       </tstamp>       <property name="basedirectory" value="E:\apache-jmeter-5.5\extras" />       <!-- 需要改成自己本地的 Jmeter 目录-->         <property name="jmeter.home" value="E:\apache-jmeter-5.5" />       <!-- jmeter生成jtl格式的结果报告的路径-->       <property name="jmeter.result.jtl.dir" value="E:\apache-jmeter-5.5\jmeterAutoTest\pc\resultlog\jtl" />       <!-- jmeter生成html格式的结果报告的路径-->       <property name="jmeter.result.html.dir" value="E:\apache-jmeter-5.5\jmeterAutoTest\pc\resultlog\html" />       <!-- Name of test (without .jmx) -->       <property name="test" value="Test"/>       <!-- 生成的报告的前缀-->         <property name="ReportName" value="TestReport" />       <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${time}.jtl" />       <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${time}.html" />             <path id="xslt.classpath">           <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>           <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>       </path>             <target name="run">           <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="E:\apache-jmeter-5.5\jmeterAutoTest\pc\script" includes="*.jmx" />             <property name="jmeter.save.saveservice.output_format" value="xml"/>                     </jmeter>       </target>                 <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-detail-report_21.xsl">             <param name="dateReport" expression="${report.datestamp}"/>         </xslt>         <xslt classpathref="xslt.classpath"             force="true"             in="${jmeter.result.jtlName}"             out="${jmeter.result.htmlName}"                       style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">             <param name="dateReport" expression="${report.datestamp}"/>         </xslt>         <copy todir="${jmeter.result.html.dir}">               <fileset dir="${jmeter.home}/extras">                   <include name="collapse.png" />                   <include name="expand.png" />               </fileset>           </copy>       </target>         </project>   把其中一些关于路径配置的修改为自己的信息 其中jmeter-results-detail-report_21.xsl是汇总报告的模版 jmeter.results.shanhe.me.xsl是详细报告的模版,该模版需要单独下载,并放到extras目录下   d. 报告展示信息调整   要控制我们展示详细报告的信息,此时我们还要修改jmeter的配置,在生成的jtl结果中显示记录我们需要的数据,修改jmeter.properties,如下:        将jmeter.save.saveservice.output_format=csv改为 jmeter.save.saveservice.output_format=xml并将#去掉 其他修改:

jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
# Only available with HttpClient4
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=true
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
#jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true

    e. 进入到buildfile目录下,打卡dos窗口,执行ant命令即可生成测试报告

标签:ant,jmeter,测试报告,Ant,truejmeter,HTML,save,response,saveservice
From: https://www.cnblogs.com/liangqiuqiu/p/18333028

相关文章

  • Solution - Atcoder APC001E Antennas on Tree
    首先考虑判定什么样的选取是合法的。考虑到令任意一个点\(u\)为根。若\(u\)有至少两个子树没有点选中,那么这两个子树是无法区分的。所以可以知道需要满足任意一个点为根,都至多存在一个子树内部没有选中的点。接下来就要贪心的选出最少的点了。考虑对于每个点的限制都是子......
  • 在 html 上添加 json 数据(数据包含多种特殊字符),使用 JSON.stringify 读取 error
    letjsonObj=[{ "Name":"test" "Attach":"www!@#$%^&*(){}|:\"<>?,./;'[]\\"}]lethtml=jsonObj.map((i,v)=>{ letjsonStr=JSON.stringify(jsonObj) return`<trdata='${json......
  • Pydantic constr 与 Field args
    我想知道:frompydanticimportBaseModel,FieldclassPerson(BaseModel):name:str=Field(...,min_length=1)和:frompydanticimportBaseModel,constrclassPerson(BaseModel):name:constr(min_length=1)两者似乎都执行相同的验证(甚至在na......
  • 了解Web标准,HTML 语法规范,使用 HBuilder X 构建文档骨架,HBuilder X 生成骨架标签新增
    Web标准是由W3C组织和其他标准化组织制定的一系列标准的集合。W3C(万维网联盟)是国际最著名的标准化组织。遵循Web标准可以让不同的开发人员写出的页面更标准、更统一外,还有以下优点:1.让Web的发展前景更广阔。2.内容能被更广泛的设备访问。3.更容易被搜寻引擎搜索。......
  • 使用 Python 进行 QuantLib Vanilla 掉期定价 - 错误
    我真的需要帮助...我有一个使用QuantLib构建自己的VanillaSwapPricer的项目。我想根据ois掉期的市场价格进行计算以进行贴现,并根据Euribor6M掉期+FRA进行预测固定。总而言之,我的目标是尽可能接近彭博社对标准Euribor6M掉期的定价(贴现ois)-fwdEuribor6M)。......
  • html中javascript点击事件后显示或隐藏某些元素时需要点击两次才生效的原因分析和优化
    html中javascript点击事件后显示或隐藏某些元素时需要点击两次才生效的原因分析和优化。原来的代码如下:<divclass="cardcardcol-sm-6col-md-4col-xl-2col-lg-2justify-content-centerbg-secondary-subtle"id="tools-trigger"><ahref="javascript:vo......
  • 前端开发技术之HTML/CSS
    前端开发技术        HTML/CSS                HTML(HyperTextMarkupLanguage)是一种用于创建网页的标准标记语言。基本标签        1.<div>:定义文档中的一个分区或节,常用于页面布局和样式化。 <div>这是一个分区</div>      ......
  • html+css+js作业王者荣耀1个页面西施(带js)
    html+css+js作业王者荣耀1个页面西施(带js)下载地址https://download.csdn.net/download/qq_42431718/89595507目录1目录2项目视频html+css+js作业王者荣耀1个页面西施带js页面1......
  • 搭建Home Assistant智能家居系统 - 家庭设备「内网穿透」
     文章目录前言1.安装HomeAssistant2.配置HomeAssistant3.安装cpolar内网穿透3.1windows系统3.2Linux系统3.3macOS系统4.映射HomeAssistant端口5.公网访问HomeAssistant6.固定公网地址6.1保留一个固定二级子域名6.2配置固定二级子域名......
  • 洛谷题单指南-前缀和差分与离散化-P1884 [USACO12FEB] Overplanting S
    原题链接:https://www.luogu.com.cn/problem/P1884题意解读:给定n个矩形的平面直角坐标系下左上角、右下角的坐标,计算这n个矩形能覆盖的的格子数。解题思路:直观上来看,此题是一个差分应用,针对二维差分数组,将n个矩形区域内每个格子的值加1,然后统计有多少个不为0的格子即可。但是!坐......