Jenkins + Jmeter 搭建简易CI (自动执行接口测试+发布web报告+发送邮件)

  Jenkins可以很方便的实现构建项目之后自动执行其他任务。可以把Jmeter脚本作为任务放在项目之后自动启动,然后通过IIS发布html报告,并且发出邮件至相关人员。
  


目录

  • Jenkins Jmeter 搭建简易CI 自动执行接口测试发布web报告发送邮件

    • 目录
    • 一 Jenkins新建任务
    • 二 IIS部署网站
    • 三 Jenkins设置邮件通知
    • 四 Jenkins设置发件人邮箱
    • 五 调试
    • jmeter脚本设计思路
    • 尾声

一、 Jenkins新建任务

  • 在Jenkins上新建一个接口测试的任务

1. 打开Jenkins,点击新建。(此处1.0_Demo就是我的测试对象项目)

2. 输入接口测试的任务名,选择自由风格,点击OK

3. 在构建触发器,勾选”Build after other projects are built”,输入你的前置任务

4. 在构建区,添加”Execute Windows batch command”
填入启动jmeter的批处理语句,注意将配置信息修改为你的内容。

:: 配置信息
set FILE_PATH=C:\APITest\Demo
set JMX_NAME=Demo:: 等待时间
ping 127.0.0.1 -n 60 >nul:: 清除上次测试报告
IF EXIST "%FILE_PATH%\report" rd /s /q %FILE_PATH%\report:: 生成当前日期
set dateTmp=%date:~0,4%%date:~5,2%%date:~8,2%
if "%time:~0,2%" lss "10" (set hour=0%time:~1,1%) else (set hour=%time:~0,2%)
set timeTmp=%hour%%time:~3,2%%time:~6,2%
set d=%dateTmp%%timeTmp%
echo current date: %d%:: 执行测试
call jmeter.bat -n -t %FILE_PATH%\api\%JMX_NAME%.jmx -l %FILE_PATH%\%JMX_NAME%.jtl -e -o %FILE_PATH%\report:: 归档
mkdir "%FILE_PATH%\history\%d%"
move %FILE_PATH%\%JMX_NAME%.jtl %FILE_PATH%\report >nul
xcopy /s /i /y %FILE_PATH%\report %FILE_PATH%\history\%d% >nul

5. 将你编写的jmeter脚本,即jmx文件和数据文件,放到上一步配置信息中的路径的\api路径下。(\api文件夹是需要你自己手动创建的)
* 这里演示的不够细致,其实应该是有txt或csv文件的,用于驱动测试

6. 这个时候在Jenkins上构建应该就通了,如果在%FILE_PATH%\report下有报告就说明成功了。

二、 IIS部署网站

  • 在Jenkins所在的电脑上部署一个IIS网站

1. 打开IIS管理器(如果没有请百度一下,系统默认未开启)

2. 展开根节点,对”网站”右键,选择”添加网站”
网站名为之前cmd中的%JMX_NAME%,物理路径为之前cmd中的%FILE_PATH%\report。端口号随意,不重复即可。

3. 点击浏览,如果能看到之前构建出来的jmeter测试报告,就说明配置成功了。

4. 你应该能看到这个网页

5. cmd上ipconfig查看一下你的内网ip地址

6. 回到Jenkins,在构建区再添加一个cmd模块。
输入以下代码,实现每次测试报告更新后,自动重启IIS应用池。

:: 重启Web应用池
c:\windows\system32\inetsrv\AppCmd.exe stop apppool /apppool.name:Demo
c:\windows\system32\inetsrv\AppCmd.exe start apppool /apppool.name:Demo

三、 Jenkins设置邮件通知

  • 在Jenkins上创建的接口测试任务中,配置邮件通知插件

1. 在构建后操作区,添加”Editable Email Notification”
“Project Recipient List”文本框默认是”$DEFAULT_RECIPIENTS”
意思是发送给在Jenkins上进行本次构建的用户,这里换行添加自己的邮箱来区分一下

2. 添加邮件主题和邮件内容,这个模块网上很多,可以自己找一下。
注意把报告地址改为你的内网ip+端口号

