接口自动化测试
一.requests+pytest+allure
下载所需插件:requests,pytest,allure-pytest
第一种terminal下载插件
pip install requests
pip install pytest
pip install allure-pytest
第二种搜索的方法下载插件(如果terminal下载不了可以使用这个方式下载插件)
代码模块展示
读取csv文件
存储数据(csv)
读取数据
代码:
import csv
class ReadCsv():
def readCsv(self):
item = []
rr = csv.reader(open("../dataDemo/aaa.csv"))
for csv_i in rr:
item.append(csv_i)
return item
a = ReadCsv()
print(a.readCsv())
4.读取excle文件
存储数据(xlsx)
读取数据(readDemo)
代码:
from openpyxl import load_workbook
class UseExcel():
def get_TestExcel(self):
# 打开表
excelbook = load_workbook("I:/PythonCode/request0607/dataDemo/0607.xlsx")
# 定位表单
sheet = excelbook['Sheet1']
# 行
# print(sheet.max_row)
# # 列
# print(sheet.max_column)
# 把所有行的数据放到列表中
test_data = []
for i in range(2,sheet.max_row+1):
# 把每行的数据放到字典中
sub_data = {}
for j in 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_data
t = UseExcel()
f = t.get_TestExcel()
print(f)
request请求接口返回状态码
代码:
import requests
from readDataDemo.readexcel import UseExcel
class UseRequestexcelClass():
def UseRequestexcelMethod(self):
t = UseExcel()
f = t.get_TestExcel()
item = []
for excel_i in f:
if excel_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)
return item
if __name__ == "__main__":
c = UseRequestexcelClass().UseRequestexcelMethod()
print(c)
pytest断言设置并结合allure生成测试报告
代码:
import pytest, os
import allure
from requestDemo.requestexcel import UseRequestexcelClass
t = UseRequestexcelClass()
f = t.UseRequestexcelMethod()
for i in f:
print(i)
class Test(object):
def test_001(self):
for aa in f:
assert aa == 200
if __name__ == "__main__":
pytest.main(["-s", "-q", '--alluredir', 'report/result', 'testexcel.py'])
split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'
os.system('cd D:\install\python/python\Test_allure\Test/test\report')
os.system(split)