Jmeter+ant实现接口自动化(三)

article/2025/4/24 7:09:35

1、来看看jmeter生成自带的测试报告

进入jmeter的解压路径下的/bin,执行某个路径下的jmx文件:

jmeter -n -t /Users/ss/Desktop/jmeter/参数化.jmx -l result.jtl -e -o WebReport

       -n: 非GUI模式执行JMeter

  -t: 执行测试文件所在的位置

  -l: 指定生成测试结果的保存文件,如:jtl文件格式,txt文件格式

  -e: 测试结束后,生成测试报告

  -o: 指定测试报告的存放位置

这时查看WebReport下生成了hmtl格式的测试报告,使用浏览器打开可查看。

一般不使用自带的报告,比较常用的是ant+jmeter生成的报告,下面我们来看看具体的实现。

2、配置ant:下载安装包https://ant.apache.org/bindownload.cgi

解压之后配置环境,我这里是mac环境,编辑配置文件。

vi ~/.bash_profile

export ANT_HOME=Users/ss/Downloads/apache-ant-1.9.16 #这里是ant解压的路径

export PATH=$PATH:$ANT_HOME/bin

source ~/.bash_profile

输入ant - verison,返回ant的版本信息即安装成功。

3、配置jmeter和ant关联

将jmeter解压路径/extras下的ant-jmeter-1.1.1.jar复制到ant解压路径下的lib目录下,ant 通过这个 jar 包来驱动 jmeter 执行测试脚本 ;

编辑jmeter解压路径/bin/jmeter.properties,找到jmeter.save.saveservice.output_format=csv,把csv改成xml:jmeter.save.saveservice.output_format=xml;

编辑jmeter解压路径/bin/jmeter.properties,把部分内容改成true,如下图:

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
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=false
jmeter.save.saveservice.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

4、jmeter路径/bin下新建一个文件夹TestCase,TestCase下新建三个文件夹:jtl、html、script和一个build.xml。

把需要测试的脚本放入script,jtl用来存放生成的测试文件,html存放生成的测试报告。

编辑build.xml,输入以下内容,根据自己的情况修改配置:

<?xml version="1.0" encoding="UTF8"?><project name="ant-jmeter-test" default="run" basedir=".">
<!--填写 jmeter 所在的目录-->
<property name="jmeterPath" value="/Users/sujunyu/Downloads/apache-jmeter-5.4.3"/>
<!--填写邮箱的 smtp 服务器-->
<property name="mailhost" value="smtp.163.com"/>
<!--填写你的邮箱-->
<property name="username" value="s@163.com"/>
<!--填写邮箱的授权码-->
<property name="password" value="POQQQQQSDFDJHGH"/>
<!--填写发送的邮箱-->
<property name="mailfrom" value="s@163.com"/>
<!--填写接收邮件的邮箱-->
<property name="mail_to" value="160@qq.com"/>
<!--自定义邮件里面的内容-->
<property name="mailsubject" value="接口自动化测试报告"/>
<!--填写邮箱的端口,163邮箱是25 -->
<property name="mail_port" value="25"/>
<!--邮件的一个说明,可以自定义-->
<property name="message" value="Hello!请查收下,这是我的接口自动化测试报告,如有任何疑问,请联系我,谢谢!"/><tstamp><format property="time" pattern="yyyyMMddhhmm" /></tstamp><property name="jmeter.home" value="${jmeterPath}" />
<!--改成 jtl 所在的目录,jmeterpath前面已经填写好了,只需要填写剩余目录--><property name="jmeter.result.jtl.dir" value="${jmeterPath}/bin/TestCase/jtl" />
<!--改成 html 所在的目录,jmeterpath前面已经填写好了,只需要填写剩余目录--><property name="jmeter.result.html.dir" value="${jmeterPath}/bin/TestCase/html" /><property name="htmlReportNameSummary" value="TestReport" /><property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}${time}.jtl" /><property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html" /><target name="run"><antcall target="test" /><antcall target="report" /><antcall target="sendEmail" /></target><!--执行接口测试--><target name="test"><echo>执行接口自动化测试</echo><taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /><jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"><!--要执行的测试脚本--><testplans dir="${jmeterPath}/bin/TestCase/script" includes="*.jmx" /><property name="jmeter.save.saveservice.output_format" value="xml"/></jmeter></target><!--解决报告中NAN字段显示问题--><path id="xslt.classpath"><fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/><fileset dir="${jmeter.home}/lib" includes="serializer-2.7.2.jar"/></path><!--生成HTML测试报告--><target name="report"><echo>生成接口自动测试报告</echo><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><!--自动发送邮件--><target name="sendEmail"><echo>发送自动化测试报告</echo><mail mailhost="${mailhost}"ssl="ture"user="${username}"password="${password}"mailport="${mail_port}"subject="${mailsubject}"messagemimetype="text/html"tolist="${mail_to}"><from address="${mailfrom}" /><attachments><fileset dir="${jmeter.result.html.dir}"><include name="${htmlReportNameSummary}${time}.html"/><include name="collapse.png" /><include name="expand.png" /></fileset></attachments><message>${message}</message></mail></target></project>

