requests接口測試

一酷勺、介紹

Requests是一個很實用的Python HTTP客戶端庫,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到右犹,Requests是Python語言的第三方的庫丹擎,專門用于發(fā)送HTTP請求

二、前提

pip install requests

三镰踏、get的請求

3.1 GET無參請求

r=requests.get('http://www.baidu.com')

3.2 GET傳參

payload={'key1':'value1','key2':'value2','key3':None}r=requests.get('http://www.baidu.com ',params=payload)

案例:測試聚合數(shù)據(jù)

代碼

importrequestsclassUseRequestClass():#get傳參的第一種方式defXWTTMethod(self):r=requests.get("http://v.juhe.cn/toutiao/index?type=guonei&key=4b72107de3a197b3bafd9adacf685790")print(r.text)#get傳參的第二種方式defXWTTMethod(self):params={"type":"guonei","key":"4b72107de3a197b3bafd9adacf685790"}r=requests.get("http://v.juhe.cn/toutiao/index",params=params)print(r.text)

四函筋、post請求

類似python中的表單提交

payload={'key1':'value1','key2':'value2'}r=requests.post("http://httpbin.org/post",data=payload)

案例:測試聚合數(shù)據(jù)

代碼

importrequestsclassUseRequestClass():defXWTTPostMethod(self):params={"type":"guonei","key":"4b72107de3a197b3bafd9adacf685790"}r=requests.post("http://v.juhe.cn/toutiao/index",params=params)#print(r.status_code)returnr.status_code

五、Requests響應(yīng)

r.status_code? ? ? ? 響應(yīng)狀態(tài)碼r.heards? ? ? ? ? ? 響應(yīng)頭r.cookies? ? ? ? ? ? 響應(yīng)cookiesr.text? ? ? ? ? ? ? 響應(yīng)文本r. encoding? ? ? ? ? 當(dāng)前編碼r. content? ? ? ? ? 以字節(jié)形式(二進制)返回

最常用的是根據(jù)響應(yīng)狀態(tài)碼判斷接口是否連通奠伪,經(jīng)常用于做接口中斷言判斷

六跌帐、Request擴充

1.添加等待時間requests.get(url,timeout=1)#超過等待時間則報錯2.添加請求頭信息requests.get(url,headers=headers)#設(shè)置請求頭3.添加文件requests.post(url,files=files)#添加文件

文件傳輸

url='http://httpbin.org/post'files={'file':open('report.xls','rb')}r=requests.post(url,files=files)

七、requests+pytest+allure

7.1 流程如下

讀取文件中的數(shù)據(jù)requests拿到數(shù)據(jù)請求接口返回狀態(tài)碼通過斷言驗證返回狀態(tài)碼和200對比生成allure的測試報告

7.2 模塊總覽

dataDemo(存放數(shù)據(jù))>> readDemo(讀取數(shù)據(jù))useRequests(發(fā)送請求)>>testDemo(生成報告)


7.3 讀取csv文件流程

7.3.1 存儲數(shù)據(jù)(csv)

通過excel另存為csv即可绊率。


7.3.2 讀取數(shù)據(jù)(readDemo)


代碼展示

importcsvclassReadCsv():defreadCsv(self):item=[]rr=csv.reader(open("../dataDemo/123.csv"))forcsv_iinrr:item.append(csv_i)item=item[1:]returnitem

7.3.3 request請求接口返回狀態(tài)碼

image-20210129190121055.png

代碼展示

importrequestsfromreadDataDemo.readcsvimportReadCsvr=ReadCsv()ee=r.readCsv()# print(ee)classRequestCsv():defrequestsCsv(self):item=[]forcsv_iinee:ifcsv_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

7.3.4 pytest斷言設(shè)置并結(jié)合allure生成測試報告

image-20210129190143643.png

代碼展示

importpytest,os,allurefromuserequests.userequestsDemo.requestscsvimportRequestCsvr=RequestCsv()ee=r.requestsCsv()print(ee)classTestClass02():deftest001(self):forcodeinee:assertcode==200if__name__=='__main__':pytest.main(['--alluredir','report/result','test_02csv.py'])split='allure '+'generate '+'./report/result '+'-o '+'./report/html '+'--clean'os.system(split)

7.3.5 測試報告展示

image-20210129190203625.png

7.4 讀取excle文件流程

7.4.1 存儲數(shù)據(jù)(xlsx)

image.png

7.4.2 讀取數(shù)據(jù)(readDemo)

安裝openpyxl:pip install openpyxl

