萝岗免费网站建设,网站seo的方法,谷歌seo什么意思,电脑培训班在哪里报名前言
嗨喽~大家好呀#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取
需求背景#xff1a;
现在用jenkins构建自动化测试#xff08;2个job#xff09;#xff0c;公司现将自动化纳入到发布系统
要求每次构建成功之后这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取
需求背景
现在用jenkins构建自动化测试2个job公司现将自动化纳入到发布系统
要求每次构建成功之后把测试结果发送给发布系统。这就需要先获取jenkins构建的结果
如果构建结束才能发送测试结果否则就要等待jenkins构建结束。
理解回调函数
像这样类似男女朋友约会结束男方要求女方到家后发1个信息告诉他安全到家了。
就是python回调函数的应用场景。男女朋友约会结束是在主函数mainfunc中女朋友回家这个动作由callback函数完成。
在mainfunc函数中男朋友会接收女朋友发送已到家的消息那怎么接收呢
就是通过调用callback这个函数来获得女朋友到家的状态这个过程就称之为回调函数
基本思路
先用一个demo理清自己的思路要做哪些事共分几个步骤
每个步骤要完成哪些事情这些思路搞定之后代码也就完成了。
这里的有一个技巧先用randomint随机生成一个数字用来代表jenkins的构建结果状态而不是每次都真的去请求接口。因为这会增加验证结果的时间成本分散精力。
最后整个流程顺下来再把随机数部分替换为真正去请求jenkins接口这会大大节约调试时间。
version1:
demo 理清思路用简单的代码描述清楚自己想要实现的效果 遇到问题没人解答小编创建了一个Python学习交流QQ群926207505
寻找有志同道合的小伙伴互帮互助,群里还有不错的视频学习教程和PDF电子书def mainfunc(func)::param func: callback func Name:return:print(start build job)func()print(send report to ding wen qi)def callback()::return: jenkins job build stateprint(jenkins is done)mainfunc(callback)version2:
callback函数,获取job的构建状态。
该函数返回一个状态true或false。
true表示job已经构建结束false表示程序仍然在构建中 遇到问题没人解答小编创建了一个Python学习交流QQ群926207505
寻找有志同道合的小伙伴互帮互助,群里还有不错的视频学习教程和PDF电子书def callback()::return: jenkins job build statenum random.randint(1,10)#利用randint随机生成一个num 假装enkins是返回的构建结果。偶数认为已经构建结束奇数认为仍在构建中print(num)if num % 2 ! 0:#奇数print(kins is building job)return {buildState:False}else:#偶数print(jenkins is done)return {buildState: True}version3:
mainfunc接收callback返回的状态
true做send report操作
false 再次调用func函数确认直到结果是true
while True:flag func()if flag :print(step3:send report to ding wen qi)break结果
1 step1:start build job
2 step2:jenkins is building job
3 step2:jenkins is building job
4 step2:jenkins is done
5 step3:send report to ding wen qiversion4:
加入等待时间在询问jenkins是否构建结束之前先等上10秒1钟正常1个job至少构建1分钟以上不停询问很浪费资源
time.sleep(2)完整的demo代码 遇到问题没人解答小编创建了一个Python学习交流QQ群926207505
寻找有志同道合的小伙伴互帮互助,群里还有不错的视频学习教程和PDF电子书import random
import timedef mainfunc(func)::param func: callback func Name:return:print(step1:start build job)#根据callback返回的状态决定是否进行下一步操作while True:flag func()if flag :print(step3:send report)breakdef callback()::return: jenkins job build state#jenkins构建job需要至少3分钟所以每隔1分钟请求一次time.sleep(2)num random.randint(1,100)#利用randint随机生成一个num 假装enkins是返回的构建结果。偶数认为已经构建结束奇数认为仍在构建中# print(num)if num % 2 ! 0:#奇数print(step2:jenkins is building job)return Falseelse:#偶数print(step2:jenkins is done)return Truemainfunc(callback)尾语
最后感谢你观看我的文章呐~本次航班到这里就结束啦
希望本篇文章有对你带来帮助 有学习到一点知识~
躲起来的星星也在努力发光你也要努力加油让我们一起努力叭。 最后宣传一下呀~更多源码、资料、素材、解答、交流皆点击下方名片获取呀