5、配置生成报告的模版

默认模版生成的报告类似这样的,内容不太完整,所以需要引入新的报告模版。

下载模版文件jmeter.results.shanhe.me.xsl,下载之后放到jmeter下的extras中。

链接: https://pan.baidu.com/s/1IuD3477JqLv_UjKgh88psw?pwd=es2h 提取码: es2h

在build.xml中引入模版(需要引用旧模版的话,把jmeter.results.shanhe.me.xsl改成jmeter-results-detail-report_21.xsl即可。)

使用新模版之后的报告,可以看到请求和返回的具体内容 

6、安装发送邮件的插件:

链接: https://pan.baidu.com/s/1KDQwMnOP4wogGkwukESAUw 提取码: eq31

将3个jar包放入ant解压目录/lib下

7、进入jmeter下的/bin/TestCase,命令行输入ant或者ant -run,即可生成测试报告和发送邮件


http://chatgpt.dhexx.cn/article/6VuhfOYO.shtml

相关文章

jmeter+ant接口自动化测试框架

1、安装就jmeter 1、下载安装包&#xff08;过程略过&#xff0c;自己找安装包&#xff0c;随便装在哪个目录下&#xff09; 2、配置环境变量 JMETER_HOME 为 jemter安装路径; CLASSPATH为 %JMETER_HOME%\lib; PATH为%JMETER_HOME%\bin; 3、安装验证 在命令窗口中输入jmet…

Ant安装及环境变量配置+邮件配置+Ant生成接口测试报告

Ant安装 1.将Ant解压到 D:\Atest\apacheAnt下 2.将JMeter所在目录下extras子目录里的ant-jmeter-1.1.1.jar复制到 ant 所在目录lib子目录下&#xff0c;这样Ant运行时才能找到“org.programmerplanet.ant.taskdefs.jmeter.JMeterTask”这个类&#xff0c;从而成功触发JMeter脚…

Jmeter+Ant 接口自动化环境配置指南

一 、Jmeter安装与配置(以下为个人CSDN博客老文章) https://blog.csdn.net/tester_sc/article/details/80746405 注&#xff1a;Jmeter5.0的环境变量配置与4.0或历往老版本有部分小差异&#xff0c;笔者用的Jmeter 5.0 二 、Ant的安装与配置 # Ant下载地址(下载到指定目录后…

SpringBoot整合MyBatis实现分库分表方案

SpringBoot整合MyBatis实现分库分表方案 SpringBoot整合Mybatis实现分库分表查询&#xff0c; 这里不讲解SpringBoot如何整合MyBatis &#xff0c;只讲解SpringBoot整合MyBatis下的实现分库分表的实现方案。 #大概的实现思路 我们知道MyBatis的mapper对象是通过动态代理创建…

一种简单易懂的 MyBatis 分库分表方案

转载自&#xff1a;https://www.toutiao.com/a6667422100141113863/?tt_fromweixin&utm_campaignclient_share&wxshare_count1&timestamp1552387200&appnews_article&utm_sourceweixin&iid65271942423&utm_mediumtoutiao_android&group_id666…

MyBatis分库分表方案

SpringMVC MyBatis分库分表方案 mybatis作为流行的ORM框架&#xff0c;项目实际使用过程中可能会遇到分库分表的场景。mybatis在分表&#xff0c;甚至是同主机下的分库都可以说是完美支持的&#xff0c;只需要将表名或者库名作为动态参数组装sql就能够完成。但是多余分在不同…

数据库分库分表解决方案

数据库分库分表解决方案 前言MySQL表大小限制分表方案垂直分表水平分表按月分表MySQL分区表 分库方案按业务分库按表分库 拆分后的问题及常见的解决方案垂直拆分跨库Join问题全局表数据同步 分布式事务问题MySQL XA事务本地消息表 水平拆分分布式全局唯一ID分片键选择数据扩容跨…

MySQL-分库分表方案

