request全局觀
請求:request.get() request.post() request.delete() request.put() request.request()最核心的方法
響應(yīng):rep = request.request()
rep.text 返回字符串 rep.content返回字節(jié)格式的數(shù)據(jù) rep.json()返回字典格式的數(shù)據(jù)
rep.status_code返回狀態(tài) rep.cookies返回cookies rep.encoding返回編碼格式
rep.headers 返回響應(yīng)頭數(shù)據(jù)
請求方式
get post delete put
請求參數(shù)類型 鍵值對 JSON格式 文件格式
接口的參數(shù)習(xí)慣性使用data 他是一個(gè)字典類型 data = {? 參數(shù)之間使用逗號分隔 }

post方式傳參
字符串的拼接 雙引號 雙加號
發(fā)送post請求(data和json只需要傳一個(gè))
線性腳本 NO 使用pytest用例管理框架 有默認(rèn)規(guī)則
py文件必須以test_開頭或者test_結(jié)尾
類名必須以Test開頭? 測試用例必須以test_開頭
如何運(yùn)行 ?
if _name_ == '_main_' :
? ? pytest.main(['-vs'])
設(shè)置全局變量:全局變量通過類名來訪問
注意事項(xiàng):get請求通過params來傳遞參數(shù)
post請求通過json或者data傳參 他們有什么區(qū)別?
data:?
數(shù)據(jù)報(bào)文:dict字典類型的,那么默認(rèn)情況下請求頭:application/x-www-form-urlencoded以form表單的方式傳參,格式:a=1&b=2&c=3
數(shù)據(jù)報(bào)文:str類型,那么默認(rèn)情況下:text/plain(如果是字典格式的需要轉(zhuǎn)換成str格式傳參)
json
數(shù)據(jù)報(bào)文:不管是dict還是str類型,默認(rèn)都是application/json,格式{"a":1,"b":2}
json.dumps(data) 把字典格式的數(shù)據(jù)轉(zhuǎn)換為str格式? 序列化
json.loads(data) 把str格式轉(zhuǎn)換為字典格式? 反序列化
data只能傳簡單的只有鍵值對的dict或者str json一般只能傳dict格式(簡單的復(fù)雜的都可以)
文件上傳? 用files傳參
不能直接給圖片路徑 open(r”E:\shu.png“,”rb“)
需要帶請求頭的接口 正則表達(dá)式獲取
re.search()
沒有請求頭的返回html文本 所以響應(yīng)數(shù)據(jù)轉(zhuǎn)換json的時(shí)候python報(bào)錯(cuò)

cookie鑒權(quán)?

常用的方式session方式鑒權(quán)cookie 引出接口自動(dòng)化框架封裝的第一步,統(tǒng)一請求方式

