当前位置: 首页 > news >正文

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.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/访问jenkins,填充dos中的密码命令行或者到提示的目录中找到密码粘贴到页面密码输入框;安装推荐的插件,设置用户名密码,即可完成安装

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

 

 安装推荐的插件:

设置用户名密码:

 

 安装完毕:

 

 

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 

 

 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的控制台,看下失败的错误原因

转载于:https://www.cnblogs.com/weizhideweilai/p/9215905.html

相关文章:

  • malloc(0)分配多少内存?(译文)
  • MATLAB生成正弦波
  • SPOJ VLATTICE
  • Anaconda快速入门安装学习笔记
  • Java多线程基础
  • 剑指offer 面试46题
  • Django 在 view 中使用 Paginator分页插件
  • 前后端分离,get请求导出
  • SQL server数据库压缩空间
  • audio之点击图标切换音频播放状态以及替换当前图标
  • python_面向对象,类名称空间,对象名称空间,组合
  • 用position: fixed;做个遮罩,怎么能让后面的View禁止滑动
  • 利用h5来进行定位当前位置
  • 01-html和head介绍
  • Idea像eclipse一样把jar给导入到lib下面
  • 分享的文章《人生如棋》
  • CentOS 7 防火墙操作
  • JavaScript类型识别
  • Leetcode 27 Remove Element
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • python_bomb----数据类型总结
  • quasar-framework cnodejs社区
  • Transformer-XL: Unleashing the Potential of Attention Models
  • yii2中session跨域名的问题
  • 安装python包到指定虚拟环境
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 面试遇到的一些题
  • 排序算法之--选择排序
  • 思维导图—你不知道的JavaScript中卷
  • 责任链模式的两种实现
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #pragma data_seg 共享数据区(转)
  • (04)odoo视图操作
  • (6)设计一个TimeMap
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (pojstep1.3.1)1017(构造法模拟)
  • (第一天)包装对象、作用域、创建对象
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)Eureka服务搭建,服务注册,服务发现
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (算法二)滑动窗口
  • (转载)利用webkit抓取动态网页和链接
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net 怎么循环得到数组里的值_关于js数组
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .Net环境下的缓存技术介绍
  • @angular/cli项目构建--Dynamic.Form
  • @NestedConfigurationProperty 注解用法