Jenkins:集成Jmeter接口测试(Freestyle Project)
依赖工具
服务器:配置Jenkins、Maven、Java环境
Jenkins插件:HTML Publisher plugin,Startup-trigger,Groovy
实现流程
- 在Jenkins创建一个Maven项目(依赖插件:Maven Integration plugin)
- 勾选参数化构建过程,并输入:
key | value |
---|---|
名称 | targetTagName |
默认值 | qt_fns |
描述 | JMX文件的文件名(不带后缀),用作:1、运行该文件名的脚本,如:groovy.jmx2、生成该文件名的报告,如:groovy.html |
-
源码管理配置
-
配置构建触发器
-
配置 Build 内容,输入:
key | value |
---|---|
Root POM | pom.xml |
Goals and options | clean verify -D jmxName="${targetTagName}" |
- 配置 Post Steps,选中 Run regardless of build result ,添加 执行 shell 步骤,并输入
grep 'class="Failure"' ./target/jmeter/html/${targetTagName}.html && exit 1 || echo "Run test successed"
- 添加构建后操作:Publish HTML reports(依赖插件:HTML Publisher plugin),并输入:
key | value |
---|---|
HTML directory to archive | ./target/jmeter/html/ |
Index page[s] | ${targetTagName}.html |
Report title | HTMLReport |
- 添加构建后操作:Editable Email Notification,并输入
| Project Recipient List(收件人邮箱) | liangrongfeng@7tao.net |
| ------------------------------------ | ------------------------------------------------------ |
| Content Type | 选中:HTML(text/html) |
| Default Subject | $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS! |
在Default Content输入:
<!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">
<div width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<div>本邮件由系统自动发出,无需回复!
<br />
<br>各位同事,大家好,以下为${PROJECT_NAME }自动化测试项目构建信息
<br />
<div>
<font color="#CC0000">构建结果 - ${BUILD_STATUS}</font>
</div>
</div>
<div>
<h4>
<font color="#0B610B">构建信息</font>
</h4>
<hr size="2" width="100%" />
<ul>
<li>项目名称 :${PROJECT_NAME}</li>
<li>构建编号 :第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a>
<li>工作目录: <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
</li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a>
</li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a>
</li>
</ul>
</div>
<div>
<h4>
<font color="#0B610B">测试报告</font>
</h4>
<hr size="2" width="100%" />
<b>点击查看测试报告: <a href="${PROJECT_URL}${BUILD_NUMBER}/HTMLReport">${PROJECT_URL}${BUILD_NUMBER}/HTMLReport</a></b>
</div>
https://jenkins.testops.top/job/jmeter3/28/APITest/
<div>
<h4>
<font color="#0B610B">构建日志 (最后20行):</font>
<hr size="2" width="100%" align="center" />
</h4>
</div>
<div>
<ul>
<li>${BUILD_LOG, maxLines=22}</li>
</ul>
</div>
</div>
</body>
</html>
- 需要在Jenkins系统配置中,配置发送邮件信息,如:
嵌入当前自动发布流程
- FNS项目在Jenkins构建成功后,触发『测试项目』执行
- 执行后,生成测试报告,样式如下
- 接口测试失败,可发送邮件,成功则不发送
其他问题
打开报告后不显示样式
如:
解决方法:
-
安装Startup-trigger和Groovy插件
-
在Job配置页面,构建触发器,勾选Build when job nodes start
-
在Job配置页面,增加构建步骤Execute system Groovy script,在Groovy Command中输入下面命令,即可
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")