python接口自动化6-参数化关联
前言
接口中我们经常需要用到参数关联,比如,登录token,需要传给后面的参数使用,又比如要查看某个商品需要将商品的id传入下一个接口使用。
等等,所以我们必要学会 re 正则获取,或者返回json获取,个人认为 re 挺实用的。
一、禅道-操作关闭需求为实例
1、手工操作抓包,可以看到下图一个 uid 每次操作关闭需求都会不一样,即为动态参数。那我们怎样知道这个 uid 在哪里获取呢?

2、查看上一个接口中,不难发现其 uid 就在上一个接口中。

3、既然知道了 uid 在上一个接口中,那么我们就可以通过 re 提取。
步骤:
①发送第一个接口,re 提取出 uid。
②下一个接口,在传参的时候,格式化输出管理该参数,发送请求即可,如下:
import re
import requests
s = requests.session() # 禅道登录
url = 'http://127.0.0.1:81/zentao/user-login-L3plbnRhby8=.html'
par = 'account=admin&password=e10adc3949ba59abbe56e057f20f883e&keepLogin%5B%5D=on&referer=%2Fzentao%2F'
r = s.post(url, params=par) # 查需求的 kuid 接口
r2 = s.get('http://127.0.0.1:81/zentao/story-close-2.html?onlybody=yes')
b = r2.content.decode('utf-8')
kuid = re.findall('kuid = "(.+?)"', b) # 注意编码格式,否则乱码
print('获取的kuid为:%s' % kuid[]) # kuid[]则是提供下一个接口关联的参数 # 关闭需求,%s 格式化输出,关联上面接口获取的kuid
url = 'http://127.0.0.1:81/zentao/story-close-4.html?onlybody=yes'
par1 = 'closedReason=done&duplicateStory=&childStories=&comment=&uid=%s' % kuid[]
print(par1)
r3 = s.post(url, params=par1)

二、re 常用三种方法
1、取中间:(.+?)
import re
st = "我是一只小小鸟,怎么飞也飞不高?" # 取中间“小鸟”,取出来的是list。
s = re.findall('小(.+?),', st)
print(s[])

2、取尾:(.+?)$
import re
st = "我是一只小小鸟,怎么飞也飞不高?" # 取尾,逗号后面的全部。
s = re.findall(',(.+?)$', st)
print(s[])

3、取前:^(.+?)
import re
st = "我是一只小小鸟,怎么飞也飞不高?" # 取前,逗号前面的全部。
s = re.findall('^(.+?),', st)
print(s[])

你学会了吗?欢迎来QQ交流群:482713805
python接口自动化6-参数化关联的更多相关文章
- python接口自动化23-token参数关联登录(登录拉勾网)
前言 登录网站的时候,经常会遇到传token参数,token关联并不难,难的是找出服务器第一次返回token的值所在的位置,取出来后就可以动态关联了 登录拉勾网 1.先找到登录首页https://pa ...
- python接口自动化7-参数关联
前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 (博客园的登录机制已经变了,不能用账号和密码登录了 ...
- python接口自动化26-参数关联和JSESSIONID(上个接口返回数据作为下个接口请求参数)
前言 参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了. 最常见的案例就是网站的登录案例,很多网站的登录并不仅 ...
- python接口自动化7-参数关联【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E ...
- python接口自动化-token参数关联登录(二)
原文地址https://www.cnblogs.com/yoyoketang/p/9098096.html 原文地址https://www.cnblogs.com/yoyoketang/p/68866 ...
- python接口自动化-token参数关联登录(登录拉勾网)
前言 登录网站的时候,经常会遇到传token参数,token关联并不难,难的是找出服务器第一次返回token的值所在的位置,取出来后就可以动态关联了 登录拉勾网 1.先找到登录首页https://pa ...
- Python接口自动化基础---session关联接口
登录一个系统之后,如果需要在登录状态下进行一些操作,那么需要怎样保持会话呢? 可以使用Session() 举例如下: import requests s=requests.Session() url1 ...
- python接口自动化-参数化
原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...
- python接口自动化 -参数关联(一)
原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...
- python接口自动化8-参数化
前言 前面一篇实现了参数的关联,那种只是记流水账的完成功能,不便于维护,也没什么可读性,接下来这篇可以把每一个动作写成一个函数,这样更方便了. 参数化的思维只需记住一点:不要写死 (由于博客园登录机制 ...
随机推荐
- SQL Server查看login所授予的具体权限
在SQL Server数据库中如何查看一个登录名(login)的具体权限呢,如果使用SSMS的UI界面查看登录名的具体权限的话,用户数据库非常多的话,要梳理完它所有的权限,操作又耗时又麻烦,个人十分崇 ...
- qq cookie
qq cookie from selenium import webdriver from selenium.webdriver import ActionChains import time, re ...
- BOM的初级理解
1.什么是BOM,BOm有什么作用? BOM和DOM.ES是JavaScript的重要三个组成部分: 其中BOM是专门操作浏览器的API,其实他就是一种兼容性问题,这其中问题比较大就是IE浏览器,谁叫 ...
- fjnu2019第二次友谊赛 F题
### 题目链接 ### 题目大意: 一开始手上有 z 个钱币,有 n 天抉择,m 种投资方案,在每天中可以选择任意种投资方案.任意次地花费 x 个钱币(手上的钱币数不能为负),使得在 n 天结束后, ...
- C++如何使用宏定义来简化代码性能测试 | cpp macro like function to implement a performance profiler
本文首发于个人博客https://kezunlin.me/post/65dc693d/,欢迎阅读最新内容! cpp macro like function to implement a perform ...
- mysql 读写分离(手动和自动方法)
使用sqlalchemy 使mysq自动读写分离: 代码如下: from flask import Flask from flask_sqlalchemy import SQLAlchemy, Sig ...
- C sharp #005# 对象与对象变量
饮水思源:金老师的自学网站 索引 自动装箱 “只读”对象 设定启动窗体 ShowDialog与Show 自动装箱 基本类型的变量值可以自动装箱到一个object对象中, 反过来,object对象也可以 ...
- DDL--DML
DDL 数据定义语言 DDL是基于数据表级别的操作的统称,对数据表的 创建 删 改 删除 drop -- 删除表,记录日志 truncate -- 删除表中的全部数据,不删除表,不记录日志 修改 al ...
- springaop\ cglib\ AspectJ
元编程 vs 动态代理 vs isa代理 springaop的底层实现有两种,一种是jdk的动态代理,另一种是cglib,springaop没有用到aspectj,只是借鉴了它并添加了aspectj风 ...
- 可能是最详细的UMD模块入门指南
学习UMD 介绍 这个仓库记录了一些关于javascript UMD模块规范的demo,对我学习UMD规范有了很大帮助,希望也能帮助到你. 回顾 之前也写了几篇关于javascript模块的博客,链接 ...