jmeter+ant+jenkins实现接口自动化测试_触发构建

我现在了解的是两种,一种是其他工程构建后触发,另一种是触发远程构建

  • 其他工程构建后触发
    这个比较方便的是在同个Jenkins服务的话,有依赖关系的项目可使用此种方法
    在这里插入图片描述
  • 触发远程构建

我们公司的实际情况是运维在ubuntu上部署了Jenkins,然后测试环境各个服务器的构建在上面进行操作,我这边是在Windows部署的Jenkins服务,所以需要触发远程构建
此处参考博客:https://blog.csdn.net/m0_37904728/article/details/82790390
先分析是ubuntu的Jenkins构建完成后需触发Windows的Jenkins进行构建
1、在Windows的Jenkins上配置用户remote_user
创建完后,退出当前的用户,以remote_user的身份登录,在用户的设置处进入下面界面,添加新token时可生成API Token,进行保存,后面会用到
在这里插入图片描述2、构建触发器处选择触发远程构建,在身份验证令牌处输入remoteToken
在这里插入图片描述3、此时执行下面的shell语句即可触发Windows的Jenkins服务进行构建,remote_user后面的即API Token

curl -X POST http://remote_user:[email protected]/job/remote_job/build?token=remoteToken

我们需要ubuntu的Jenkins服务触发Windows的Jenkins服务,目前实现了执行shell命令进行触发,那我们在ubuntu的Jenkins项目中执行shell脚本即可
当在ubuntu的Jenkins服务构建的时候增加执行shell脚本后,可以触发成功
在这里插入图片描述但是此时有个问题,ubuntu的项目构建后,触发Windows进行构建,此时ubuntu的服务一般情况下都没起来,我们的服务起来差不多10min左右,所以会导致我们的脚本执行的都是失败的,所以需要作判断。
对于每个服务有个swagger地址,如果此地址返回是200,说明服务器已经起来

while true; do
    url="http://192.168.1.131:8101/pat/swagger-ui.html"
	CODE=$(curl  -i -m 10 -o /dev/null -s -w %{http_code} --insecure  $url)
    if [[ "$CODE" -eq "200" ]]; then
        curl -X POST http://remote_user:[email protected]/job/remote_job/build?token=remoteToken
    	break
    fi
	sleep 10
done

理论上这样子应该是没问题,但我们的运维说他那边构建的时候一直死循环(原因不详),把脚本放在他的脚本后面执行成功,也是神奇,如果有shell大神,可帮忙分析是什么原因,十分感谢!

猜你喜欢

转载自blog.csdn.net/python222/article/details/89671749