【接口测试报告】$PROJECT_NAME - $BUILD_STATUS - Build # $BUILD_NUMBER!
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>  <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  offset="0">  <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">  <tr>  <td><br />  <b><font color="#0B610B">报告信息</font></b>  <hr size="2" width="100%" align="center" /></td>  </tr>  <tr>  <td>  <ul>  <li>项目名称 : ${PROJECT_NAME}</li>  <li>构建编号 : 第${BUILD_NUMBER}次构建</li><li>触发原因 : ${CAUSE}</li>  <li>报告 Url : <a href="http://192.168.1.82:8001/">http://192.168.1.82:8001/</a></li>  </ul>  </td>  </tr>  </table>
</body>
</html>  

3. 接着需要设置触发条件,点击”Advanced Settings…”按钮

4. 在Triggers文本区域,添加为你预期的触发条件。例:失败才发送
本人这里设定的是Always,任何情况下都发送。

四、 Jenkins设置发件人邮箱

  • 如果Jenkins上已经有人设定过管理员邮箱和发件人邮箱,可以跳过此步骤

1. 在Jenkins进入系统管理

2. 点击系统设置

3. 在Jenkins Location区域,设定”系统管理员邮件地址”

4. 在Extended E-mail Notification区域,设定发件人邮箱帐号
· SMTP server: 本人公司邮箱是qq企业邮箱,SMTP服务是”smtp.exmail.qq.com”
· Default user E-mail suffix: 邮箱后缀”@xxxx.com”
· Default Recipients: 默认收件人(这个只需要填名字,会自动拼接邮箱后缀)之后任务构建后的通知邮件会默认发送给此人。

5. 在高级选项中,勾选”Use SMTP Authentication”,填入发件人邮箱的帐号密码。之后任务构建后的通知邮件就是通过此帐号发出的。

五、 调试

  • 到了此步应该已经算搭建完成了。调试一下,如果有问题再看一下之前的步骤。

1. 开发提测后,执行项目构建。
此任务应该会自动从GIT(或SVN)拉取代码、自动打包、自动发布等等。
构建完成后,我们创建的接口测试任务会被自动加入执行队列。

2. 查看终端打印日志”Console Output”
可以看到jmeter脚本成功执行,然后重启web网站,最终发送了邮件

3. 我设定的管理员邮箱收到了邮件。
你可以将管理员设定为自己,同时在任务配置list当中,设定你的同事。
就是我设定tomoya_chen@163.com邮箱地址的地方。

4. 收到邮件的人,点击链接即可看到本次测试报告了

jmeter脚本设计思路

  • Jmeter脚本设计思路,在持续集成环境不需要进行完整的接口测试。

1. 可以直接拿完整的接口测试脚本来使用,在设计Jmeter脚本时使用CSV数据驱动,直接沿用此版本,同时将循环数设定为1,即只跑CSV文件中第一行。

2. 查询接口和对系统造成影响的接口应分开,用if来控制是否执行这些接口

尾声

  • 学习、记录、总结。

  在开发提测后,每次在测试环境构建,都能快速执行一次接口的主流程测试。如果没有问题,测试人员再进行测试。这在回归测试阶段,可以避免开发在修复bug过程中,影响了其他已测的模块。毕竟每次开发提测,不可能都进行一次完整的系统测试,这样费时费力的事情,还是交给机器吧。

  感谢阅读。

