关注分享主机优惠活动
国内外VPS云服务器

Python接口测试请求

总结:本入门书是一个非常实用的客户端库,在编写爬虫和测试服务器响应数据时经常使用。 这是专门用于发送请求的语言的第三方库。 前提是下载请求不带参数。 带参数的请求请求案例传递第一种方式传递参数,第二种方式请求表单提交类似于

1中的方式。 简介 Requests 是一个非常实用的 Python HTTP 客户端库,常用于: 创建爬虫并测试服务器响应数据。 、Requests是Python语言中的一个第三方库,专门用于发送HTTP请求。 2. 前提条件

下载请求

pip install request 3. 获取请求

1. 无参数请求

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

2.带参数的请求

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

案例:

importrequestsclass UseRequest(): # 第一种获取参数的方式 def GetMethod(self): r=requests.get("http:// v.juhe. cn/头条) /索引?type=guonei&key=4b72107" "de3a197b3bafd9adacf685790") print(r.text) # 第二种获取参数的方式 def GetMethod1(self): params = {"type": "guonei", "key": "4b72107de3a197b3bafd9adacf685790"} r = request .get("http://v.juhe.cn/toutiao/index", params=params) print(r)u=UseRequest()u.GetMethod()u.GetMethod1()

4 . 发布请求

类似于 Python 中的表单提交

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

案例:

importrequestsclass 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.请求响应 print(r.status_code) # 响应状态码 print(r.headers) #响应头 print(r.cookies) #响应cookieprint(r.text) #响应文本 print(r.encoding) #当前编码 print(r.content) #最常用的

以字节格式(二进制)判断是否根据响应状态码进行接口连接。 常用于接口中判断断言

6、扩展请求 1:添加等待时间 request.get(url, timeout=1) #如果超过等待时间,就会出错 2:添加请求头信息 request.get (url, headers=headers) #设置请求头3:添加文件 request.post(url, files=files) #添加文件

文件传输

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

流程如下: 读取文件中的数据请求,获取数据请求接口并返回状态码如下。 通过断言验证并返回状态代码和 2。00 allure

CSV文件读取过程

对比1.生成的测试报告。 保存数据2.读取数据

import csvclass 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 itemr=ReadCsv()print(r.readCsv() )

3.Request 请求接口返回状态码

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

4.pytest 结合断言设置和超级按钮生成测试报告

import pytest,osfromrequestsdemo.requestcsv import RequestsClassr= RequestsClass() rr =r.requestMethod()class TestRequestsClass(): def testCsv(self): for i in rr:assert i==200if __name__ == '__main__': pytest.main(['-- alluredir', '报告/结果', 'test_csv.py']) 分割 = 'allure' + '生成' + './report/result ' + '-o ' + './report/html ' + ' - [ k4]clean' os.system(split)

5、测试报告显示读取Excel文件的过程。

1.保存数据2.从openpyxl importload_workbookclass读取数据

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 = []#全部放入将第 i 行的数据放入 range(2,sheet.max_row+1) 中的列表中: sub_data = {}#j 放入 range(1,sheet.max_column+1) 中的字典中: sub_data [sheet.cell(1, j).value] =sheet.cell(i,j).value test_data.append(sub_data)#合并每行单元格中的数据 return test_datat = UseExcel()f = t.get_TestExcel( )print (f)

3.Request请求接口返回状态码

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

4.pytest 结合断言设置和 charm 创建测试报告 生成导入 pytest,osfromrequestsdemo.requestexc 导入 RequestsExcClassr=RequestsExcClass()lists=r.requestExcMethod()class TestRequestsClass():def testMethod(self):for i in strings:assert i==200if __name__ == '__main__' : # 生成测试报告 json pytest.main(['--alluredir', 'report/result', 'test_exc.py']) # 报告测试将报告转换为 HTML 格式 Split = 'allure' + 'generate' + './report/result' + '-o' + './report/html' + '--clean' os. 系统(分体)

5.查看测试报告

未经允许不得转载:主机频道 » Python接口测试请求

评论 抢沙发

评论前必须登录!