百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

接口测试很难吗?学会JMeter+Ant接口自动化搭建及实践

liuian 2024-12-05 14:27 52 浏览

JMeter是Apache组织的开放源代码项目,能做接口测试、功能测试和性能测试。它能够对HTTP和FTP服务器进行压力和性能测试,也可以对数据库进行同样的测试(通过JDBC),还能以多种形式展现测试结果。

然而,在使用JMeter进行测试过程中,不可避免遇到两个痛点:"运行测试脚本"和"生成测试报告"。前者主要是需要不断重复运行脚本,且当脚本数量较多或进行并发测试时,JMeter GUI界面容易宕机、卡死等,这种情况下就需要重复使用命令执行脚本;后者则是需要手工整理数据、分析测试结果然后生成测试报告。

因此,本文采用JMeter+Ant(一个将软件编译、测试、部署等步骤联系在一起加以自动化的工具)搭建自动化测试环境,用以解决测试过程中的痛点,通过此环境可以实现:

(1)自动重复运行脚本(2)自动生成测试报告(3)自动发送邮件。

大体的逻辑如下:

1、配置build.xml文件,Ant通过XML文件进行构建,通过调用target就可以执行各种task,每个task实现了特定接口对象。因此,通过Ant可以实现批量执行。

2、Ant通过测试结果(jtl文件)构建生成HTML测试报告,并输出在指定路径下,避免了手工整理测试报告。

3、根据build.xml文件中配置的的邮件信息,将HTML测试报告自动发送到指定的邮箱。

JDK安装

JMeter依赖Java环境,故需要先安装JDK并配置好环境变量。

Java环境变量配置

1、创建JAVA_HOME(JDK安装目录)。如:C:\Program Files (x86)\Java\jdk1.8.0_231

2、创建CLASSPATH,.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

3、编辑Path,把值放在最面?%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

验证JDK

CMD命令行输入java -version,显示如图,表示安装成功。

JMeter安装

下载成功后,解压缩到建立的文件夹路径中(如:D:\Apache\JMeter)。

JMeter环境变量配置

1、创建JMETER_HOME,填写JMeter文件所属路径(如:D:\Apache\JMeter)

2、修改CLASSPATH,添加;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;

3、修改Path,添加%JMETER_HOME%\bin

点击JMeter目录下bin文件夹中的jmeter.bat就可以打开JMeter,具体界面如下:

添加常用插件

注:官网下载的JMeter不包含一些常用插件。

将plugins-manager-xxx.jar、JMeterPlugins-Extras.jar、JMeterPlugins-Standard.jar和JMeterPlugins-Standard-1.4.0.zip解压后的jar包放入D:\Apache\JMeter目录下的lib\ext目录,重启JMeter。

打开有如下页面,则成功安装。

JMeter相关配置修改

1、修改默认语言和jvm参数(根据电脑配置进行修改),编辑JMeter.bat如下:

2、编辑JMeter.peoperties使用第三方模块生成详细报告:

Ant安装

下载成功后,解压Ant压缩包到建立的文件夹路径(如:D:\Apache\Ant)。

Ant环境变量配置

1、创建ANT_HOME,填写Ant所属路径(如D:\Apache\Ant?)

2、修改CLASSPATH,添加;%ANT_HOME%\lib

3、修改Path,添加;%ANT_HOME%\bin

验证Ant

CMD命令行输入ant,如下图所示表示安装成功。

Ant配置及相关使用操作

1、将D:\Apache\JMeter\extras下面的ant-jmeter-1.1.1.jar包复制到D:\Apache\Ant\lib目录下。

2、将jmeter.results.shanhe.me.xsl和jmeter-results-detail-report_21.xsl分别放在D:\Apache\JMeter\extras目录下。

3、(发送邮件所需jar包)下载activation-1.1.1.jar、commons-email-1.5.jar和javax.mail.jar放到D:\ Apache\ant\lib。

4、在本地任意创建目录testcases(如:D:\testcases),并在其目录下创建report文件夹和build.xml文件,复制以下内容到build.xml文件中:

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-jmeter-test" default="all" basedir=".">

<tstamp>

<format property="time" pattern="yyyyMMddhhmm" />

</tstamp>

<!-- 需要改成自己本地的 Jmeter 目录 -->

<property name="jmeter.home" value="D:\Apache\jmeter" />

<property name="report.title" value="测试报告" />

<!-- jmeter生成jtl格式的结果报告的路径 -->

<property name="jmeter.result.jtl.dir" value="D:\testcases\report" />

<!-- jmeter生成html格式的结果报告的路径 -->

<property name="jmeter.result.html.dir" value="D:\testcases\report" />

<!-- zip文件路径 -->

<property name="zip.dir" value="D:\testcases" />

<!-- 生成的报告的前缀 -->

