有很多关于接口自动化的文章,此篇仅用于记录自己的学习用。使用jmeter3.0+ant1.10+jenkins2.实现接口自动化并发送邮件,本篇是用的编写build文件来实现发送邮件,也可以用jenkins自带的邮件工具

 

目录

1、环境准备

2、build.xml准备

3、jenkins配置

 

1、环境准备

a.装好jdk1.8

确认环境配好了:

jenkins自由项目邮件发送附件 jenkins自动发送邮件_java

 

b.装好ant1.10.1

ant和jmeter一样配置好环境变量就可以使用了,需要配置如下:

ANT_HOME=E:\apache-ant-1.10.1
CLASSPATH=E:\apache-ant-1.10.1\lib
PATH=E:\apache-ant-1.10.1\bin

确认配置正确:

jenkins自由项目邮件发送附件 jenkins自动发送邮件_jenkins自由项目邮件发送附件_02

 

c.装好jenkins(在官网下载最新版即可)

准备好jenkins.war包,我们可以通过启动应用服务器程序中间件(tomcat)的方式或者java程序来启动jenkins服务,这里我用java程序启动服务安装:

在jenkins.war目录下执行java -jar jenkins.war启动安装,然后通过http://localhost:8080/访问jenkins,填充dos中的密码命令行或者到提示的目录中找到密码粘贴到页面密码输入框;安装推荐的插件,设置用户名密码,即可完成安装

可以找到密码的位置提示:

jenkins自由项目邮件发送附件 jenkins自动发送邮件_html_03

jenkins自由项目邮件发送附件 jenkins自动发送邮件_jenkins自由项目邮件发送附件_04

 

 安装推荐的插件:

jenkins自由项目邮件发送附件 jenkins自动发送邮件_java_05

设置用户名密码:

jenkins自由项目邮件发送附件 jenkins自动发送邮件_java_06

 

 安装完毕:

jenkins自由项目邮件发送附件 jenkins自动发送邮件_java_07

 

 

d.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 

 

jenkins自由项目邮件发送附件 jenkins自动发送邮件_jenkins自由项目邮件发送附件_08

 2、build.xml准备

a.修改Jmeter3.0的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml

jenkins自由项目邮件发送附件 jenkins自动发送邮件_运维_09

 

b.配置好build.xml

在jmeter目录下,建立demo文件夹,放入脚本文件(用jmeter编译通过的)和build文件(新建一个xml文件,补充内容)

jenkins自由项目邮件发送附件 jenkins自动发送邮件_操作系统_10

完整的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:

jenkins自由项目邮件发送附件 jenkins自动发送邮件_html_11

 

b.做好构建配置

第一步:在jenkins配置好系统安装的jdk和ant路径:

jenkins自由项目邮件发送附件 jenkins自动发送邮件_jenkins自由项目邮件发送附件_12

jenkins自由项目邮件发送附件 jenkins自动发送邮件_运维_13

 第二步:准备好要执行的脚本文件

jenkins自由项目邮件发送附件 jenkins自动发送邮件_操作系统_10

 

第三步:做好构建配置

jenkins自由项目邮件发送附件 jenkins自动发送邮件_运维_15

 

c.点击立即构建即可

jenkins自由项目邮件发送附件 jenkins自动发送邮件_html_16

 

构建完毕,就可以收到一封带有接口测试报告的邮件了

jenkins自由项目邮件发送附件 jenkins自动发送邮件_操作系统_17

 d.配置定时任务执行

这个网站可以很清晰的看到如何配置,http://www.testclass.net/jenkins/setting-time/

如:希望每天2小时执行一次,则配置成 H H(0-23)/2 * * *(分钟 小时 天 月 星期),保存后就会每隔2小时运行一次

jenkins自由项目邮件发送附件 jenkins自动发送邮件_操作系统_18

 

 另:调试脚本时,可以不用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的控制台,看下失败的错误原因