在开始这篇文章之前,我要先为大家解答2个疑惑:
第一点,我们为什么要在项目中进行接口自动化测试?好处是什么?
相对于UI层面,接口的测试的收益是巨大的,能在最短的时间发现重要的问题。接口在迭代研发过程中,和UI相比变化非常少,自动化维护成本低,能在多个版本中复用。
第二点,我们为什么要选择Jmeter+Ant+Jenkins这套框架?好处是什么?这套框架可以实现什么?
选择Jmeter +Ant+Jenkins这套框架的原因是:
①学习成本较低,普通测试上手快,适合小型测试团队
②脚本可维护性强
接下来言归正传,如何用Jmeter + Ant + Jenkins 实现持续集成?
1、Jmeter 安装
这里就不多说了,安装详情请参考我之前的文章。
2、Ant 安装
①下载地址:https://ant.apache.org/bindownload.cgi
②解压到指定目录下即可
③配置环境变量
ANT_HOME
D:\SProgram\Ant
Path
%ANT_HOME%\bin;
④添加jar包
将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本
⑤修改配置文件
jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,保存jmeter.save.saveservice.output_format=xml
⑥设置Jmeter工作空间
目录结构如下
结合下面build.xml文件,其实script 是存放将要执行的jmeter脚本文件的,即.jmx 文件的ResultLog 是存放测试报告的。
⑦修改build.xml 文件
将如下代码复制到新建build.xml文件保存即可
<?xml version="1.0" encoding="utf-8"?><project name="JmeterTest" default="all" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\SProgram\jmeter" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\JmeterSpace\ResultLog\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\JmeterSpace\ResultLog\html" />
<!-- 生成的报告的前缀 -->
<property name="ReportName" value="TestReport" />
<!-- 设置生成的.jtl文件名称,名称包含时间,防止覆盖 -->
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<!-- 设置生成的.html文件名称,不包含时间,只保留最新报告,方便邮件获取唯一的报告 -->
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
<!-- 接收测试报告的邮箱 -->
<!-- 该功能暂时没有成功应用 -->
<property name="mail_to" value="Your_mail" />
<!-- 电脑地址 -->
<property name="ComputerName" value="Yyj" />
<target name="all">
<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="D:\JmeterSpace\Script" includes="*.jmx" />
</jmeter>
</target>
<target name="report">
<xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_90Line.xsl" />
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<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">
<mail from="Your_mail@163.com" tolist="Your_mail@163.com" mailhost="smtp.163.com" mailport="25" user="Your_mail@163.com" password="Your_password" subject="${ReportName}${time}">
<message>接口测试报告</message>
<attachments>
<fileset dir="${JMeter.home}/extras/">
<include name="${ReportName}${time}.html"/> </fileset>
</attachments>
</mail>
</target> </project>
其实至此,打开命令行,cd 切换到build.xml文件路径下,执行ant命令,即可得到如下图
以及得到如下测试报告
但是此时的测试报告还不完善,需要如下修改
⑧修改Jmeter 测试报告模板
文件位置在 ${jmeter.home}/extras/目录下
查找 expand.png,以及collapse.png 修改路径如下。这里根据自己实际情况修改。问题在于,如果测试报告不是本地打开,会出现图标不显示。
注意:jmeter-results-detail-report_90Line.xsl 文件,代码行比较多,就不放在这里了,自己找资料下载后放到指定目录下,即可直接使用无需修改!
⑨解决报告显示NaN的问题
解决方案,要下载一个xalan.jar,serializer.jar包,将这两个jar包入ant的lib包中,输入ant查看运行结果,使用浏览器查看,OK,显示了!
3、Jenkins 安装
①下载地址:https://jenkins.io/download/
②安装
点击安装,选择安装路径,一路下一步即可。
安装成功后会自动打开网页,需要输入管理员密码:密码参见如下图文件
③新建任务
④配置参数
高级中设置工作空间,这里是测试报告的地址,设置后,发送测试报告时,不需要再写绝对路径了,直接写报告名称即可。
旧的构建保存了你在一次构建中的所有临时文件,如果构建没有保留的必要,就勾选丢弃旧的构建,同时设置保持构建天使和保持构建的最大个数两个参数。
注意:三个设置必须同时设置,否则无效
⑤设置定时运行间隔
这里,设置间隔时间为15分钟运行一次
日程表介绍
【 * * * * * 】 这五个 “*” 分别的定义为:分 时 天 月 星期
Minutes within the hour (0–59)
HOUR Thehour of the day (0–23)
DOM Theday of the month (1–31)
MONTH Themonth (1–12)
DOW Theday of the week (0–7) where 0 and 7 are Sunday.
*表示全部
即 下图表示 每天23点某时构建一次。
如果天写了值表示某月的某天构建一次,同理年和星期也是一样。
⑥设置构建
添加 invoke ant,完成后点击保存
构建设置build file, build 主要是为了生成测试报告。
⑦设置邮件发送
这里使用一个sendmail.jar文件
使用WinRAR打开该文件,修改如下文件
根据实际需要 修改该配置文件
修改完自己的配置文件后,可以将自己的配置文件放到jar包中,通过RAR打开jar然后复制粘贴自己的配置文件到 jar中,然后将sendmail.jar存放到指定路径。
设置邮件发送命令,如图,sendmail.jar放到了lib下。其实放哪里都行,这里用的时候全路径引用即可!
命令:
java -jar D:\SProgram\tools\sendmail.jar -s "XX测试服接口测试报告,请查收。" -t yangyaojun@tenez.cn -b "test接口测试报告,请查看附件。" -a "TestReport.html"
-a "测试报告路径+测试报告名称"
对于要设置多个收件人时,收件人邮箱之间用英文逗号隔开即可
最后保存配置即可。构建任务,即可自动执行测试任务,并发送邮件到指定邮箱!
总结,这套框架可以实现:
1、断言验证(Jmeter可以链接数据库,API返回值可与数据库中的值进行对比断言操作)
2、Jenkins定时任务调度
3、测试数据维护性强
4、每轮执行的测试报告在Jenkins可视化展示
5、预警机制,当Jenkins构建失败时可时时邮件提醒项目成员
接口自动化测试就分享到这里了,如果文章中有些文件找不到下载地址,可以直接给我留言哦~~
总结
如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面
自动化测试相关教程推荐:
2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili
2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili
测试开发相关教程推荐
2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili
postman/jmeter/fiddler测试工具类教程推荐
讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili
2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili
2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili
总结:
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步
在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。
我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,
测试开发视频教程、学习笔记领取传送门!!