jmeter生成html格式接口自动化测试报告

2023-09-15 15:25:35

jmeter自带执行结果查看的插件,但是需要在jmeter工具中才能查看,如果要向领导提交测试结果,不够方便直观。

  笔者刚做了这方面的尝试,总结出来分享给大家。

  这里需要用到ant来执行测试用例并生成HTML格式测试报告。

一、ant下载安装

  1.1、下载地址:

  http://ant.apache.org/bindownload.cgi

  1.2、版本对应关系

  1.10.2 .zip archive  对应jdk8

  1.9.10 .zip archive  对应jdk7

 1.3、下载以后直接解压压缩包,并配置环境变量

  ANT_HOME C:\mySoftware\ant1.9                 ----为ant的解压目录

  JAVA_HOME  C:\mySoftware\jdk\1.7.0_64     ----为jdk的安装目录

  path %ANT_HOME%/bin

  1.4、检查ant是否安装成功

  在cmd窗口执行:ant -v   ,如果执行结果如下,就说明安装成功

二、配置ant 和 jmeter
  2.1、将jmeter中extras目录下的ant-jmeter-1.1.1.jar 文件copy到ant安装目录下的lib文件夹中

  2.2、配置编译文件build.xml文件;在任意目录下创建case执行目录,以及报告的生成目录,我这边依据个人习惯,在jmeter/bin目录下创建执行目录:case_run,并在此目录下创建执行报告存放目录:report,见下图;

在执行目录下创建编译文件:build.xml

2.3、编辑build.xml内容

<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="E:\tools\apache-jmeter-4.0" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="E:\tools\apache-jmeter-4.0\bin\commonservice\report" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="E:\tools\apache-jmeter-4.0\bin\commonservice\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="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:\case-report" includes="接口自动化--2.0-工作台-wxx.jmx" />
 
<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>
 
<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" />
 
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>

 

 2.4、模板文件:jmeter.results.shanhe.me.xsl的下载链接

  链接:https://pan.baidu.com/s/1lTdS7tccNWyy1D1kmHgEng
  提取码:d6kx
  下载以后,解压到jmeter/extras目录下,并配置build.xml文件

  

  2.5、配置jmeter.properties文件,位置在jmeter/bin目录,将配置项jmeter.save.saveservice.output_format前面的注释去掉,值改为 xml,见下图

2.6、将要执行的脚本以及脚本所需的csv文件等,放到build.xml文件同一目录下

 2.7、在命令行进入执行目录,并执行命令:  ant run

2.8、 执行以后的模板内容:

 

 2.9、如果觉得报告输出内容太少了,可以配置jmeter.properties文件,位置在jmeter/bin目录,将jmeter.save.saveservice开头的配置项中,需要打印的配置项改成true,并去掉前面的“#”

2.10、如果一次要执行多个文件,则修改build.xml,并将要执行的文件放到执行目录下

 下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

更多推荐

如何平滑升级 Nginx

Nginx详情:Nginx是一个流行的Web服务器和反向代理服务器。当需要升级Nginx时,可能会涉及到停止和启动服务,这将导致一段时间内网站不可用。为了避免这种情况,可以采用平滑升级的方法。以下是平滑升级Nginx的步骤:1.查看现有Nginx编译参数在终端输入以下命令查看当前Nginx的编译参数:/usr/loca

国内什么牌子的ipad手写笔好用?开学性价比触控笔

如今,苹果的Pencil系列无疑是iPad使用者的最佳选择。但这电容笔的售价实在是太高了,对于普通用户是买不起的。因此,在使用过程中,如何选用一款性能优良、价格低廉的电容笔是非常关键的。作为一个“苹果粉”,同时也是一个资深的数字发烧友,本人对电容笔也有一定的认识,下面就是我为大家准备的几款价格相对亲民的电容笔!一、电容

数据结构与算法——14.栈

目录1.概述2.栈的接口设计3.用链表来实现栈4.用数组来实现栈5.用两个栈来实现一个队列6.用一个队列来实现一个栈7.总结1.概述计算机科学中,stack是一种线性的数据结构,只能在其一端添加数据和移除数据。习惯来说,这一端称之为栈顶,另一端不能操作数据的称之为栈底,就如同生活中的一摞书。说明:栈是线性的,只能在一端

八、数据类型转换

数据类型转换1.数据类型转换1.1.隐式类型转换1.2.显式类型转换1.3.训练11.4.训练2——————————————————————————————————————————————————1.数据类型转换类型转换是将一个值从一种类型更改为另一种类型的过程。例如:可以将String类型的数据"457"转换为数值型

Java 21正式发布了,来来来,一睹它的芳容!

Oracle高兴地宣布JDK21已经正式上线了。这是按照每六个月一次的发布计划,准时推出的第12个版本。这种定期的发布模式为开发者提供了稳定和可预见的创新,使得他们可以轻松地接纳和采用这些新特性。Java由于其出色的性能、稳定性和安全性使其持续成为全球最受欢迎的编程语言。#01JDK21已经正式发布Oracle现已为开

ElasticSearch:文章检索

实现目标思路与ES前期准备使用postman添加映射put请求:搜索结果展示内容:标题、布局、枫叶图片、发布时间、作者名称、文章id、作者id、静态url需要对:内容、标题进行分词json"content":{"type":"text","ananlyze":"ik_smart"}http://${url}:${por

重构Transformer神经网络:优化的自注意力机制和前馈神经网络

重构Transformer神经网络:优化的自注意力机制和前馈神经网络原文代码网络结构推理代码训代码数据处理代码长词表辅助代码原文标题:重构Transformer神经网络:优化的自注意力机制和前馈神经网络摘要:本论文研究了一种改进的Transformer神经网络模型,该模型使用区别于传统自注意力机制的新型注意力机制,以及

湖南长沙石雕石质文物三维扫描数字化雕刻3D打印复刻文化遗产-CASAIM中科广电

石质文物主要包括石雕、石塔和古建筑等,颇具代表性的雕刻动物作品有:龙、凤、狮子、麒麟、貔貅、金蟾等。石雕是我国文化遗产的重要组成,在书写灿烂文明中扮演着重要角色,记载了我国文化和历史的变迁。随着现代艺术的发展,雕塑艺术作品创作风格和形式呈现多元化的趋势,CASAIM三维数字化越来越多地被应用到雕塑艺术品的复刻、修复、展

不相同的字符串(挑战字符串中的算法)

此题不容易考虑全部情况,对于未出现字母不够的情况,需要自己模拟假设一下,才会发现处理方法的玄妙//分析题目不难发现,这道题其实和字符具体长啥样没关系//只和字母的个数有关系,所以我们只需统计字母的个数//总体思路分两个情况//第一个情况,若有不存在的字母//例如abab,除ab以外的字母都不存在,可以将两个a转化为单个

LeetCode_队列_中等_649.Dota2 参议院

目录1.题目2.思路3.代码实现(Java)1.题目Dota2的世界里有两个阵营:Radiant(天辉)和Dire(夜魇)Dota2参议院由来自两派的参议员组成。现在参议院希望对一个Dota2游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利

基于Java的Base64编解码优化探讨

🌷🍁博主猫头虎带您GotoNewWorld.✨🍁🦄博客首页——猫头虎的博客🎐🐳《面试题大全专栏》文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大

热文推荐