jmeter3.0+ant1.10+jenkins实现接口自动化并发送邮件
有很多关于接口自动化的文章,此篇仅用于记录自己的学习用。使用jmeter3.0+ant1.10+jenkins2.实现接口自动化并发送邮件,本篇是用的编写build文件来实现发送邮件,也可以用jenkins自带的邮件工具
目录
1、环境准备
2、build.xml准备
3、jenkins配置
1、环境准备
a.装好jdk1.8
确认环境配好了:
b.装好ant1.10.1
ant和jmeter一样配置好环境变量就可以使用了,需要配置如下:
jmeter环境变量(为了可以命令行运行脚本)
JMETER_HOME:E:\apache-jmeter-3.0
CLASSPATH:%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar
PATH:%JMETER_HOME%/bin
ANT_HOME=E:\apache-ant-1.10.1
CLASSPATH=E:\apache-ant-1.10.1\lib
PATH=E:\apache-ant-1.10.1\bin
确认配置正确:
c.装好jenkins(在官网下载最新版即可)
准备好jenkins.war包,我们可以通过启动应用服务器程序中间件(tomcat)的方式或者java程序来启动jenkins服务,这里我用java程序启动服务安装:
在jenkins.war目录下执行java -jar jenkins.war启动安装,然后通过http://localhost:8080/,即可完成安装
可以找到密码的位置提示:
安装推荐的插件:
设置用户名密码:
安装完毕:
d、安装jmeter
下载jmeter:链接:https://pan.baidu.com/s/1APusiQ-guvbRsGDJft54hA 提取码:17ft
变量名:JMETER_HOME
变量值:E:\Program Files\apache-jmeter-3.3
变量名:CLASSPATH
变量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
如果要从命令输入jmeter输入jmeter则需要配置bin的路径:
变量名:Path
变量值:%JMETER_HOME%\bin
e.ant的lib文件更新
1、将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中
2、往ant的lib目录放javax.mail.jar(链接:https://pan.baidu.com/s/1-Rb0rp6me1ERLl6KIhtDvQ 提取码:ep6y
)或者mail-1.4.7.jar+activation-1.1.1.jar
2、build.xml准备
a.修改Jmeter3.0的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
b.配置好build.xml
在jmeter目录下,建立demo文件夹,放入脚本文件(用jmeter编译通过的)和build文件(新建一个xml文件,补充内容)
完整的build文件内容如下,可根据实际情况进行修改:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project name="ant-jmeter-test" default="run" basedir="."> 3 <tstamp> 4 <format property="time" pattern="yyyyMMddhhmm" /> 5 </tstamp> 6 7 <property name="jmeter.home" value="E:\apache-jmeter-3.0" /> <!-- 配置为本机实际路径 --> 8 9 <property name="jmeter.result.jtl.dir" value="E:\apache-jmeter-3.0\report\jtl" /> <!-- 配置为本机实际路径 --> 10 11 <property name="jmeter.result.html.dir" value="E:\apache-jmeter-3.0\report\html" /> <!-- 配置为本机实际路径 --> 12 13 <property name="ReportName" value="TestReport" /> 14 <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> 15 <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" /> 16 <!-- 接收测试报告的邮箱 --> 17 <property name="mail_to" value="123@qq.com" /> 18 <target name="run"> 19 <antcall target="test" /> 20 <antcall target="report" /> 21 <antcall target="sendmail" /> 22 </target> 23 24 <target name="test"> 25 <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> 26 <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> 27 28 <testplans dir="E:\apache-jmeter-3.0\demo" includes="*.jmx" /> 29 30 <property name="jmeter.save.saveservice.output_format" value="xml"/> 31 32 </jmeter> 33 </target> 34 35 <!-- 解决不显示时间 下方--> 36 <path id="xslt.classpath"> 37 <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> 38 <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> 39 </path> 40 41 <target name="report"> 42 <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp> 43 <xslt classpathref="xslt.classpath" 44 force="true" 45 in="${jmeter.result.jtlName}" 46 out="${jmeter.result.htmlName}" 47 style="${jmeter.home}/extras/jmeter-results-detail-report.xsl"> 48 <!-- 解决不显示耗时 --> 49 <param name="dateReport" expression="${report.datestamp}"/> 50 51 </xslt> 52 <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 53 54 <copy todir="${jmeter.result.html.dir}"> 55 <fileset dir="${jmeter.home}/extras"> 56 <include name="collapse.png" /> 57 <include name="expand.png" /> 58 </fileset> 59 </copy> 60 </target> 61 <!-- 发送邮件 --> 62 63 <target name="sendmail" > 64 <mail mailhost="smtp.163.com" 65 mailport="465" 66 ssl="true" 67 user="123@163.com" 68 password="123456" 69 subject="接口测试报告" 70 from="4562@163.com" 71 > 72 <to address="123@qq.com"/> 73 <message>详细报告请查看附件</message> 74 <attachments> 75 <fileset dir="${jmeter.result.html.dir}"> 76 <include name="${ReportName}${time}.html"/> 77 </fileset> 78 </attachments> 79 </mail> 80 </target> 81 </project>
3、jenkins配置
a.创建一个自由风格的job:
b.做好构建配置
第一步:在jenkins配置好系统安装的jdk和ant路径:
第二步:准备好要执行的脚本文件
第三步:做好构建配置
c.点击立即构建即可
构建完毕,就可以收到一封带有接口测试报告的邮件了
d.配置定时任务执行
这个网站可以很清晰的看到如何配置,http://www.testclass.net/jenkins/setting-time/
如:希望每天2小时执行一次,则配置成 H H(0-23)/2 * * *(分钟 小时 天 月 星期),保存后就会每隔2小时运行一次
另:调试脚本时,可以不用jenkins来操作,直接进入jmeter的脚本的目录,执行ant run,然后查看收到的邮件结果
注意:
1、ant目录中lib要补充全,ant-jmeter-1.1.1.jar、javax.mail.jar这2个一定放进去
2、jmeter的jmeter.properties文件中要变更xml的也不要掉了
3、build文件中的信息,以实际路径为准
4、发现的jenkins的版本不是最新的,想要卸载,没找到办法,最后通过在本机搜索jenkins,然后删除了与jenkins有关的文件夹,重新装了一遍
5、build不成功时,可以看下jenkins的控制台,看下失败的错误原因