前戏
在我们进行自动化测试的时候,很多网站都会都请求头做个校验,比如验证 User-Agent,看是不是浏览器发送的请求,如果我们不加请求头,使用脚本访问,默认User-Agent是python,这样服务器如果进行了校验,就会拒绝我们的请求。所以,在做自动化的时候,加上必要的请求头是一个好习惯。
请求头设置
使用requests库添加请求头很简单,只需要传一个headers参数就可以了
import requests base_url = 'http://httpbin.org' form_data = {"user": "zou", "pwd": '31500'} form_header = {"User-Agent": "Chrome/68.0.3440.106"} # 设置请求头,字典格式 r = requests.post(base_url + '/post', data=form_data, headers=form_header) print(r.url) # 打印URL print(r.status_code) print(r.text)
结果:
http://httpbin.org/post 200 { "args": {}, "data": "", "files": {}, "form": { "pwd": "31500", "user": "zou" }, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Content-Length": "18", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "Chrome/68.0.3440.106" }, "json": null, "origin": "112.10.81.210, 112.10.81.210", "url": "https://httpbin.org/post" }
查看请求头
前面我们已经设置好了请求头,我们可以使用r.request.headers来查看请求头
import requests base_url = 'http://httpbin.org' form_data = {"user": "zou", "pwd": '31500'} form_header = {"User-Agent": "Chrome/68.0.3440.106"} r = requests.post(base_url + '/post', data=form_data, headers=form_header) print(r.request.headers) # 查看请求头
结果:
{'User-Agent': 'Chrome/68.0.3440.106', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '18', 'Content-Type': 'application/x-www-form-urlencoded'}
响应时间
当我们测接口的时候,我们肯定是想知道接口的响应时间,requests 提供了获取响应时间的方法
res.elapsed
获取到的数据格式如下
0:00:00.030363 # 单位为微秒
可以直接转为毫秒
res.elapsed.microseconds/1000