python接口自动化(十五)--参数关联接口(详解)

news2024/10/7 12:19:21

简介

  我们用自动化新建任务之后,要想接着对这个新建任务操作,那就需要用参数关联了,新建任务之后会有一个任务的Jenkins-Crumb,获取到这个Jenkins-Crumb,就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。

大致流程步骤:登录—>新建任务—>web界面操作删除—>抓取删除操作请求—>提取参数—>传参—>代码实现。

一、删除新建任务

1、我们前面讲过登录后新建任务后,那可以继续接着操作:删除刚才新建的任务

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386     

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337 

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-8
 2 import requests
 3 # 先打开登录首页,获取部分session
 4 url = "http://localhost:8080/jenkins/j_acegi_security_check"
 5 headers = {
 6             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
 7            }  # 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, headers=headers, data=d)
17 #print (r.content.decode('utf-8'))
18 # 正则表达式提取账号和登录按钮
19 import re
20 t = re.findall(r'<b>(.+?)</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, data=body, verify=False)
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, data=body1, verify=False)
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主界面,你会看到:新建任务-北京-宏哥  神奇的消失了,他就这样被你神不知鬼不觉的干掉了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/716250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3 动态组件

父组件 <template><div><h1>动态组件</h1><ul class"ul"><li :class"{ actived: index isactive }" click"changeCur(index)" v-for"(item, index) in list" :key"item.name">{{item…

Elasticsearch(1)——倒排索引与HTTP操作Elasticsearch

文章目录 1 前言2 Elasticsearch 安装3 数据格式4 倒排索引5 常用HTTP请求操作Elasticsearch5.1 创建索引5.2 查询索引信息5.3 删除索引5.4 创建/修改文档5.5查找文档5.6局部修改文档5.7删除文档5.8分页查询 1 前言 Elastic Stack 核心产品包括 Elasticsearch【存储数据】、Ki…

行云管家堡垒机和传统堡垒机的区别简单讲解

据统计&#xff0c;70%以上的IT故障其实都是内部人为引起的&#xff0c;例如账号密码管理不规范、资产授权不清晰、违规执行高危敏感命令等&#xff0c;这意味着信息化安全管理首先要解决的是加强内部信息安全管控。而加强内部信息安全管控就需要用到运维审计产品&#xff0c;也…

Bito - 超越Copilot的一款神级插件

文章目录 01 引言02 Bito的安装与使用2.1 安装Bito2.2 注册并创建工作空间2.3 使用方式 03 其它3.1 插件支持的平台3.2 文档 04 文末 01 引言 Bito IDEA插件地址&#xff1a;https://plugins.jetbrains.com/plugin/18289-bito–gpt-4–chatgpt-to-write-code-explain-code-crea…

合作、参与、让开源更易用 | 亚马逊的开源文化

JAX 是一种越来越流行的库&#xff0c;它支持原生 Python 或 NumPy 函数的可组合函数转换&#xff0c;可用于高性能数值计算和机器学习研究。JAX 提供了编写 NumPy 程序的能力&#xff0c;这些程序可以使用 GPU/TPU 自动差分和加速&#xff0c;从而形成了更灵活的框架来支持现代…

举例说明什么是前馈神经网络

前馈神经网络&#xff08;Feedforward Neural Network&#xff09;是一种最基本的人工神经网络结构&#xff0c;它由多个层次的神经元组成&#xff0c;这些神经元间具有相互连接的权重。数据从输入层进入&#xff0c;然后逐层传播&#xff0c;最后到达输出层。在这个过程中&…

基于ava+Swing+Mysql图书信息管理系统

基于JavaSwingMysql图书信息管理系统 一、系统介绍二、功能展示1.主页2.新增图书信息3.删除图书信息 三、数据库四、其他系统实现五、获取源码 一、系统介绍 该系统实现了查看图书列表、新增图书信息、删除图书信息 运行环境&#xff1a;eclipse、idea、jdk1.8 二、功能展示…

YUV 8bit转10bit

在有些场景中&#xff0c;我们经常会使用到YUV 8 bit转10bit的场景。 比如YUV420p 8bit 转 P010,P010le,YUV420p10le。 首先说ffmpeg 8 bit 转 10bit. 对于ffmpeg的P010le 和P010be 分别代表小端和大端&#xff0c;那么它转化的时候非常简单&#xff0c;就是8 bit再增加 8bit&…

MSP432自主开发笔记1:编码器测速_外部中断捕获法测速\测正反转

开发板芯片型号&#xff1a;MSP432P401R 今日得以继续我的MSP432电赛速通之路&#xff01; 进入此文章阶段&#xff0c;就预示着先人的开拓已经到了尽头,看着先人“一身转战三千里&#xff0c;一剑曾当百万师”&#xff0c;我们也该“门前学种先生柳”从而“步行夺得胡马骑”…

基于SSM的教务管理系统

基于ssm教务管理系统 一、项目背景介绍&#xff1a; 教务管理系统是一种基于信息技术的管理工具&#xff0c;可以用来管理学生、教师、课程、考试、教学资源等方面的信息&#xff0c;以实现高效、科学、规范的教务管理。随着信息技术的迅速发展&#xff0c;教务管理系统已经成为…

VM虚拟机端口映射接收CS弹反木马

VM虚拟机端口映射接收CS弹反木马 1. 前言1.1. 前期准备1.2. 整体思路 2. 整体操作流程2.1. 虚拟机配置2.2. WIFI路由器设置2.3. CS设置2.3.1. 创建本地监听器2.3.2. 创建生成木马监听器2.3.3. 创建反弹木马2.3.4. 查看效果 1. 前言 在日常的对客户的内网进行渗透的时候&#xf…

【广州华锐互动】VR地铁安全应急疏散模拟演练系统

VR地铁安全应急疏散模拟演练系统是一种利用虚拟现实技术模拟铁路安全事故的应用程序。该系统具有以下功能和内容&#xff1a; 多种场景和情境&#xff1a;用户可以选择不同的场景和情境进行模拟&#xff0c;例如列车脱轨、火灾、爆炸等。 操作控制器或手势识别技术&#xff1…

超细,RobotFramework自动化测试-测试套件使用详细(实战)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 自动化因为是基于…

Ubuntu 20.04 LTS 安装 nvidia 驱动 + cuda 11.8 从开始到放弃!

升级 sources.list # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restri…

【赠书活动】同构:编程中的数学

写在前面 近年来随着人工智能、大规模分布式计算、多核CPU和异构计算等的发展&#xff0c;计算机中的各种编程技术在编程语言、软件架构、编译器、硬件体系结构、集成电路设计等方面都有着剧烈的变化。编程语言方面&#xff0c;越来越多的主流语言引入函数式编程的概念。软件架…

Zotero+百度网盘同步空间多电脑设置方法

Zotero百度网盘同步空间多电脑设置方法 之前一直用的Onedrive和Zotero来同步&#xff0c;原理差不多&#xff0c;但是百度网盘同步空间毕竟是国内的&#xff0c;&#xff08;开了会员&#xff09;速度快很多&#xff0c;记录一下多台电脑使用百度网盘同步空间来同步Zotero和相…

第六章.­ ­ Theory of Generalization

第六章. Theory of Generalization 上一章节我们主要探讨了M数值的大小对机器学习的影响。若M很大&#xff0c;我们就不能保证机器学习有很好的泛化能力&#xff0c;所以我们的问题就转换成验证M有限&#xff0c;最好是按照多项式成长&#xff0c;然后引入了成长函数mH(N)和二…

微服务一 实用篇 - 4.RabbitMQ

《微服务一 实用篇 - 4.RabbitMQ》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《微服务一 实用篇 - 4.RabbitMQ》 《微服务一 实用篇 - 4.RabbitMQ》1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯 1.2.技术对比 2.快速入门2.1.安装RabbitM…

viewsets.ViewSet 详解

目录 零、前提&#xff08;这一段可以忽略&#xff09; 一、地址 二、viewsets.ViewSet介绍 2.1 viewsets.ViewSet介绍 三、viewsets.ViewSet默认方法&#xff08;增删改查等方法&#xff09; 四、 生成路由 4.1 使用路由器注册 viewset&#xff0c;自动生成 URL 配置(推…

Git下载与安装(windows)

文章目录 Git 简介Git 下载Git 安装Git 环境变量配置 Git 简介 Git 是一种分布式版本控制系统&#xff0c;用于快速、高效地处理任何大小规模的项目。它是由 Linus Torvalds 在 2005 年开始开发的&#xff0c;Git 最初是为了管理 Linux 内核源代码而创建的。现在 Git 是一个广…