fromopenpyxlimportload_workbookclassReadxcel():defgetTestExcel(self):# 打開表workbook=load_workbook("G:\python\pythonProject\pytest05a\\requestdemo\\a.xlsx")# 定位表單sheet=workbook['Sheet1']print(sheet.max_row)# 3 行print(sheet.max_column)# 3 列test_data=[]# 把所有行的數(shù)據(jù)放到列表中foriinrange(2,sheet.max_row+1):sub_data={}# 把每行的數(shù)據(jù)放到字典中forjinrange(1,sheet.max_column+1):sub_data[sheet.cell(1,j).value]=sheet.cell(i,j).value? ? ? ? ? ? test_data.append(sub_data)# 拼接每行單元格的數(shù)據(jù)returntest_datat=Readxcel()f=t.getTestExcel()print(f)

7.4.3 request請求接口返回狀態(tài)碼

importrequestsfromrequestdemo.readexcelimportReadxcelclassGetStatusCode():defgetStatusCode(self):t=Readxcel()f=t.getTestExcel()item=[]forexcel_iinf:ifexcel_i["method"]=="get":rr=requests.get(excel_i["url"],params=excel_i["params"])item.append(rr.status_code)else:rr=requests.post(excel_i["url"],data=excel_i["params"])item.append(rr.status_code)returnitemprint(GetStatusCode().getStatusCode())

7.4.4 pytest斷言設(shè)置并結(jié)合allure生成測試報告

importallure,pytest,osfromrequestdemo.getStatusCodeimportGetStatusCodeget=GetStatusCode()statusCodes=get.getStatusCode()classTestReadExcel():deftestReadExcel(self):forcodeinstatusCodes:assertcode==200if__name__=="__main__":# 生成測試報告jsonpytest.main(["-s","-q",'--alluredir','report/result','testreadexcel.py'])# 將測試報告轉(zhuǎn)為html格式split='allure '+'generate '+'./report/result '+'-o '+'./report/html '+'--clean'os.system(split)

7.4.5:測試報告展示

作者:Anwfly

鏈接:http://www.reibang.com/p/75327d2a99af

來源:簡書

著作權(quán)歸作者所有谨敛。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處滤否。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脸狸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子藐俺,更是在濱河造成了極大的恐慌炊甲,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欲芹,死亡現(xiàn)場離奇詭異卿啡,居然都是意外死亡,警方通過查閱死者的電腦和手機菱父,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門颈娜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人滞伟,你說我怎么就攤上這事揭鳞。” “怎么了梆奈?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵野崇,是天一觀的道長。 經(jīng)常有香客問我亩钟,道長乓梨,這世上最難降的妖魔是什么鳖轰? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮扶镀,結(jié)果婚禮上蕴侣,老公的妹妹穿的比我還像新娘。我一直安慰自己臭觉,他們只是感情好昆雀,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蝠筑,像睡著了一般狞膘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上什乙,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天挽封,我揣著相機與錄音,去河邊找鬼臣镣。 笑死辅愿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的忆某。 我是一名探鬼主播点待,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼褒繁!你這毒婦竟也來了亦鳞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤棒坏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后遭笋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坝冕,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年瓦呼,在試婚紗的時候發(fā)現(xiàn)自己被綠了喂窟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡央串,死狀恐怖磨澡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情质和,我是刑警寧澤稳摄,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站饲宿,受9級特大地震影響厦酬,放射性物質(zhì)發(fā)生泄漏胆描。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一仗阅、第九天 我趴在偏房一處隱蔽的房頂上張望昌讲。 院中可真熱鬧,春花似錦减噪、人聲如沸短绸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸠按。三九已至,卻和暖如春饶碘,著一層夾襖步出監(jiān)牢的瞬間目尖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工扎运, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瑟曲,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓豪治,卻偏偏與公主長得像洞拨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子负拟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一烦衣、介紹 Requests是一個很實用的Python HTTP客戶端庫,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到掩浙,...
    老友_9e40閱讀 242評論 0 0
  • 一花吟、介紹 Requests是一個很實用的python HTTP客戶端庫,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到厨姚,...
    墨染殤淚閱讀 180評論 0 0
  • 1.介紹: Requests是一個很實用的Python HTTP客戶端庫衅澈,用來做接口測試 *做接口測試前需要pip...
    我向星明許愿閱讀 174評論 0 0
  • 1.介紹: Requests是一個很實用的Python HTTP客戶端庫,用來做接口測試 *做接口測試前需要pip...
    小董小董閱讀 168評論 0 0
  • 1.介紹: Requests是一個很實用的Python HTTP客戶端庫谬墙,用來做接口測試 *做接口測試前需要pip...
    Nostalgia_9ea7閱讀 178評論 0 0