1.4 自动化接口测试cookie与session

437 阅读1分钟

1、cookie与session的不同

cookie数据存放在客户的浏览器上,session数据放在服务器上
cookie存放在客户端,安全性不是很高,容易被窃取
session存放在服务器,每一次访问都会占用服务器的空间,所以性能较低
cookie保存数据最多4K,session没有限制

2、获取cookie请求,例子:

import requests

r = requests.get("https://www.baidu.com/")
for a in r.cookies:
   print(a.name, a.value)

3、简单发送cookie,例子:

import requests

url = "http://httpbin.org/get?"
cookies = {"aaa""bbb"}
r = requests.get(url, cookies=cookies)
print(r.text)

4、复杂发送cookie,例子:

import requests

url = "http://httpbin.org/get?"
s = requests.session()
c = requests.cookies.RequestsCookieJar()
c.set('c-name', 'c-value', path='/xxx/uuu', domain='.test.com')
s.cookies.update(c)
print(s.cookies)
r = requests.get(url, cookies=c)
print(r.text)

5、保持会话同步,例子:

import requests

url_one = "http://httpbin.org/get?"
url_two = "http://httpbin.org/cookies/set/sessioncookie/123456789"
r = requests.get(url_one)
print(r.text)
print("----------------------------------------------------------")
s = requests.session()
s.get(url_two)
r = s.get(url_one)
print(r.text)

6、保存会话信息,例子:

url = "http://httpbin.org/get?"

header1 = {"test1""111"}
header2 = {"test2""222"}
s = requests.session()             #初始化一个session对象
s.headers.update(header1)          #已经存在于服务中的信息
r = s.get(url, headers=header2)    #发送新的信息
print(r.text)

7、删除已存在的会话信息,保存为None,例子:

import requests

url = "http://httpbin.org/get?"
header1 = {"testA""AAA"}
header2 = {"testB""BBB"}
s = requests.session()
s.headers.update(header1)
r = s.get(url, headers=header2)
print(r.text)
print("----------------------")
s.headers['testA'] = None
r1 = s.get(url, headers=header2)
print(r1.text)

8、提供默认数据,例子:

import requests

s = requests.Session() 
s.auth = ("user""pass")  #授权
s.headers.update({"x-test1": "true"})
t = s.get('http://httpbin.org/headers', headers={'x-test2''true'})
print(t.text)