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过程中,影响了其他已测的模块。毕竟每次开发提测,不可能都进行一次完整的系统测试,这样费时费力的事情,还是交给机器吧。
感谢阅读。
- Jenkins + Jmeter 搭建简易CI (自动执行接口测试+发布web报告+发送邮件)
- jmeter测试接口,跟jenkins集成实现自动推送邮件报告
- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
- 搭建持续集成接口测试平台(Jmeter+Jenkins+Ant)
- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
- jmeter+jenkins+ant发送邮件
- Jmeter+Jenkins+Ant 搭建持续集成的接口测试平台(接口测试)
- ant+jmeter+jenkins搭建持续性能测试,接口测试平台
- ant+jmeter+jenkins搭建持续性能测试,接口测试平台
- Jenkins+Ant+Jmeter搭建持续集成的接口测试平台
- Jenkins+Ant+Jmeter搭建持续集成的接口测试平台
- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
- Jenkins+Ant+Jmeter搭建持续集成的接口测试平台
- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
- imx6ul+uart使用
- GreenDao的增删改查
- python2.7 遇到ascii编码问题解决方法
- Ajax(jQuery的ajax()方法)
- node.js基础 Stream流
- Jenkins + Jmeter 搭建简易CI (自动执行接口测试+发布web报告+发送邮件)
- sqlserver连接
- 初学者福音,教你如何学好java!
- 问题杂记
- STM32 I2C学习
- 自顶向下,逐步求精(Top-down)的程序设计方法简介
- Excel MAC十六进制递增
- C语言中如何求一个数组的长度
- Log4j配置详解