IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> jmeter——jmeter+ant生成优化的HTML接口自动化测试报告 -> 正文阅读

[开发测试]jmeter——jmeter+ant生成优化的HTML接口自动化测试报告

一、最终实现效果展示

我们jmeter本身生成的接口自动化测试报告不能详细的展示出我们常见的信息,所以在此基础上进行了

优化,下面是优化之后的结果,既可以查看汇总信息也可以对每个接口的请求返回进行查看方便定位问


在这里插入图片描述

二、实现方式

1、环境搭建

(1)java环境搭建
【备注】:如果JDK版本是1.8以上则ANT包对应建议使用ant.1.10。否则使用ant.1.9
下载及配置:https://blog.csdn.net/sinat_37774909/article/details/109848342
(2)jmeter环境搭建
下载及配置:https://blog.csdn.net/qq_39242539/article/details/108140349
(3)Ant环境搭建
下载及配置:https://blog.csdn.net/mp624183768/article/details/80701370

2、实现原理

首先我们是执行ant命令,通过Ant命令来调用build.xml

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

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

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

3、报告生成方式

三、实现步骤

1、jar包转移:实现ant调用jmeter脚本

把jmeter安装包extras目录下的ant-jmeter-1.1.1.jar转移到ant安装包lib目录下,ant运行时才能找到

"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,之后可以触发Jmeter脚本
在这里插入图片描述

2、jmeter插件包处理

对于部分版本的jmeter包缺少插件JMeterPlugins-Extras-1.3.0和JMeterPlugins-Standard-1.3.0,可以下载后放到jmeter\lib\ext目录下
链接:https://pan.baidu.com/s/11XChnO2SDDmDWkMrvJ0uDw
提取码:upiv
在这里插入图片描述

3、build文件的创建和修改

在ant目录下创建文件build.xml,然后进行编辑以实现ant的调用
编辑内容如下:

<?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="F:\20220425\apache-jmeter-5.3\extras" />  
    <!-- 需要改成自己本地的 Jmeter 目录-->    
    <property name="jmeter.home" value="F:\20220425\apache-jmeter-5.3" />  
    <!-- jmeter生成jtl格式的结果报告的路径-->   
    <property name="jmeter.result.jtl.dir" value="F:\20220425\jmeterAnt\jtl" />  
    <!-- jmeter生成html格式的结果报告的路径-->  
    <property name="jmeter.result.html.dir" value="F:\20220425\jmeterAnt\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="F:\20220425\jmeterAnt" 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}"  
              <!-- 声明要运行的脚本。jmeter-results-detail-report_21.xsl是汇总报告的模板--> 
              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}"  
          <!-- 声明要运行的脚本。jmeter.results.shanhe.me.xsl是详细报告的模板--> 
          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是详细报告的模板,下载链接为:提取码:oaba【点我提取】

下载的模板放到目录apache-jmeter-5.3\extras下

4、报告展示信息调整

要控制我们展示详细报告的信息,此时我们还要修改jmeter的配置,在生成的jtl结果中显示记录我们需要

的数据,修改jmeter->bin目录下的jmeter.properties如图

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

5、html报告样式优化

前四步执行完基本就可以通过ant命令来实现自动化生成html报告啦。

【ant目录下打开cmd窗口然后输入命令:ant】
在这里插入图片描述
在这里插入图片描述

但是你会发现生成的报告只有详细信息,缺少汇总.我们需要需改一下html报告模板的内容把汇总信息展

示出来,这是文件在apache-jmeter-5.3\extras目录下替换既可

链接:https://pan.baidu.com/s/1HqK7vk86df9mtkwPjVKzZw
提取码:wvry

四、遗留问题、

问题一:ant执行过程中报错
BUILD FAILED
D:\automation2\apache-ant-1.9.7\build.xml:29: The following error occurred while
executing this line:
D:\automation2\apache-ant-1.9.7\build.xml:47: input file D:\automation2\JmeterTe
st\resultLog\jtl\201912300431.jtl does not exist

如果配置没问题的话去修改一下jmeter/bin目录下的user.properties,修改为如图所示

jmeter.save.saveservice.output_format=xml
 
jmeter.save.saveservice.response_data=true
 
jmeter.save.saveservice.samplerData=true
 
jmeter.save.saveservice.requestHeaders=true
 
jmeter.save.saveservice.url=true
 
jmeter.save.saveservice.responseHeaders=true

view.results.tree.max_size=0

如果还不行那说明你的JDK不匹配,更换版本吧

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:57:42  更:2022-05-13 11:57:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:16:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码