requests+pytest+allure接口自动化测试

步骤流程

1.读取文件中的数据

2.requests拿到数据请求接口返回状态码

3.通过断言验证返回状态码和200对比

4.生成allure的测试报告

先从聚合数据里面寻找两个或两个以上的接口填入CSV表格中

文件格式必须以csv结尾

82f0bc1b43df255afd76f89b80083b5d.png

dc56b08da907248c570153a185b2ceb5.png

1.读取CSV文件中的数据

demo:

import csv #导入csv模块

class Read1(): #创建一个类

def read2(self): #创建一个函数

item = [] #新建一个列表为了方便循环数据

r = csv.reader(open(“xinwendemo.csv”,“r”)) #打开存入接口的csv表格

for i in r: #将数据循环添加到空列表item

item.append(i) #将数据添加

c = item[1:] #创建文件夹的时候有个标题,这一步的操作是为了用切片的方式将标题省略

return c #返回数据

a = Read1()

b=a.read2()

print(b)

f2cce0423ecb76b0bf5e79478d5b96db.png

演示结果:

5978a65d18bfdd135359ac731509cd4b.png

2.requests拿到数据请求接口返回状态码

import requests #导入request模块

from read import Read1 #将第一步读取csv文件夹的操作导入

a = Read1()

b = a.read2()

class Request2():#创建一个类

def request_xiwen(self):#创建一个函数

item = [] #新建一个列表为了方便循环数据

for i in b: #将read读取的数据进行循环

if i[2] == ‘get’:#如果vsc文件夹的method的方法为get的情况下添加url地址和params的type和key值

g = requests.get(url=i[0],params=i[1])#获取文件夹的第一个数据和第二个数据

item.append(g.status_code)#将他的响应状态码添加进去

else:

g = requests.post(url=i[0], params=i[1])#和上一步操作一样, 只不过是method方法为post的情况下

item.append(g.status_code)

return item

c = Request2()

l = c.request_xiwen()

print(l)

6917186a3245064e38a86d4e3e3b8ae7.png

演示结果:

9e65b1a2a577aeba54f17a66ebc351d4.png

3.通过断言验证返回状态码和200对比

import pytest,os#导入模块

from request3 import Request2#导入方法

a = Request2()

b = a.request_xiwen()

print(b)

class Testclass():

def test1(self):

for i in b: #循环获取到的状态码

assert i == 200#用断言来比较是否相同

if name == ‘main’:

pytest.main([‘test111.py’])

ba59394d0b0a75e13d378005dd0d0f58.png

演示结果:

bae74795aaa9227efdb21b47e5ad35c6.png

4.生成allure的测试报告

import pytest,os#导入模块

from request3 import Request2#导入方法

a = Request2()

b = a.request_xiwen()

print(b)

class Testclass():

def test1(self):

for i in b: #循环获取到的状态码

assert i == 200#用断言来比较是否相同

if name == ‘main’:

# 生成测试报告json

pytest.main([’–alluredir’, ‘report/result’, ‘test111.py’])

#将测试报告转为html格式 --html=…/report.html

split = 'allure ’ + 'generate ’ + './report/result ’ + '-o ’ + './report/html ’ + ‘–clean’

# system函数可以将字符串转化成命令在服务器上运行

os.system(split)

d13671d4c5ed3fa0241f9d86eadb2d05.png

演示结果:

874d02751bd1c1f903ec8c1bd44213a4.png

383a25a83b517402f718fa87357e7867.png

c85614bc0335ddd53ed90c914ee0a266.png

原文链接:https://blog.csdn.net/m0_50560420/article/details/108684022

Logo

一站式 AI 云服务平台

更多推荐