从0开始python学习-41.requsts中session关联接口

问题:在多接口测试中,存在接口token等参数需要关联的情况,为了避免无法进行关联或者错误关联及写很多冗余代码的情况。采用session的方式进行接口关联

作用:requests库的session会话对象可以跨请求保持某些参数,Requests中的Session会话管理的作用就是自动的记录cookie和session的登录状态

使用正则表达式通过session关联

class TestApi:csrf_token = ''access_token = ''session = requests.session()  # 确保是同一个session回话def test_phpwind(self):url = 'http://aaa/phpwind/'res = TestApi.session.request(method="get",url=url)# print(res.text)# 因为token是在文本中,通过正则表达式的方式获取tokenres_token = re.search('name="csrf_token" value="(.*?)"',res.text)TestApi.csrf_token = res_token.group(1)print(TestApi.csrf_token)def test_phpwind_login(self):url = 'http://aaa/phpwind/index.php?m=u&c=login&a=dorun'header = {"Accept":"application/json, text/javascript, /; q=0.01","X-Requested-With":"XMLHttpRequest"}data = {"username":"baili","password":"baili123","csrf_token":TestApi.csrf_token,"backurl":"http://aaa/phpwind/","invite":""}res = TestApi.session.request(method="post",url=url, data=data, headers=header)print(res.json())

使用jsonpath通过session关联,跟上面共有一个session

def test_get_token(self):url = 'https://api.weixin.qq.com/cgi-bin/token'params ={"grant_type":"client_credential","appid":"wx74a8627810cfa308","secret":"e40a02f9d79a8097df497e6aaf93ab80"}res = TestApi.session.request(method="get",url=url,params=params)print(res.json())access_token= jsonpath.jsonpath(res.json(),'$.access_token')TestApi.access_token = access_token[0]print(access_token[0])def test__edit_flag(self):url = 'https://api.weixin.qq.com/cgi-bin/tags/update'params = {"access_token":TestApi.access_token}json = {"tag" : {"id":134,"name":"广东人"}}res = TestApi.session.request(method="post", url=url, params=params, json=json)print(res.json())

从上面代码可以看出:

1. 在类下面建立了一个session = requests.session()请求,然后所有方法通过TestApi.session.request()的方式调用同一个session

2. 将需要关联的token先access_token = ''后,之后直接将接口中获取到的token通过TestApi.access_token = access_token[0]的方式赋值给到access_token,这样之后的接口需要使用时直接调用即可

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

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

相关文章

新晋程序员的2023:挫折、收获与未来展望

2023年,对我而言,是一个崭新的开端,也是一个丰富的挑战。毕业后,我跌跌撞撞走入了编程世界,虽然这年经历了很多坎坷,但也收获了许多。让我向你们介绍一下我刚毕业的这一年的编程之旅。 我与编程的故事开始…

前缀和(用于计算某数组区间的总和)

目录 前缀和思路:代码: 原题链接 前缀和 输入一个长度为 n 的整数序列。 接下来再输入 m 个询问,每个询问输入一对 l,r 。 对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。 输入格式 第一行包含两个整数 n 和 m 。 第…

SPRING BOOT发送邮件验证码(Gmail邮箱)

