小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

python接口自動(dòng)化測(cè)試(四)

 米老鼠的世界 2021-02-26

  掌握了前面幾節(jié)的的內(nèi)容,就可以做一些簡(jiǎn)單的http協(xié)議接口的請(qǐng)求發(fā)送了,但是這些還不夠。HTTP協(xié)議是一個(gè)無(wú)狀態(tài)的應(yīng)用層協(xié)議,也就是說(shuō)前后兩次請(qǐng)求是沒(méi)有任何關(guān)系的,那如果我們測(cè)試的接口之前有相互依賴關(guān)系怎么辦呢(比如我要在博客園發(fā)文章,是需要先登錄的),這時(shí)我們就要用到cookie和session技術(shù)來(lái)保持客戶端與服務(wù)器端連接的狀態(tài),這也就是本節(jié)要介紹的內(nèi)容:

 

一、Cookie:

1、獲取cookie:

復(fù)制代碼
# -*- coding:utf-8 -*-
#獲取cookie
import requests
import json

url = "https://www.baidu.com/"
r = requests.get(url)

#將RequestsCookieJar轉(zhuǎn)換成字典
c = requests.utils.dict_from_cookiejar(r.cookies)

print r.cookies
print c

for a in r.cookies:
    print a.name,a.value
復(fù)制代碼

輸出:

<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
{'BDORZ': '27315'}
BDORZ 27315

 

二、發(fā)送cookie:

復(fù)制代碼
# -*- coding:utf-8 -*-
#發(fā)送cookie到服務(wù)器
import requests
import json

host = "http:///"
endpoint = "cookies"

url = ''.join([host,endpoint]) #方法一:簡(jiǎn)單發(fā)送 # cookies = {"aaa":"bbb"} # r = requests.get(url,cookies=cookies) # print r.text #方法二:復(fù)雜發(fā)送 s = requests.session() c = requests.cookies.RequestsCookieJar() c.set('c-name','c-value',path='/xxx/uuu',domain='.test.com') s.cookies.update(c)
復(fù)制代碼

 

 

二、Session

1、保持會(huì)話同步:

復(fù)制代碼
# -*- coding:utf-8 -*-
import requests
import json

host = "http:///"
endpoint = "cookies"

url = ''.join([host,endpoint])
url1 = "http:///cookies/set/sessioncookie/123456789"

r = requests.get(url)
print r.text
print "------"

s = requests.session() #初始化一個(gè)session對(duì)象 s.get(url1) #cookie的信息存在了session中 r = s.get(url) print r.text
復(fù)制代碼

輸出:

復(fù)制代碼
{
  "cookies": {}
}

------
{
  "cookies": {
    "sessioncookie": "123456789"
  }
}
復(fù)制代碼

 

2、保存會(huì)話信息:

復(fù)制代碼
# -*- coding:utf-8 -*-
import requests
import json

host = "http:///"
endpoint = "headers"

url = ''.join([host,endpoint])

header1 = {"testA":"AAA"}
header2 = {"testB":"BBB"}

s = requests.session()    #初始化一個(gè)session對(duì)象
s.headers.update(header1)   #已經(jīng)存在于服務(wù)中的信息
r = s.get(url,headers=header2) #發(fā)送新的信息

print r.text
復(fù)制代碼

輸出:

復(fù)制代碼
{
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Host": "", 
    "Testa": "AAA", 
    "Testb": "BBB", 
    "User-Agent": "python-requests/2.18.1"
  }
}
復(fù)制代碼

 

3、刪除已存在的會(huì)話信息,保存為None

復(fù)制代碼
# -*- coding:utf-8 -*-
import requests
import json

host = "http:///"
endpoint = "headers"

url = ''.join([host,endpoint])

header1 = {"testA":"AAA"}
header2 = {"testB":"BBB"}

s = requests.session()    #初始化一個(gè)session對(duì)象
s.headers.update(header1)   #已經(jīng)存在于服務(wù)中的信息
r = s.get(url,headers=header2) #發(fā)送新的信息

print r.text

print '--------'

s.headers['testA'] = None   #刪除會(huì)話里的信息testA
r1 = s.get(url,headers = header2)
print r1.text
復(fù)制代碼
復(fù)制代碼
{
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Host": "", 
    "Testa": "AAA", 
    "Testb": "BBB", 
    "User-Agent": "python-requests/2.18.1"
  }
}

--------
{
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Host": "", 
    "Testb": "BBB", 
    "User-Agent": "python-requests/2.18.1"
  }
}
復(fù)制代碼

 

4、提供默認(rèn)數(shù)據(jù):

復(fù)制代碼
s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
s.get('http:///headers', headers={'x-test2': 'true'})
復(fù)制代碼

 

 

 

參考:

http://docs./en/master/user/quickstart/#cookies

http://docs./en/master/user/advanced/#session-objects

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多