前言:
首先简单说下jmeter+jenkins+ant接口自动化持续集成框架的工作原理,以便于更好的理解后面的各项配置:
首先,jenkins通过SVN获取jmeter最新的脚本;
然后,jenkins通过ANT进行构建,构建时ANT首先去找构建的配置文件,通过配置文件找到需要执行jmeter脚本。执行完jmeter脚本后会生成jtl报告文件;
接着,ANT会根据构建的配置文件中指定的测试报告模版,把jtl文件转换成HTML测试报告;
最后,通过jenkins在构建完成后发送邮件,邮件中包含每次转换后的HTML测试报告。

1、配置JDK和ANT
首先需要到jenkins的系统管理→ Global Tool Configuration,配置JDK和ANT的工作目录。

坑1:不要以为安装ant插件,就可以直接在项目配置中直接使用ANT构建,一定要先在系统设置中配置ANT的工作目录(linux下需对ant/bin目录下的ant.sh授执行权限),否则构建时会提示找不到ant或者是ant命令不能执行;
坑2:需要把jmeter/extras目录下的ant-jmeter-1.1.1.jar文件先拷贝到ant/lib目录下,否则和jmeter做构建时会报各种错。
坑3: 修改Jmeter的bin目录下jmeter.properties文件的配置: jmeter.save.saveservice.output_format=xml,否则后面也是各种报错。

2、各种报告插件(Publish HTML reports和Publish Performance test result report)
这两个并不是整个持续集成框架必须要的插件。所以可以不用安装和配置。但下面还是说说这两个插件:
Publish HTML reports,是把生成HTML在jenkins构建的项目进行一个展示而已,因为在最后的自动化报告邮件中已包含这个HTML报告内容,所以在jenkins里面配置插件做展示多此一举。
Publish Performance test result report,是通过jmeter执行的结果jtl文件在jenkins构建的项目处生成3个图例:

这3个图例是用来做记录接口的性能数据,所以,如果是做接口的持续集成,这3个图例的价值不大,但如果是接口性能持续集成,就是必须要的。

3、SVN获取jmeter脚本
jmeter脚本是通过SVN管理,每次持续集成时,需要获取SVN上最新的脚本文件,故需要配置源码管理:

这里需要注意的是SVN获取到的脚本会存储在jenkins的workspace下的Job处,例如我们的地址为/data/jenkins/workspace/Jmeter接口自动化测试_Dev,这个地址很重要,因为后面的ANT构建时,其建构文件build.xml中会需要jmeter脚本地址。

4、ANT构建,把执行的结果文件jtl转换称html报告
在进行ANT构建前,先添加一个 Execute shell构建,其构建的内容是直接删除jenkins服务器上的*.jtl和*.html文件:

删除的目的是,ant构建jmeter后会生成一个结果文件*.jtl,这个jtl文件的数据是追加的,也就是每次构建的结果都会追加到文件里,所以导致测试结果数据不准确,删除该文件重新生成后,结果文件就只包含本次构建的测试结果。
添加完上面的shell构建后,再新建一个ant构建: Ant Version选择的1.9.7,这个1.9.7就是最开始在jenkins系统管理中自己配置的,即为本项目的构建指定一个ant构建(因为存在一个jenkins服务器上有多个版本的ant,每个项目的构建可能使用不同的ant)。
Properties是告诉ANT,构建哪个jmeter脚本,在build.xml有一个标签<property name="test" value="公共接口"/>,如果配置文件里有配置,Properties可以不填写,如果填写就会执行Properties中的配置,后面执行脚本时更灵活,不需要每次更改配置文件。
Build File中,其实就要写明脚本存放的目录(SVN获取),Jmeter的工作目录(ant调用jmeter构建),执行完Jmeter脚本的jtl报告存放目录,及把jtl转换为html报告模版的依赖文件。 坑1:我最原始的xml及和后面在网上下的xml文件,都缺少<property name="jmeter.save.saveservice.output_format" value="xml"/>,导致不能生产jtl文件    。这个标签放在<jmeter>标签下即可。
坑2:在网上拷贝build.xml时需要主要,文件的顶部是否会多一个空格,不然会报“前言中不允许有内容”。
坑3:构建时 提示jtl 文件不存在(***.Jtl does not exist),最开始尝试很多方法不行,最后在jmeter/extras目录下新建一个空目录,把build.xml文件丢进去,就好了。

5、构建完自动发送邮件
添加一个构建完后步骤: Editable Email Notification。这个步骤最重要的就是邮件格式,在Default Content处填写如下HTML:
(本邮件是程序自动下发的,请勿回复!)
项目名称:公共接口_接口自动化测试结果
构建状态:$BUILD_STATUS
构建日志地址:http://jenkins.yryz.com/job/Jmeter接口自动化测试_Dev/ ;
${FILE,path="/data/apache-jmeter-2.13/extras/report/公共接口.html"}
坑1:收到的邮件html报告部分是乱码,需要把build.xml文件中指定的测试报告模版的编码格式改为 GB2312即可。

至此,整个接口自动化持续集成框架已完成。

