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一样配置好环境变量就可以使用了,需要配置如下:

ANT_HOME=E:apache-ant-1.10.1

CLASSPATH=E:apache-ant-1.10.1lib

PATH=E:apache-ant-1.10.1in

确认配置正确:

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

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

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

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

 安装推荐的插件:

设置用户名密码:

 安装完毕:

 d、安装jmeter

下载jmeter:链接:https://pan.baidu.com/s/1APusiQ-guvbRsGDJft54hA 提取码:17ft

变量名:JMETER_HOME
变量值:E:Program Filesapache-jmeter-3.3

变量名:CLASSPATH
变量值:%JMETER_HOME%libextApacheJMeter_core.jar;%JMETER_HOME%libjorphan.jar;%JMETER_HOME%lib/logkit-2.0.jar;

 如果要从命令输入jmeter输入jmeter则需要配置bin的路径:

变量名:Path
变量值:%JMETER_HOME%in

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
eportjtl" /> <!-- 配置为本机实际路径 -->
10    
11     <property name="jmeter.result.html.dir" value="E:apache-jmeter-3.0
eporthtml" /> <!-- 配置为本机实际路径 -->
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.0demo" 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的控制台,看下失败的错误原因

原文地址:https://www.cnblogs.com/weizhideweilai/p/9215905.html