jmeter——生成多样的接口自动化html报告

2023-11-08

一、实现目的

对于接口自动化来说有很多工具和框架来实现,比较常遇到的实现工具非jmeter莫属啦;

简单的界面、轻巧的安装配置、完善的功能、学习成本低这就导致了jmeter是很多人的首选;

特别是代码基础薄弱的同学,更加适合借助此工具实现接口自动化,而且做接口、性能测试也是极为方便;

对于自动化来说有一个是必不可少的,测试报告,可以对外提供的测试报告,本文就聊一聊jmeter实现接口自动化测试报告的

提供方案,当前提供四种方案来实现,各有优缺建议选择适合项目要求的的方案实现。

二、实现效果

接下来我们聊一下四种方案分别可以实现的html报告效果

1、jmter自带的HTML报告

在这里插入图片描述
性能测试报告

2、jmeter+ant报告优化

在这里插入图片描述

3、批量执行jmeter工具

在这里插入图片描述

4、jmeter+allure生成测试报告

在这里插入图片描述

三、实现方案

1、jmeter自带的HTML报告

  1. 接口自动化HTML
    (1)实现方式是通过ant来调用biud文件来实现的
    首先是ant安装和环境变量配置:https://blog.csdn.net/tangsl666/article/details/79431037
    【注意】:首先查一下本地的JDK版本,1.8以上的建议下载ant1.10,1.8以下的建议下载ant1.9
    在这里插入图片描述

    (2)把apache-jmeter-5.3\extras目录下的ant-jmeter-1.1.1.jar复制到apache-ant-1.9.16\lib目录下
    在这里插入图片描述

    (3)创建一个build.xml文件修改build内容,修改为如下:

<?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}"  
              style="${jmeter.home}/extras/jmeter-results-detail-report_21.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>

(4)把修改后的build文件放到ant目录下,然后再ant目录文件输入框输入cmd,进入cmd命令
执行命令:ant,既可在指定路径得到html报告
在这里插入图片描述

  1. 性能测试报告
    【win】+R 打开CMD窗口,输入命令生成HTML测试报告
    cmd命令:jmeter -n -t 脚本文件路径 -l 11.jtl -e -o html
    jmetre:声明调用的是jmeter工具执行
    -n:非GUI模式执行JMeter
    -t:执行测试文件所在的位置
    -l:指定生成测试结果的保存文件,如:jtl、csv、xml、txt等。此文件要在指定路径下不存在
    -e:测试结束后,生成测试报告
    -o:指定测试报告的存放位置【文件夹不存在或者为空】
    样例:jemter -n -t E:\11.jmx -l E:\11.jtl -e -o html
    在这里插入图片描述

2、jmeter+ant优化测试报告

和第一步的jmeter自带html生成类似也是ant执行buid脚本

但是需要修改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="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}"  
          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的bin目录下jmeter.properties文件

jmeter.save.saveservice.output_format=xml
#jmeter.save.saveservice.output_format=xml   使用ant 命令时候打开这个,其他使用csv格式

# The below properties are true when field should be saved; false otherwise
#
# assertion_results_failure_message only affects CSV output
#jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=all
#
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

最后ant调用build文件既可。这里就不详细介绍啦,可以看下面的详情连接

【备注】:详情请参考:https://blog.csdn.net/qq_32828053/article/details/124687407?spm=1001.2014.3001.5501

3、使用jmeter脚本批量执行工具生成

使用BAT工具来加载批量执行jmeter脚本
BAT提取路径:
链接:https://pan.baidu.com/s/15HiGu6Ay-0d9Gy3Mj7gTOg
提取码:po6f

使用说明:
(1)解压文件之后点击BAT.exe,选择jmeter的安装路径
在这里插入图片描述

(2)把需要执行的脚本放置到BAT V2.0.4.0\TestCase\demo\sample目录下(也可以在testcase下新建目录)
在这里插入图片描述

(3)BTA选择工程–》快速创建:创建当前执行jmeter脚本的ini文件
在这里插入图片描述
(4)导入ini文件并点击执行脚本,之后过后自动生成和打开测试报告
工程–>打开:选择刚才生成的ini文件
在这里插入图片描述
在这里插入图片描述

4、jmeter+allure生成测试报告

首先还是执行jmeter脚本生成执行结果文件*.xml

然后通过pytest解析xml文件

把解析后的文件加上allure标签

最后执行生成allure报告既可

【备注】详情请参考:

四、遗留问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jmeter——生成多样的接口自动化html报告 的相关文章

  • 猿人学第3题-访问逻辑 - 推心置腹分析

    3 访问逻辑 推心置腹分析 1 请求页面并进行抓包 https match yuanrenxue cn match 3 2 对抓包进行分析 判断发现每次数据请求前先请求 https match yuanrenxue cn jssm 分析参数

