前言
在接口測試中我們經常是需要一個登陸token,或者獲取其他用到的參數來關聯下一個接口用到的參數。這里介紹一些本人常用的方法。
一、簡介
不過在哪里我們也是能實現自動化api測試的,我們都知道token一般都會在這幾個地方:
1.返回參數的token;
2.返回頭部信息中;
3.上一個頁面中;
二、取 token 常用方法
1.在返回參數中,如json:
R_json = { "code": 200, "message": "登錄成功", "token": "ef135bce4284s45ab5967fdf22e81fa2" } print(R_json["token"])
2.在返回參數中還有,json嵌套list、json:
# 多層嵌套取token值 R_json = {"jjson": [ { "code": 200, "message": "賬號或密碼錯誤", "token": "" }, {"code": 200, "message": "登錄成功", "token": "ef135bce4284s45ab5967fdf22e81fa2" } ]} print(R_json["jjson"][1]["token"])
3.在返回參數中,是html或者是raw文本顯示的我們可以通過正則取到值:
常用的正則有以下三種:
①取中間:xxx(.+?)xxx
②取后面:xxx(.+?)$
③取前面:^(.+?)xxx
import requests import re # html 中常用到 re 取值 url = 'https://www.baidu.com' s = requests.get(url) res = s.content.decode('utf-8') token = re.findall('href=//(.+?) name', res) # 取中間 print(token) # 取到的是 list print(token[0]) # 所以我們一般[0],取第一個即可。
4.在響應頭部中
url = 'https://www.baidu.com/' s = requests.get(url) print(s.headers) # 如果token在返回頭部信息中我們可以這樣獲取 print(s.headers["Cache-Control"]) token = re.findall("no-cache, (.+?), ", s.headers["Cache-Control"]) print("token是:"+token[0])
看到了此,是不是覺得re正則還是很實用的呢?趕緊去隨便請求個接口拿到一個你想要的值吧!!!
歡迎來QQ交流群:482713805