网站开发与建设主要干什么,米拓 wordpress,sql可以做网站吗,上海建设执业资格注册中心网站简介 我们用自动化新建任务之后#xff0c;要想接着对这个新建任务操作#xff0c;那就需要用参数关联了#xff0c;新建任务之后会有一个任务的Jenkins-Crumb#xff0c;获取到这个Jenkins-Crumb#xff0c;就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。
…
简介 我们用自动化新建任务之后要想接着对这个新建任务操作那就需要用参数关联了新建任务之后会有一个任务的Jenkins-Crumb获取到这个Jenkins-Crumb就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。
大致流程步骤登录—新建任务—web界面操作删除—抓取删除操作请求—提取参数—传参—代码实现。
一、删除新建任务
1、我们前面讲过登录后新建任务后那可以继续接着操作删除刚才新建的任务 2、用fiddler抓包抓到删除新建任务的请求从抓包结果可以看出传的data参数是Jenkins-Crumb 3.这个Jenkins-Crumb哪里来的呢可以看上个请求的body 4、也就是说在新建任务的时候系统随机生成一个Jenkins-Crumb参数的值body里面带有Jenkins-Crumb这个参数。那接下来我们提取出来就可以了
二、提取参数
1、我们需要的参数Jenkins-Crumb是在新建任务是body里Jenkins-Crumb的值这时候从body里提出对应的参数值就行了注意每次保存需要修改内容不能重复 三、传参
1、删除新建任务的data参数传上面取到的参数{Jenkins-Crumb: Jenkins_Crumb}
2、data数据类型post里面填data就行
3、接着前面的新建任务操作就可以删除成功了
注意如果想看清楚可以在删除新建任务出打断点看到新建的任务后再次执行下边的代码 看看是不是可以删掉新建任务 4、302重定向 5、content内容复制到记事本修改后缀以后浏览器查看有“欢迎来到Jenkins” 四、参考代码 1 # coding:utf-82 import requests3 # 先打开登录首页获取部分session4 url http://localhost:8080/jenkins/j_acegi_security_check5 headers {6 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.07 } # get方法其它加个ser-Agent就可以了8 d {j_username: admin,9 j_password: 111111,
10 from: ,
11 Submit: u登录,
12 remember_me: on
13 }
14
15 s requests.session()
16 r s.post(url, headersheaders, datad)
17 #print (r.content.decode(utf-8))
18 # 正则表达式提取账号和登录按钮
19 import re
20 t re.findall(rb(.?)/b, r.content.decode(utf-8)) # 用python3的这里r.content需要解码
21 print (t[0])
22 print (t[1])
23 #新建任务
24 url1 http://localhost:8080/jenkins/createItem
25 body {name:6666,
26 mode: hudson.model.FreeStyleProject,
27 Jenkins-Crumb:51a97fc7fbf3792823230d9bdd7ec906,
28 json:{name:6666,
29 mode: hudson.model.FreeStyleProject,
30 Jenkins-Crumb:51a97fc7fbf3792823230d9bdd7ec906
31
32 }
33 }
34 print(type (body))
35 import urllib
36 import sys
37 #获取name的值
38 name body[name]
39 print(name:name)
40 #获取body的值
41 Jenkins_Crumb body[Jenkins-Crumb]
42 print(body的值是,body[Jenkins-Crumb])
43 r2 s.post(url1, databody, verifyFalse)
44 #print (r2.content.decode(utf-8))
45 #删除新建任务
46 url2 http://localhost:8080/jenkins/job/name/doDelete
47 body1 {
48 Jenkins-Crumb: Jenkins_Crumb
49 }
50
51 r3 s.post(url2, databody1, verifyFalse)
52 print (r3.content.decode(utf-8))
53 #删除成功重定向到主界面由于抓包没有看到response的结果只知道重定向主界面
54 print(r3.url)
五、小结 1、细心地、认真的小伙伴一定会发现我代码请求的name的值是6666或者英文而不是“北京-宏哥”的中文原因是中文出现的url中有时候会报错。解决办法
1 from urllib.parse import quote
2 import urllib.request
3 name quote(name)
4 url2 http://localhost:8080/jenkins/job/name/doDelete
2、给小伙伴们演示一下打断点
1在删除新建任务出打上断点,双击前边即可出现一个红色的大圆点 2查看jenkins主界面没有新建任务 3点击右上方的昆虫图标 4进入debug模式代码运行到断点处停止运行 5刷新主界面再次查看jenkins主界面有新建任务-空白名 6点击右边的绿色图标一次性执行完后边的代码或者是上边拐弯蓝色图标一步一步执行完后边的代码 7刷新主界面再次查看jenkins主界面你会看到新建任务-空白名 神奇的消失了他就这样被你神不知鬼不觉的干掉了 【软件测试到测试开发全测试生涯学习路线】
以及全套配套的学习资料视频教程....
【以下路线图太详细了只能展开部分具体的可以在文章末尾扫描小卡片备注000领取哦】
1自动化测试进阶系列 2全栈性能测试监控以及调优 3全栈测试开发平台实战 4全栈安全测试渗透测试 5devops持续集成部署 6全栈接口测试工具进阶 7跨平台自动化测试工具 8大厂简历真题录音 9全栈系列课企业项目实战 总结现阶段如何突出重围呢唯有不断的学习下面是软件测试到测试开发全职业生涯全套学习资料 【需要的可以点击下方官方推广小卡片扫码备注000免费领取】