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

来源:互联网 发布:js正则表达式空格 编辑:程序博客网 时间:2024/06/05 23:42

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\Demoset 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 >nulxcopy /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:Democ:\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过程中,影响了其他已测的模块。毕竟每次开发提测,不可能都进行一次完整的系统测试,这样费时费力的事情,还是交给机器吧。

  感谢阅读。

阅读全文
0 0
原创粉丝点击