Jenkins + Jmeter 搭建简易CI (自动执行接口测试+发布web报告+发送邮件)相关推荐

  1. Jenkins+Jmeter+Ant接口用例执行情况监控

    前言 Jenkins+Jmeter+Ant接口测试框架中,Jmeter脚本中有报错的用例,但是Jenkins的执行结果仍然是successful,无法触发"执行失败时发送邮件".原 ...

  2. imacros自动跑代码_如何使用iMacros自动执行重复的Web浏览器任务

    imacros自动跑代码 Computers are supposed to automate repetitive tasks – if you find yourself submitting f ...

  3. 自动生成html_服务搭建篇二·Jenkins+Jmeter+Gitlab持续集成实现接口流程自动化

    今天分享服务搭建第二篇:Jenkins+Jmeter+Ant自动化集成(服务) 一.Ant 服务配置 1.配置报告模板和 ant build 确定脚本的目录,当前放在Jmeter 目录下 #cd /u ...

  4. Windows下搭建ant+jenkins+jmeter自动化接口测试框架

    Windows下搭建ant+jenkins+jmeter自动化接口测试框架 引言 为什么要持续集成? 1.减少风险 2.减少假定 3.减少重复过程 4.增强项目的可见性 5.持续集成可以带来两点积极效 ...

  5. Windows下搭建ant+jenkins+jmeter自动化接口测试框架(详细篇)

    引言 为什么要持续集成? 1.减少风险 2.减少假定 3.减少重复过程 4.增强项目的可见性 5.持续集成可以带来两点积极效果: (1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息, ...

  6. 【二十二】win 10 :Jmeter 报告可视化 —— 配置 Jmeter 接口 HTML 可视化测试报告,Jenkins + Jmeter + Ant 自动化集成环境搭建

    目录 一.环境搭建 二.文件下载 三.文件配置 四.本地调试 五.创建.bat文件 六.Jenkins配置邮件 七.配置测试项目 八.自动部署成功校检 九.jmeter仪表盘HTML报告自动化构建 一 ...

  7. jenkins 手动执行_想知道如何用Jenkins自动执行Python脚本输出测试报告?

    前言在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作.借助Jenkins,我们可以结合 Git/SVN 自动拉取代码 ...

  8. Jenkins+Svn搭建持续集成环境和自动部署

    Jenkins+Svn搭建持续集成环境和自动部署 一.环境说明 centos 6.8     ip:192.168.1.26 二.运行环境配置 1.安装java环境,下载jdk并放在/usr/loca ...

  9. 手把手教你搭建Jenkins+Jmeter+Ant自动化集成环境

    一.安装前准备 1.JDK:jdk-8u121-windows-x64 2.jmeter工具:apache-jmeter-2.13 3.ANT工具:apache-ant-1.9.7-bin 4.jen ...

最新文章

  1. 直播平台搭建中你需要注意的小细节
  2. java基础-类加载学习笔记
  3. ITK:在没有写访问权的情况下遍历整个图像
  4. cad图纸问号怎么转换文字_CAD打开图纸后字体显示为问号,这样解决治标治本(送)...
  5. matlab中图像处理的基本函数(2)
  6. 关于she'll脚本中echo -e使用sh命令执会显示参数-e-的问题
  7. crc16几种标准校验算法及c语言代码
  8. 英伟达斥资 400 亿美元收购 Arm,欲向 Arm 员工发 15 亿美元股票
  9. 计算机无法创建新文件夹,无法创建文件,小编教你无法新建文件夹怎么办
  10. 拼团小程序源码_深圳微信小程序,拼团小程序有哪些拼团模式?
  11. 计算机组成原理的各种常见英文缩写介绍--<<方便复习的笔记>>
  12. 颜色拾取器和红蜻蜓截图
  13. 修改人人商城支付后报错“服务器暂时无法处理您的请求,请稍后重试“
  14. springboot框架下利用websocket实现即时通讯
  15. IOS内购验证 (Java版)
  16. 微信订阅号发送模板消息
  17. 闲谈swi与ucos-续篇
  18. 盘点:35 个 Java 代码优化魔鬼细节
  19. 2021数学建模C题
  20. c语言题库832,2017年北方民族大学计算机软件与理论832C语言程序设计与数据结构之C程序设计考研题库...

热门文章

  1. Termux的安装、换源、基本库安装、基本操作讲解以及Termux的使用心得
  2. XC7VX690T-2FFG1761_PCIe 系列之三
  3. FasterRCNN-pytorch的代码解析
  4. 训练数据的归一化处理
  5. 浏览器发起请求之后数据包的旅程
  6. 7步教你轻松制作顾客旅程地图
  7. c语言猜牌游戏,C++实现猜牌小游戏
  8. Excel使用技巧:快速提高工作效率
  9. linux屏幕滑动效果实现代码,使用swipe方法模拟屏幕滑动与手势密码绘制
  10. 听说你想做一个汽车软件工程师?(下)