日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python接口测试之requests

發(fā)布時間:2025/3/20 python 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python接口测试之requests 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.簡介

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

2.前提

要下載requests

pip install requests

3.Get請求

1.無參數(shù)請求

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

2.有參數(shù)請求

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

案例:

import requests class UseRequest():# get傳參的第一種方式def GetMethod(self):r=requests.get("http://v.juhe.cn/toutiao/index?type=guonei&key=4b72107""de3a197b3bafd9adacf685790")print(r.text)# get傳參的第二種方式def GetMethod1(self):params = {"type": "guonei", "key": "4b72107de3a197b3bafd9adacf685790"}r = requests.get("http://v.juhe.cn/toutiao/index", params=params)print(r)u=UseRequest() u.GetMethod() u.GetMethod1()

4.Post請求

類似python中的表單提交

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

案例:

import requests class UseRequest():# post傳參的方式def PostMethod(self):params = {"type": "guonei", "key": "4b72107de3a197b3bafd9adacf685790"}r = requests.post("http://v.juhe.cn/toutiao/index", data=params)print(r.status_code)# return r.status_codeu=UseRequest() u.PostMethod()

5.requests響應(yīng)

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

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

6.requests擴(kuò)充

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)

7.requests+pytest+allure

流程如下

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

讀取csv文件流程

1.存儲數(shù)據(jù)

2.讀取數(shù)據(jù)

import csv class ReadCsv():def readCsv(self):item = []rr = csv.reader(open("../data/test_csv.csv"))for csv_i in rr:item.append(csv_i)del item[0]return item r=ReadCsv() print(r.readCsv())


3.requests請求接口返回狀態(tài)碼

import requests from readdata.readcsv import ReadCsvr=ReadCsv() lists=r.readCsv() items=[] class RequestsClass():def requestMethod(self):for i in lists:if i[2]=='get':r=requests.get(i[0],params=i[1])items.append(r.status_code)else:r = requests.post(i[0], data=i[1])items.append(r.status_code)return items req=RequestsClass() print(req.requestMethod())

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

import pytest,os from requestsdemo.requestcsv import RequestsClass r=RequestsClass() rr=r.requestMethod()class TestRequestsClass():def testCsv(self):for i in rr:assert i==200if __name__ == '__main__':pytest.main(['--alluredir', 'report/result', 'test_csv.py'])split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'os.system(split)


5.測試報告展示

讀取excel文件流程

1.存儲數(shù)據(jù)

2.讀取數(shù)據(jù)

from openpyxl import load_workbook class UseExcel():def get_TestExcel(self):# 打開表workbook = load_workbook('../data/test_exc.xlsx')# 定位表單sheet = workbook['Sheet1']print(sheet.max_row) #3 行print(sheet.max_column) #3 列test_data = []#把所有行的數(shù)據(jù)放到列表中for i in range(2,sheet.max_row+1):sub_data = {}#把每行的數(shù)據(jù)放到字典中for j in range(1,sheet.max_column+1):sub_data[sheet.cell(1,j).value] = sheet.cell(i,j).valuetest_data.append(sub_data)#拼接每行單元格的數(shù)據(jù)return test_data t = UseExcel() f = t.get_TestExcel() print(f)


3.requests請求接口返回狀態(tài)碼

import requests from readdata.readexcel import UseExcel u=UseExcel() lists=u.get_TestExcel() items=[] class RequestsExcClass():def requestExcMethod(self):for i in lists:if i.get('method')=='get':r=requests.get(i['url'],params=i['params'])items.append(r.status_code)else:r = requests.post(i['url'], data=i['params'])items.append(r.status_code)return itemsr=RequestsExcClass() print(r.requestExcMethod())


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

import pytest,os from requestsdemo.requestexc import RequestsExcClass r=RequestsExcClass() lists=r.requestExcMethod()class TestRequestsClass():def testMethod(self):for i in lists:assert i==200if __name__ == '__main__':# 生成測試報告jsonpytest.main(['--alluredir', 'report/result', 'test_exc.py'])# 將測試報告轉(zhuǎn)為html格式split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'os.system(split)


5.測試報告展示

總結(jié)

以上是生活随笔為你收集整理的Python接口测试之requests的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。