<property name="ReportName" value="testcases" />

<!-- 报告名称 -->

<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" />

<property name="zipname" value="${zip.dir}/${ReportName}${time}.zip" />

<!-- 邮件配置信息 -->

<property name="mail_host" value="smtp.163.com" />

<property name="mail_port" value="465" />

<property name="username" value="testcases@163.com" />

<property name="password" value="123456789" />

<property name="mail_from" value="dtestcases@163.com" />

<property name="mail_to" value="testcases@163.com,testcases2@163.com" />

<property name="mailsubject" value="测试报告" />

<!-- 输出生成的报告名称和存放路径 -->

<echo message="${jmeter.result.jtlName}" />

<echo message="${jmeter.result.htmlName}" />

<echo message="${jmeter.result.html.dir}" />

<echo message="${zip.dir}" />

<echo message="${zipname}" />

<!-- 加载jar包,解决时间显示问题 -->

<path id="xslt.classpath">

<fileset dir="${jmeter.home}/lib" includes="xalan*.jar" />

<fileset dir="${jmeter.home}/lib" includes="serializer*.jar" />

</path>

<target name="all">

<antcall target="test" />

<antcall target="report" />

<antcall target="summary-report" />

<antcall target="zip" />

<!-- 打包zip -->

<antcall target="sendEmail" />

<!-- 发送邮件 -->

</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 将需要执行的jmx写在includes中 -->

<testplans dir="D:\testcases" includes="*.jmx" />

<property name="jmeter.save.saveservice.output_format" value="xml" />

<!-- 这里就是jmeter.properties修改的部分 -->

</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.html.dir}/summary-report.html" style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">

<!-- 这里是第三方模板,修改jmeter.properties后生成的报告有详细的请求、响应、错误信息等 -->

<param name="Date Report" 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="summary-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>

</target>

<!-- zip配置 -->

<target name="zip">

<echo>

打包zip文件

</echo>

<zip destfile="${zipname}" duplicate="preserve">

<zipfileset dir="${jmeter.result.html.dir}" includes="**/*.*" prefix="测试报告" />

</zip>

<copy todir="${jmeter.result.html.dir}">

<fileset dir="${zip.dir}">

<include name="*.zip" />

</fileset>

</copy>

</target>

<!-- 配置发送邮件报告 -->

<target name="sendEmail">

<echo>

发送测试报告

</echo>

<loadfile property="email_content" srcFile="${jmeter.result.htmlName}" encoding="UTF-8" />

<mail mailhost="${mail_host}" ssl="true" user="${username}" password="${password}" mailport="${mail_port}" subject="${mailsubject}" messagemimetype="text/html" messagefileinputencoding="UTF-8" tolist="${mail_to}">

<from address="${mail_from}" />

<message charset="UTF-8">

${email_content}

</message>

<!-- 附件 -->

<attachments>

<fileset dir="${jmeter.result.html.dir}">

<include name="*.zip" />

</fileset>

</attachments>

</mail>

</target>

</project>

5、打开CMD命令行,切换到testcases目录下执行ant命令;或在testcases目录编写ant.bat文件执行,文件内容如下:

@echo

call ant -buildfile build.xml -l logfile

pause

注:执行日志存放在testcase目录下的logfile文件中。

附:报告及邮件

1、概略报告

2、详细报告

3、邮件及附件

请关注+私信回复:“测试”就可以免费拿到Python自动化测试学习路线及软件测试西学习资料包,快速让自己变强!

相关推荐

驱动网卡(怎么从新驱动网卡)
驱动网卡(怎么从新驱动网卡)

网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...

2026-01-30 00:37 liuian

win10更新助手装系统(微软win10更新助手)

1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...

windows11专业版密钥最新(windows11专业版激活码永久)

 Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...

手机删过的软件恢复(手机删除过的软件怎么恢复)
手机删过的软件恢复(手机删除过的软件怎么恢复)

操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...

2026-01-29 23:55 liuian

一键ghost手动备份系统步骤(一键ghost 备份)

  步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。  步骤...

怎么创建局域网(怎么创建局域网打游戏)

  1、购买路由器一台。进入路由器把dhcp功能打开  2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。  3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...

精灵驱动器官方下载(精灵驱动手机版下载)

是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...

一键还原系统步骤(一键还原系统有哪些)

1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。  2、在弹出的“准备安装”窗口中,可...

电脑加速器哪个好(电脑加速器哪款好)

我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...

任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)

是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...

u盘怎么恢复文件(u盘文件恢复的方法)

开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...

系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)

1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...

剪贴板权限设置方法(剪贴板访问权限)
剪贴板权限设置方法(剪贴板访问权限)

1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...

2026-01-29 21:37 liuian

平板系统重装大师(平板重装win系统)

如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...

联想官网售后服务网点(联想官网售后服务热线)

联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...