jmeter+ant+jenkins 搭建接口自动化测试
一、JMeter
我用的jmeter4.0 jmeter要运行,必须本地有java环境,所以需要配置jdk什么的,自行配置
二、ant
安装ant
第一步:下载ant http://ant.apache.org/
第二步:配置ant
以下是我电脑ant配置
ANT_HOME C:/ apache-ant-1.9.7
path C:/ apache-ant-1.9.7/bin
classpath C:/apache-ant-1.9.7/lib
cmd打开 输入ant执行
说明ant安装成功!因为ant默认运行build.xml文件,build.xml 需要我们自己建立,等哈后面 我们再说这个
为了确定真的安装成功了 我们执行ant -version
ok了,我们继续往后面扯
三、将\apache-jmeter-3.2\extras下面的ant-jmeter-1.1.1的jar包到ant的lib目录,如图所示:
四、建立build.xml
从上图可以知道 我们创建了一个文件夹demo,然后把build.xml 丢在它下面了
<?xml version="1.0" encoding="utf-8"?> <project name="JmeterTest" default="all" basedir="."> <tstamp> <format property="time" pattern="MMddhhmm" /> </tstamp> <!-- 需要改成自己本地的 Jmeter 目录--> <property name="jmeter.home" value="D:\apache-jmeter-4.0" /> <!-- 需要修改第1个:jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-4.0\extras\jtl" /> <!-- 需要修改第2个:jmeter生成html格式的结果报告的路径--> <property name="jmeter.result.html.dir" value="D:\apache-jmeter-4.0\extras\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" /> <!-- 接收测试报告的邮箱 --> <property name="mail_to" value="发件人邮箱" /> <!-- 电脑地址 --> <property name="ComputerName" value="vincentwong" /> <target name="all"> <antcall target="test" /> <antcall target="report" /> <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}"> <!-- 需要修改第3个:声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 --> <testplans dir="D:\apache-jmeter-4.0\extras" includes="*.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <target name="report"> <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/> </tstamp> <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> <param name="dateReport" expression="${report.datestamp}"> </param> </xslt> <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> <!-- 发送邮件 --> <!-- 需要修改第4个:收件人名字和收件内容 --> <target name="sendEmail"> <mail mailhost="smtp.163.com" mailport="25" user="发件人邮箱" password="密码" ssl="false" subject="xxxx后台接口功能自动化回归测试报告${time}" messagemimetype="text/html"> <from address="发件人邮箱"/> <to address="收件人邮箱"/> <fileset dir="${jmeter.result.html.dir}"> <include name="${ReportName}${time}.html"/> <include name="collapse.png" /> <include name="expand.png" /> </fileset> <message charset="gb2312"> Dear All:<br /> 这是一封xxxx后台接口功能自动化回归报告的邮件。<br /> 测试报告附在附件,请将图片和报告文件都下载在同文件夹,再使用浏览器打开查看。<br /> 谢谢。<br /> </message> </mail> </target> </project>
上图注释已经很清晰了,只需要配置下jmeter路径以及报告样式就可以使用我这个build.xml文件了
五、创建一个jmx文件 然后运行下
进入到该目录,并cmd执行ant
上图的BUILD SUCCESSFUL 证明已经成功了,而且报告在report/html下面
现在我们打开报告看看
报告是不是很好看,其实就是\apache-jmeter-3.2\extras这个目录下jmeter-results-report-loadtest.xsl这个样式生成的报告
这里如果想跑完脚本自动发送报告到邮箱,还需要把对应的jar包放到ant 的lib 目录里,这里就不细说了,百度可以查到。
六、集成jenkins
废话不多说 ,启动jenkins
1、java -jar jenkins.war (自己去下载jenkins.war)
2、下载jenkins.tar 并解压 将解压之后的文件丢在tomcat下面的webapps下面
双击C:\apache-tomcat-7.0.72\bin下面的startup.bat 启动
这就证明jenkins已经启动了
然后随意打开一个浏览器 输入:http://localhost:8080/jenkins 默认端口号为8080
我自己改成8888的,你们随意
创建一个项目。
选择第一个自由风格,然后点击OK按钮
然后配置ant,增加build路径
点击保存之后,我们继续配置测试报告
我们需要下载一个插件Public HTML reports
系统管理----》管理插件----》可选插件 输入Public HTML reports 进行查询并进行安装
接下来继续配置报告
点击增加构建后操作步骤 并点击Public HTML reports
并点击保存按钮 好了 现在我们报告也配置好了
我们现在jenkins构建下吧
点击之后 出现
证明jenkins在构建了
好了到了这一步 已经构建成功了,Success !
我们在jenkins下面看下报告吧
报告已经ok了
其实文章篇幅很长,配置很简单
最后可以用jenkins定时执行我们的jmeter脚本,也就是批量执行jmeter脚本了