一、业务背景 随着业务量的增长&#xff0c;数据量会随之增长&#xff0c;单机情况下DB服务器会面临存储容量、连接数和处理能力的瓶颈&#xff0c;当数据量达到一定量级时&#xff0c;DDL变更时间变长&#xff0c;影响业务可用性&#xff0c;此时需要考虑分库分表&#xff0c…

最全的MySQL分库分表方案总结

“ 面试中我们经常会碰到的关于分库分表的问题&#xff01;今天就给大家介绍互联网公司常用 MySQL 分库分表方案&#xff01;希望对大家的面试有所帮助&#xff01; 数据库瓶颈 不管是 IO 瓶颈&#xff0c;还是 CPU 瓶颈&#xff0c;最终都会导致数据库的活跃连接数增加&#x…

python mysql分库分表_干货 : 常用MySQL分库分表方案

Python乱炖推荐搜索后浪 动森玩家 送书 数据分析 一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞…

php分库分表技术,谈谈关于分库分表的方案

1. 数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。 1.1. IO瓶颈 第一种:磁盘读IO瓶颈,…

这应该是全网最全的分库分表方案了

一、数据库瓶颈 不管是IO瓶颈&#xff0c;还是CPU瓶颈&#xff0c;最终都会导致数据库的活跃连接数增加&#xff0c;进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是&#xff0c;可用数据库连接少甚至无连接可用。接下来就可以想象了吧&#xff08;并发…

MySQL第六讲 MySQL分库分表方案

分库分表概念 分库分表就是业务系统将数据写请求分发到master节点&#xff0c;而读请求分发到slave 节点的一种方案&#xff0c;可以大大提高整个数据库集群的性能。但是要注意&#xff0c;分库分表的 一整套逻辑全部是由客户端自行实现的。而对于MySQL集群&#xff0c;数据主从…

分库分表方案对比

房晓乐&#xff08;葱头巴巴&#xff09;&#xff0c;PingCAP 资深解决方案架构师&#xff0c;前美团数据库专家、美团云 CDS 架构师、前搜狗、百度资深 DBA&#xff0c;擅长研究各种数据库架构&#xff0c;NewSQL 布道者。 原文链接&#xff1a;https://dbaplus.cn/news-11-1…

分库分表方案

一、为什么要进行分库分表 当MySQL单表数据量过大&#xff0c;比如超过5千万条的时候&#xff0c;读写性能变得很差。而且常规的优化手段已经不起作用了&#xff0c;比如&#xff1a;SQL调优、添加索引、主从复制、读写分离。这时候就需要用到MySQL终极优化方案 — 分库分表。 …

分库分表设计方案

一、为什么要分库分表? 随着业务的不断发展&#xff0c;数据量不断增加&#xff0c;因此数据操作&#xff0c;如增删改查的开销也会越来越大&#xff0c;原来基于单库单表的设计已经不能满足存储需求&#xff0c;数据库随时面临爆库风险&#xff1b; 再加上物理服务器的资源有…

python:numpy的corrcoef计算相关系数

corrcoef(x, yNone, rowvarTrue, biasnp._NoValue, ddofnp._NoValue)函数常用的是前三个参数&#xff0c;x和y分别是需要计算相关系数的两个随机变量&#xff0c;当rowvar为True(默认情况)时&#xff0c;每一行代表一个随机变量&#xff0c;否则每一列代表一个随机变量。 该函数…

python 计算相关性系数np.corrcoef()

计算相关性是分析连续型与连续型双变量的常用方法&#xff0c;散点图只能直观的显示双变量&#xff08;特征&#xff09;之间的关系&#xff0c;但并不能说明关系的强弱&#xff0c;而相关性可以对变量之间的关系进行量化分析。 相关性系数的公式如下&#xff1a; 相关性系数…

Numpy库 numpy.corrcoef()函数

相关系数公式&#xff1a; 其他详见&#xff1a; 1. Python Numpy库 numpy.corrcoef()函数讲解 2. 协方差、方差、标准差、协方差系数 3. 标准差、方差、协方差三者的表示意义

MATLAB中的corrcoef函数求两个向量的相关系数。

&#xfeff;&#xfeff; 想用MATLAB中的corrcoef函数求两个向量的相关系数。 比如A[1 2 3];B[5 3 7]; r corrcoef(A,B)可以求出相关系数是0.5.为什么两个向量的元素都要是3个以上才行&#xff1f;而只有两个元素的向量如A[1 2];B[5 3];不管怎么随机的取&#xff0c;相关系数都…