一直想在持续集成方向学习并研究一番,近期正准备结合jmeter+ant+jenkins做自动化接口测试,在学习的同时,正好实践一番,毕竟实践才是真理。
在搭建jmeter+ant+jenkins环境有些前提条件,那就是要先配置好java环境、安装好jenkins以及配置好jmeter,这样才能省去很多的事情,如果在搭建这套环境之前,还没有配置好刚提及的这三套工具环境,那还得先配置一番,具体的配置方法就不细说,可参见以前的博客:
1.jmeter安装:https://www.cnblogs.com/hong-fithing/p/7640014.html,该博文中包含java环境的配置方式
2.jenkins安装:https://www.cnblogs.com/hong-fithing/p/10290315.html
将前置工作做好后,那就进入到今天的话题,jmeter+ant+jenkins的环境搭建
ant下载及环境变量配置
1.ant下载
官网页面如下,找到download位置,点击下载ant安装文件
2.配置ant环境变量
环境变量的配置方式就不用多说了,如下所示:
3.检查配置成功与否
win+r打开cmd控制台,输入ant或者ant -version回车,出现如下界面,即表示配置成功
ant配置
1.将\apache-jmeter-3.3\extras下面的ant-jmeter-1.1.1的jar包到ant的lib目录
如下所示:
2.配置xml文件
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddHHmmss" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="C:\apache-jmeter-3.3" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="C:\apache-jmeter-3.3\demo\report\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="C:\apache-jmeter-3.3\demo\report\html" />
<!-- 生成的报告的前缀-->
<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="C:\apache-jmeter-3.3\demo" includes="*.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-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>
将对应需要修改的配置,改成自己环境路径以及名称即可
3.修改jmeter下jmeter.properties配置
将jmeter.save.saveservice.output_format=csv修改为:jmeter.save.saveservice.output_format=xml
文件路径:C:\apache-jmeter-3.3\bin\jmeter.properties
dos窗口运行脚本
结合配置文件中的配置,将脚本放到对应的文件夹中,在dos窗口进入到对应目录下,输入ant回车,即可运行脚本
测试报告
提示successful,表示运行成功,来看对应的测试报告,如下:
配置日期格式
配置日期格式混淆了,故做个记录
/*
* 日期格式化类(必须掌握)
* API:
* G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
脚本在dos窗口运行成功,说明jmeter+ant是已经实现,现在就要结合jenkins来实现自动构建。在安装好了jenkins的环境中,输入localhost:8080即可进入jenkins页面,地址和端口看各自的配置
jenkins中任务配置
1.jenkins中创建任务
2.任务配置
配置构建
3.配置测试报告
需要先安装插件HTML Publisher,插件安装成功后,才有该选项,具体安装就略过了
配置好,保存即可
构建任务
1.立即构建
2.查看报告
就是刚配置的html报告
报告模板样式可以更改,下载样式后,在build.xml配置文件中修改即可
问题总结
1.构建时,提示ant.bat不是内部或外部命令,也不是可运行的程序或批处理文件。
解决办法:检查配置,发现是配置ant时,名称与系统配置的ant名称不一致,导致构建失败。如下两图所示,名称需保持一致。
环境配置下来,其中也学到了很多,之前看文章知识,觉得配置是个很麻烦的事情,自己实际操作一番,倒觉得也不是那么难,只要自己想做,就一定可以。