SPRING BOOT邮件发送验证码 一、Gmail邮箱配置 1、进入Gmail(https://mail.google.com) 2、打开谷歌右上角设置 3、启用POP/IMP 4、启用两步验证(https://myaccount.google.com/security) 5、建立应用程式密码 6、复制保存应用程式密码 二、代码 1、引入依赖 <d…

Java并发集合详解

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;在这篇博客中&#xff0c;咱们将一起深入探索Java中的并发集合。多线程编程是一个不可或缺的部分&#xff0c;它能让程序运行得更快&#xff0c;处理更多的任务。但同时&#xff0c;多线程也带来了一些挑战&…

服务器RAID管理之MegaRaid工具

一、简介 MegaCli是一款管理维护硬件RAID软件&#xff0c;可以通过它来了解当前raid卡的所有信息&#xff0c;包括 raid卡的型号&#xff0c;raid的阵列类型&#xff0c;raid 上各磁盘状态等等。通常&#xff0c;我们对硬盘当前的状态不太好确定&#xff0c;一般通过机房人员巡…

嵌入式(七)看门狗 | 看门狗工作模式 寄存器 时钟系统

文章目录 1 看门狗原理2 功能3 看门狗工作模式4 看门狗控制寄存器5 时钟系统 及其寄存器 1 看门狗原理 看门狗(Watch Dog Timer&#xff0c; WDT)是一种专门用于监测单片机程序运行状态的芯片组件。其实质是一个计数器&#xff0c;一般给看门狗初始一个比较大的数&#xff0c;…

前端效果 登入界面

文章目录 效果展示&#xff1a; 代码&#xff1a; <template><div class"login"><div class"section-1"><div class"card" mouseover"activeCard 1" mouseleave"activeCard 0" click"islogin…

Liunx安装FTP和SFTP

ftp端口&#xff1a;20/21 sftp端口&#xff1a;22 一、ftp 1、安装ftp yum install vsftpd #安装ftp 服务 &#xff08;1&#xff09;查看ftp服务的状态 命令&#xff1a;service vsftpd status PS&#xff1a;提示vsftpd: command not found&#xff0c;修改PATH的环境…

mybatis调用Oracle存储过程 带游标

目录 存储过程 调用测试 游标 Mapper.xml Mapper 调用测试 结果 存储过程 CREATE OR REPLACE PROCEDURE proc_test2(p_id IN NUMBER,v_cur OUT SYS_REFCURSOR,p_result_code OUT NUMBER,p_result_message OUT VARCHAR2) AS BEGINp_result_m…

实现在一个文件夹中找到特定名称特点格式的文件

当你要在一个文件夹中查找特定名称和格式的文件时&#xff0c;你可以使用 Python 的 os 和 fnmatch 模块。以下是一个简单的脚本示例&#xff0c;它可以在指定目录中查找文件&#xff1a; import os import fnmatchdef find_files(directory, pattern):"""在指…

你真的会用 Postman 吗?

1. 场景 提到 Postman&#xff0c;大部分的人可能只停留在使用 Postman「 模拟网络请求 」这单一功能上面。 事实上&#xff0c;Postman 的功能很强大&#xff0c;下面将罗列出几个比较少用&#xff0c;但实用的功能。 2. 抓包及拦截器 除了 Fiddler 和 Charles&#xff0c…

MySQL 8.0中新增的功能(四)

数据类型支持 MySQL现在支持在数据类型规范中将表达式用作默认值。这包括可以为以前无法分配默认值的BLOB、TEXT、GEOMETRY和JSON数据类型设置表达式作为默认值。 优化器 以下是新增的优化器改进&#xff1a; MySQL现在支持不可见索引。不可见索引在优化器中根本不被使用&a…

vmlinux, vmlinux.bin, bzImage; cmake的find_package(Clang)新增了哪些变量( 比较两次记录的所有变量差异)

vmlinux, vmlinux.bin, bzImage cd /bal/linux-stable/ file vmlinux #vmlinux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, BuildID[sha1]b99bbd9dda1ec2751da246d4a7ae4e6fcf7d789b, not stripped #文件大小 20MB, 19940148Bfile arc…

[ROS2 Foxy]#1.3 安装使用 turtlesim

官网教程: https://docs.ros.org/en/foxy/Tutorials/Turtlesim/Introducing-Turtlesim.html 1.turtlesim安装和使用 turtlesim是一个轻量级的模拟程序,用来学习ROS2 .通过turtlesim来介绍ROS2在一个基础的水平上都要做了那些事,以此让我们了解将来在真的 robot或者模拟器上使用…

【AI视野·今日Sound 声学论文速览 第四十期】Wed, 3 Jan 2024

AI视野今日CS.Sound 声学论文速览 Wed, 3 Jan 2024 Totally 4 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Auffusion: Leveraging the Power of Diffusion and Large Language Models for Text-to-Audio Generation Authors Jinlong Xue, Yayue De…

[VUE]5-TypeScript

目录 1 TypeScript 介绍2、安装3、快速上手4、TypeScript 常用类型4.1 类型标注的位置4.2 字符串、数字、布尔类型4.3 字面量类型4.4 ⭐interface 类型4.5 class 类型 ​&#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;…

Linux第10步_通过终端挂载和卸载U盘

学习完“通过终端查看U盘文件”后&#xff0c;我们需要接着学习“通过终端挂载和卸载U盘”。主要是挂载U盘&#xff0c;它的用处很大&#xff0c;目的是通过命令来访问U盘。由于U盘的名字有很多种&#xff0c;为了便于访问&#xff0c;我们把将U盘的第一分区挂载到udisk目录下&…

软件测试|深入解析Docker Run命令:创建和启动容器的完全指南

简介 Docker是一种流行的容器化平台&#xff0c;用于构建、分发和运行应用程序。其中一个最基本且重要的Docker命令是docker run&#xff0c;用于创建和启动容器。本文将详细解析docker run命令的用途、参数和示例&#xff0c;帮助您全面掌握创建和启动容器的过程。 docker r…

【LVGL】不同类型输入设备驱动接口的实现

官方提供了lv_port_indev_template.c文件&#xff0c;用以实现触摸屏、鼠标、键盘、编码器、按钮五种输入设备的接口程序。使用相应的设备&#xff0c;就需要去掉接口部分的注释&#xff0c;填充相应的初始化函数和读取函数。 LVGL支持多设备输入&#xff0c;只需要在lv_port_i…

Linux第13步_安装“vim编辑器”及应用介绍

学习“磁盘重新分区”后&#xff0c;嵌入式Linux系统环境搭建进入安装“vim编辑器”这个环节。vim编辑器可以用来修改文件&#xff0c;在后期使用中&#xff0c;会经常用到。 1、安装“vim编辑器” 输入“sudo apt-get install vim回车”&#xff0c;就可以执行安装“vim编辑…