续:
测试框架调试过程中需要不停的更改jenkins服务器上的文件(部署在linux上),总是找运维童鞋他们会很痛苦,所以自己在jenkins上可以构建另外的项目,来达到查看、修改、新增文件的目的,这样的话频繁修改jenkins服务器上的文件就可以自己动手了。这里举个例子,如果需要新增或者修改文件,在构建的项目中,只新增一个 Execute shell构建,构建内容如下:

第一行是清空文件内容,第二行是把EOF的内容填写到del_file.sh中去,EOF后面则是对del_file.sh脚本授权及查看。
Execute shell里面的内容就如同操作服务器一样,只是每次需要自己构建,及查看构建日志。
注:在execute shell里面的变量名称需要转义,如$file。

Jmeter+Jenkins+Ant 接口自动化持续集成框架相关推荐

  1. Jenkins+Jmeter+Gitlab+Ant接口自动化持续集成构建(环境搭建配置)

    第一步:环境搭建: 准备工作: Java及jdk配置.jmeter安装配置.Jenkins搭建完成.安装Ant 一.JDK配置 JDK配置请百度自行配置 二.Jmeter安装配置 1.把 apache ...

  2. jmeter+jenkins+ant接口自动化

  3. 接口自动化持续集成实战

    本文为实战练习,具体内容来自<接口自动化持续集成> 接口自动化测试持续集成主要包括以下内容. ① 流程方面.在回归阶段加强接口异常场景的覆盖,并逐步向系统测试.冒烟测试阶段延伸,最终达到全 ...

  4. 【简书 DC谢老师】JMeter + jenkins + SVN 接口自动化之简单 demo​​​​​​​

    JMeter工具基础知识篇-工程目录结构及命名规范 如果没有目录结构及命名规范,你压根没法实现自动化的持续集成工作,你将被局限在工具级别的自动化上面,离测试框架或测试平台平台之路遥遥无期. 如果你想成 ...

  5. Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)

    一.安装说明 系统环境:CentOS release 6.4 JDK版本:jdk1.8.0_181 Jmeter版本:apache-jmeter-3.0 Ant版本:apache-ant-1.9.13 ...

  6. Jmeter+Jenkins+Ant接口自动化测试平台搭建(Mac)(一)

    1.安装jmeter,这个安装在之前的文章有介绍,这里不多说 2.安装home-brew (1)终端命令行输入: /usr/bin/ruby -e "$(curl -fsSL https:/ ...

  7. 转:Jenkins+Jmeter+ant接口自动化框架for Linux学习

    Jenkins+Jmeter+ant接口自动化框架for Linux学习 2018年06月08日 17:55:31 杀生丸的玲 阅读数:1031 版权声明: https://blog.csdn.net ...

  8. 自动化持续集成Jenkins

    自动化持续集成Jenkins 使用Jenkins配置自动化构建 http://blog.csdn.net/littlechang/article/details/8642149 Jenkins入门总结 ...

  9. CI/CD——构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台

    构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台 CI/CD是什么? 持续集成(CI)/持续交付(CD)的优势 自动化部署流程图 Git Github Gi ...

最新文章

  1. 链内容百度新算法怎样判断高质量外链和原创内容
  2. java list 转 map_Java8 快速实现List转map 、分组、过滤等操作
  3. iphone视图放大_如何将iPhone用作放大镜
  4. 休眠后gpio状态_1.Linux电源管理-休眠与唤醒
  5. winForm入门学习
  6. 关于Spring事务管理的基础实例
  7. bzoj4171: Rhl的游戏
  8. android游戏勿扰,App+1 | Android 勿扰自动化,看剧、游戏更「沉浸」:NoPopping
  9. android基础复习笔记——3.登录授权、TCP/IP、HTTPS原理
  10. 历年软件设计师下午考试试题汇总统计
  11. 本地化差分隐私保护的实现机制(一)
  12. 【研究】人大赵鑫老师报告:如何以初学者角度写好一篇国际学术论文?
  13. DIY装机之入围产品
  14. 华为设备如何查看风扇的序列号?
  15. android 程序白屏,Android冷启动白屏问题
  16. Java模拟项目开发(快递柜)
  17. 解决面具magisk刷入模块卡开机问题
  18. 游戏版权律师/软件律师的专业作用
  19. 15个高清壁纸网站推荐
  20. layui静态表格设置滚动条_解决layui数据表格table的横向滚动条显示问题

热门文章

  1. 三菱GX works2的应用安装
  2. c语言小程序作业,c语言小程序(c语言简单小程序代码)
  3. 企业如何有效防止内部文件泄密风险...
  4. 怎样做小程序最省钱,小程序开发平台大盘点
  5. 【历史上的今天】10 月 20 日:微软黑屏事件;Ubuntu Linux 操作系统发布;Apple Pay 正式上线
  6. 目前什么ip软件比较好用,国内ip最多呢
  7. Linux安装-CentOS6.x
  8. 如何在MATLAB中调用(运行)“用Python写成的函数或脚本”
  9. matlab中(),[],与{}的使用区别
  10. 【20180904】【查漏补缺】量纲分析法—Pi定理(Buckingham定理)