Cookie简介
- Cookie使用场景
- 在接口测试过程中,很多情况下,需要发送的请求附带cookies,才会得到正常的响应的结果。所以使用python+requests进行接口自动化测试也是同理,需要在构造接口测试用例时加入cookie。
- 传递Cookie的两种方式
- 通过请求头信息传递
- 通过请求的关键字参数cookies传递
1. 自定义header
import requests
def test_demo():
url = "https://httpbin.testing-studio.com/cookies"
header = {
"Cookie": "Insane_Cookie",
"User-Agent": "Insane"
}
r = requests.get(url, headers = header, verify=False)
print(r.request.headers)
test_requests.py::test_demo PASSED [100%]
{'User-Agent': 'Insane', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'Insane_Cookie'}
2. 使用cookies参数
import requests
def test_demo1():
url = "https://httpbin.testing-studio.com/cookies"
header = {
"User-Agent": "Insane"
}
cookie_data = {
"Insane": "Loafer",
"Tiger": "Number1"
}
r = requests.get(url, headers = header, cookies = cookie_data, verify=False)
print(r.request.headers)
test_requests.py::test_demo1 PASSED [100%]
{'User-Agent': 'Insane', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'Insane=Loafer; Tiger=Number1'}
认证体系
1. http basic
- 基本认证(英语: Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供用户名和密码的一种方式。
GET /private/index.html HTTP/1.0
Host: localhost
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
- http basic 实战
- 使用charles抓包查看此类请求
- 在自动化测试的过程中,可以使用auth参数传递认证信息
import requests
from requests.auth import HTTPBasicAuth
def test_auth():
r = requests.get(
url="https://httpbin.testing-studio.com/basic-auth/insane/123",
auth = HTTPBasicAuth("Insane", "123"),
verify = False
)
print(r.request.headers)
test_requests.py::test_auth PASSED [100%]
{'User-Agent': 'python-requests/2.24.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic SW5zYW5lOjEyMw=='}