随机推荐

  • 查T结果与Z结果的P值[转载]

    T检验P值表格来自 https blog csdn net m0 37777649 article details 74937242 Z检验表格来自 https wenku baidu com view 4926021f10a6f524cc
  • 关于虚拟机的认识

    一 在实体机 物理机 上 localhost它是一个域名 对应的ip地址为 127 0 0 1 计算机网络这本书中规定的 指的本机 关于127 0 0 1 为什么是 localhost 在 C Windows System32 driver
  • bash devtty No such device or address

    hexo d bash dev tty No such device or address error failed to execute prompt script exit code 1 fatal could not read Use
  • [囧途系列之特别篇]IT者的生存之路

    blog csdn net shenyisyn article details 8545410 此文特别送给 csdn网友 kkgbn 盖宝宁 前言 我的一个很早的转文 一对夫妻程序员的故事 看到了一个由kkgbn发表的评论 评论的大意是
  • Stanford CS143 速通PA1教程

    今天做完了CS143的PA1 感觉最难的地方在于官方没有具体的文档 edX 然后COOL语言调试比较困难 以下是我对同样打算入坑CS143的同学的一些帮助吧 速通前的准备 Virtual VM Setup 如果还没有搭好环境的 建议跟着官网
  • 信号和槽机制

    信号和槽是一种高级接口 应用于对象之间的通信 它是QT的核心特性 也是QT区别于其它工具包的重要地方 信号和槽是QT自行定义的一种通信机制 它独立于标准的C C 语言 因此要正确的处理信号和槽 必须借助于一个称为moc Meta Objec
  • c++申请内存空间的本质

    c 申请内存空间的本质 void teseTwo char cc 8 cout lt lt void cc lt lt endl cout lt lt 将cc的内存空间存储字符串 lt lt endl strcpy s cc hello c
  • Unity解析服务器Json文件

    文章目录 需求 Json文件存在服务器上 Unity要获取并解析它 原理 通过 UnityWebRequest类获取服务器文本 的功能 把Json文件传输到本地 再通过写好的解析类 Unity自带的JsonUtility FromJson
  • Linux下运行Jmeter压测

    一 在Linux服务器先安装SDK 1 先从官网下载jdk1 8 0 131 tar gz 再从本地上传到Linux服务器 2 解压 tar xzf jdk1 8 0 131 tar gz 生成文件夹 jdk1 8 0 131 3 在 us
  • 配置tomcat5.5 jndi 各种配置方式 分析总结(mysql)

    准备工作 安装tomcat5 5 注意这点 安装mysql 拷贝mysql驱动到tomcat home common lib下 新建一个web工程 在工程中加入index jsp
  • 获取B站SESSDATA及解决403

    获取B站SESSDATA 登录B站 按F12打开控制台 找到SESSDATA复制即可 解决B站防盗链 403 B站开启了防盗链 利用的是HTTP的Referer属性做判断 如果Referer是他白名单之外的网站 就会返回403 全站图片使用
  • 4-4面向对象编程(上)----再谈方法(3)--方法参数的值传递机制

    重点 3 方法参数的值传递机制 一 方法 必须由其所在类或对象调用才有意义 若方法含以后参数 1 形参 方法声明时的参数 2 实参 方法调用时实际传给形参的参数值 二 Java的实参值如何传入方法中的 Java里方法的参数传递方式只有一种
  • Android app专项测试之耗电量测试

    前言 耗电量指标 待机时间成关注目标 提升用户体验 通过不同的测试场景 找出app高耗电的场景并解决 01 需要的环境准备 1 python2 7 必须是2 7 3 X版本是不支持的 2 golang语言的开发环境 3 Android SD
  • OpenCV-Python 图像缩放

    缩放就是调整图片的大小 使用cv2 resize 函数实现缩放 图像的大小可以手动指定 也可以指定缩放比例 也可使用不同的插值方法 插值方式 cv INTER NEAREST 最近邻插值 cv INTER LINEAR 双线性插值 cv I
  • Qt学习之Qt基础入门(上)

    1 前言 上一篇博客 简单的介绍了一下C 的面向对象编程 这篇博客就主要是用来入门Qt 废话不多说 开干 Qt入门系列 Qt学习之C 基础 Qt学习之Qt安装 Qt学习之Qt基础入门 上 Qt学习之Qt基础入门 中 Qt学习之Qt基础入门
  • 第一个Echarts

    安装node js教程 解决cnpm v 不能运行的问题 使用pycharm进行代码编写 步骤 1 在pycharm中新建一个文件夹 在文件夹中新建一个html file 2 在pycharm project中 找到新建文件夹 在文件夹中新
  • 20仿函数(functors)

    1 仿函数概述 仿函数 functors 是早期的命名 新名称是函数对象 function objects 函数对象是指一种具有函数特质的对象 所以仿函数的本质就是一个行为类似函数的对象 仿函数主要用途是搭配STL算法 这种东西在调用者可以
  • Search for a Range

    Given an array of integers nums sorted in ascending order find the starting and ending position of a given target value
  • Dubbo 、 OpenFegin 远程服务调用的使用区别

    Dubbo 与 OpenFegin 都利用于远程调用层面 其中包括协议 负载均衡等都有不同的点 并且在使用上面也有不同的形式 简约记录一下两者的用法 1 服务端 dubbo 1 添加dubbo依赖 2 服务类添加 DubboService
  • jmeter——生成多样的接口自动化html报告

    jmeter 生成多样的接口自动化html报告 一 实现目的 二 实现效果 1 jmter自带的HTML报告 2 jmeter ant报告优化 3 批量执行jmeter工具 4 jmeter allure生成测试报告 三 实现方案 1 jm