Requests04--关联
res=requests.post(url, cookies)
什么是关联接口
①多个接口之间存在依赖关系
<1>让你测试登录成功后的页面,登录成功不是你测
<2>让你测试退单(取消订单)接口,但是下单不是你测
<3>业务流程测试:测试下单后,退单功能正确性
登录时的关联接口测试
①http无状态
<1>上一个网页的数据,只传递一次给下一个网页(接口传参),之后数据丢失
②http无状态解决方案
<1>cookie/cookies
2>在客户端存储数据,用于在多个网页/接口间共享数据
3>网页中“记住账号和密码”,很多都是使用了cookie
<2>session(会话)
1>在服务器存储数据,用于在多个网页/接口间共享数据
2>登录之后,一直保持在线状态,很多时候使用了session
<3>cookie和session也可以混合使用
如何关联登录接口/保持会话/会话保持
①给登录接口发送请求,获得响应头,在响应头中获得set-cookie(其中存着会话编号sessionid),取出来要关联的值(比如sessionid)
<1>res1=requests.post(被依赖url)
<2>res1.cookies用于获得前一个接口(服务器)发给客户端的cookie值
②给被测接口发请求,将上一步的关联值当做参数(很多时会放在请求头的cookie中)发过去
<2>res=requests.post(被测url, cookies=上一接口的cookie值)
关联接口
'''关联接口
被测接口:.../apitest/refer/info/
功能:查询信息接口
方法:get方法
无参
关联接口:/apitest/refer/login/
功能:登录接口
方法:post方法
参数:username、password
数据库表:apitest.users'''
import requests
# url='http://192.168.237.129/apitest/refer/info/'
# res=requests.get(url)
# print(res.text) #缺少会话,缺少关联
url='http://192.168.237.129/apitest/refer/login/'
args={'username':'admin','password':'123456'}
res=requests.post(url,args)
# print(res.text)
# print(res.headers['set-cookie']) #获得响应头中的cookie
# print(res.cookies) #获得响应的cookie值,更方便
cookie=res.cookies #被依赖接口的cookie
url='http://192.168.237.129/apitest/refer/info/'
res=requests.get(url,cookies=cookie)
print(res.text)
实现会话保持的自动关联
import requests
s=requests.session() #创建会话(同一个客户端在进行连续的多次请求,自动传递cookie、sessionid、token)
url='http://192.168.237.129/apitest/refer/login/'
args={'username':'admin','password':'123456'}
s.post(url,args)
url='http://192.168.237.129/apitest/refer/info/'
res=s.get(url)
print(res.text)
本文来自博客园,作者:暄总-tester,转载请注明原文链接:https://www.cnblogs.com/sean-test/p/15506952.html

浙公网安备 33010602011771号