在一组测试用例中,如果对应的接口相互独立,没有什么公用信息,则用requests
直接发起http
请求即可。
但如果请求之间有关联,例如存在登录操作,在后续的每一步操作中均需要保持登录状态,这种情况下用requests
则需要在每一步中都传入cookies
等登录相关的信息来完成请求。
为了简化这部分操作,可以应用requests
库中的session
对象来进行请求及存储。
session
session,即会话,它可以在一次会话之中长久的保存信息,保证此次会话中的所有请求均可应用此信息。建立方式为:
s=requests.session()
在发起请求上,它与requests类似,即
s.get('https://www.***.com')
s.post('https://www.***.com',json={"name":"1"})
设置headers
目前实现了在headers
中保存token
的功能,下方为示例代码。
- 在测试用例类前,建立会话对象。
s=requests.session()
- 建立测试类
class Test_session():
def test_one(self,url):
url = 'https://www.***.com/1'
params = {"class_id": "abc"}
s.headers["Authorization"]="Bearer token"
res = s.get(url=url, params=params)
assert res.status_code == 200
def test_two(self,url):
url = 'https://www.***.com/2'
params={"num":1}
res=s.get(url=url,params=params)
print(s.headers)
assert res.status_code==200
在这个测试类中,test_one
测试用例中请求的接口必须带有token
,所以在建立的session
对象的headers
属性中传入token
值。
然后在test_two
测试用例中打印headers
,会看到在test_one
中传入的token
值,证明在本次会话中,headers
中的token
始终被保存,可以应用于当前会话的所有测试用例中。
session
的其它用法以及cookies
的读取还需要进一步的学习,我们下次更新见~
自我记录,有错误欢迎指正~
网友评论