jenkins-jmeter-ant接口自动化搭建(三)
1.jenkins项目配置
1项目创建
【创建一个自由风格的软件项目】
2项目配置
2.1.General,保持构建天数2天,保存构建最大个数20(因为jenkins报告存储会占用服务器空间)
2.2.源码管理选择无,构建触发器选择【GitHub hook trigger for GITScm polling】(用git管理的方式我之后更新)
2.3.构建,增加ant,选择ant,Targets填写run,点开高级填写你的build.xml文件路径(一般会默认带过来,可以检查下)
2.4新增构建步骤【Execute system Groovy script】(用于解决报告显示没有样式问题)
填写System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
2.5判断jmeter执行时有接口错误,发送飞书、企信通知,通过python脚本发送(也可以用本身jenkins带的钉钉、企信插件)
新增构建步骤执行shell命令,report-pinchuang为自己项目jmeter报告生成目录,与build.xml文件内容一致,
cd /usr/bin
python3……/feishusend.py 该命令为执行发送飞书机器人消息(脚本在/usr/jmeter/apache-jmeter-5.4.1/TestScrip/common/feishusend.py)
shell命令为:检查jmeter报告.jtl文件,有接口报错的执行构建失败并发送飞书通知,jmeter接口全部通过就跳过
#!/bin/bash
cd /usr/jmeter/apache-jmeter-5.4.1/testToken/report-pinchuang/$BUILD_ID
grep -n "<failure>true</failure>" TestReport.jtl
if [ $? -eq 0 ];then
cd /usr/bin
python3 /usr/jmeter/apache-jmeter-5.4.1/TestScrip/common/feishusend.py $JOB_URL $JOB_NAME $BUILD_NUMBER
exit 1
else
exit 0
fi
|
2.6.构建后操作,添加Publish HTML reports
Html路径中report-pinchuang为自己项目jmeter报告生成目录,与build.xml文件内容一致
应用保存
2.7配置定时执行(可选)
语法介绍
表格一共可以书写5个* * * * * * 其中每个*之间需要通过空格或者tab键进行隔离开
- 第一个*表示分钟,取值0~59
- 第二个*表示小时,取值0~23
- 第三个*表示一个月的第几天,取值1~31
- 第四个*表示第几月,取值1~12
- 第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周几
举例
H/15 * * * * :表示每隔15分钟进行构建一次项目
H H/3 * * * : 表示每隔3小时进行构建一次项目
H 12 * * * :表示每天的12点进行构建一次项目
H H(9-18)/2 * * 1-5 : 表示每个工作日的早上9点到18点每隔2个小时进行构建一次项目
2.8 jenkins 配置jmeter参数化,是用于一些需要手动或者构建时传入jmeter脚本里的参数
1.勾选参数化构建过程,添加参数,选择字符参数(跟据情况选择)
2.添加参数名称(为要在jmeter中传的变量名称一致),有默认值可以直接填写默认值
3.修改bulid文件,两个位置
a.在<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">里对应位置添加
<property name="token" value="${token}" />有几个变量添加几个<property>
4.jmeter脚本使用变量方式为:${__P(变量名)},例如${__P(token)}注意变量名与bulid文件里的一致,建议三方都一致
5.jenkins进行构建操作
填写参数值进行构建
我用参数化是为了解决,项目飞书授权登录执行项目之后的接口,因为是三方授权登录,没有好的办法自动获取token,便通过先手动获取token然后传到构建项目里做一个变量,通过jmeter和jenkins参数化把token传给了jmeter脚本