在做接口自动化过程中, 我们常常会用到用户登录后进行接口测试, 那么我们如何进行获取 header 中的 session 呢. 我们现在看一下以下代码:
- def session(DATA):
- # 通过配置文件获得 url 地址, 也可以写死在这里
- Url = ConnUrl.getUrl()
- # 声明 request 的请求类型, 是 JSON 还是 text
- header = {
- 'content-type':'application/octet-stream'
- }
- # 发送登陆请求
- post = requests.post(Url, data=DATA, headers=header)
- # 通过 post 方法中的 headers 获取 session, 并且按照 "分号进行切割, 取第一位的数据"
- jsessionid = post.headers['Set-Cookie'].split(';')[0]
- # 返回 session
- return jsessionid
- # 关闭链接
- post.close
大家看, 其实我们通过 python 的 requests 方法就可以很轻松的获得用户的 session, 在测试其他接口时, 我们把 session 插入到 header 里即可, 如下:
- def posttest(jsessionid)
- # 定义接口的请求地址
- url=http://IP/login http://ip/login
- # 测试数据要用字典的方式定义
- data={
- '参数 1':'测试数据 1','参数 2':'测试数据 2'
- }
- # 定义 header 关键内容, header 依然是字典的方式
- header={
- 'content-type':'application/json',
- 'session':jsessionid
- }
- # 发送请求
- post = requests.post(Url, data=DATA, headers=header)
- # 获取响应结果中的文本
- respond = post.text
- # 断言相应结果是否与预期结果想一致
- assert '预期结果' in respond
来源: http://www.bubuko.com/infodetail-2973744.html