做测试的时候,可能某项客户端要发送的数据值来自上次客户端的响应
例如:
对Web Tours登录过程进行抓包
登录时,客户端发送的userSession数据来自之前服务器的返回值,每次都不一样
由此,就造成了参数关联接口
解决方法:使用正则表达式,截取返回值中的所需要的数据
具体:服务器先向客户端发送in-home,获取到服务器返回信息
使用正则表达式,截取返回信息有用部分
将获取到的数据和其他数据作为发送数据,再次发送到服务器
获得服务器成功登陆界面
# 导包
import requests
import re
#接口地址
url2 = "http://localhost:1080/WebTours/nav.pl?in=home"
s = requests.session()# 为了保持和下一个接口建立相同的连接通道
res = s.get(url2)
# print(res.text)
usersession = re.findall(r'name=userSession value=(.+?)>',res.text)
print(usersession)
# para2 ={"in":"home"}
# 接口地址
url ="http://localhost:1080/WebTours/login.pl"
para ={"userSession":usersession[0],"username":"jojo","password":"bean","login.x":"54","login.y":"11","login":"Login","JSFormSubmit":"off"}
r = s.post(url,data=para)
# 发送post请求
# r = requests.post(url,data=para)
print(r.text)