十七單元 requests接口測試
????1.介紹:
????????Requests是一個(gè)很實(shí)用的Python HTTP客戶端庫,用來做接口測試
????????*做接口測試前需要pip install requests
????2.get請(qǐng)求
????????一棚菊、無參請(qǐng)求
????????????????r=requests.get('http://www.baidu.com')
????????二珊楼、get傳參
????????????????payload={'key1':'value1','key2':'value2','key3':None}
????????????????r=requests.get('http://www.baidu.com ',params=payload)
????3.post請(qǐng)求
????????payload={'key1':'value1','key2':'value2'}
????????r=requests.post("http://httpbin.org/post",data=payload)
????4.requests響應(yīng)
? ? ? ? ? ?r.status_code響應(yīng)狀態(tài)碼
????????????r.heards響應(yīng)頭
????????????r.cookies響應(yīng)cookies
????????????r.text響應(yīng)文本
????????????r.encoding當(dāng)前編碼
????????????r.content以字節(jié)形式(二進(jìn)制)返回
????5.requests擴(kuò)充
????????????1.添加等待時(shí)間
????????????????????requests.get(url,timeout=1)#超過等待時(shí)間則報(bào)錯(cuò)
????????????2.添加請(qǐng)求頭信息
????????????????????requests.get(url,headers=headers)#設(shè)置請(qǐng)求頭
????????????3.添加文件
????????????????????requests.post(url,files=files)#添加文件
????6.requests+pytest+allure
????????1.步驟如下:
????????????讀取文件中的數(shù)據(jù)
????????????requests拿到數(shù)據(jù)請(qǐng)求接口返回狀態(tài)碼
????????????通過斷言驗(yàn)證返回狀態(tài)碼和200對(duì)比
????????????生成allure的測試報(bào)告
????????也可以這樣說:
????????????dataDemo(存放數(shù)據(jù))>> readDemo(讀取數(shù)據(jù))
????????????useRequests(發(fā)送請(qǐng)求)>>testDemo(生成報(bào)告)
????????2.讀取csv數(shù)據(jù)流程
????????????1.通過excel另存為csv
????????????2.讀取
????????????????import csv
????????????????classReadCsv():
????????????????defreadCsv(self):
????????????????item= []
????????????????rr=csv.reader(open("../dataDemo/123.csv"))
????????????????????forcsv_iinrr:
????????????????????????item.append(csv_i)
????????????????????????item=item[1:]
????????????????????????returnitem
????????????3.requests請(qǐng)求接口返回狀態(tài)碼
????????????????import requests
????????????????fromreadDataDemo.readcsvimportReadCsv
????????????????r=ReadCsv()
????????????????????????ee=r.readCsv()
????????????????????????# print(ee)
????????????????????????classRequestCsv():
????????????????????????def requestsCsv(self):
????????????????????????????item= []
????????????????????????????????forcsv_iinee:
????????????????????????????????if csv_i[2] =="get":
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rr=requests.get(csv_i[0],params=csv_i[1])
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?item.append(rr.status_code)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?else:
????????????????????????????????????????rr=requests.post(csv_i[0],data=csv_i[1])
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? item.append(rr.status_code)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?returnitem
????????????????4.生成測試報(bào)告
????????3.讀取excel文件流程
????????????1.新建excel文件
????????????2.讀取數(shù)據(jù),安裝pip install openpyxl
????????????3.requests請(qǐng)求接口返回狀態(tài)碼
????????????4.生成測試報(bào)告