pytest自動化測試流程
步驟流程:
1.通過禪道將介面用例轉換為.csv檔案,讀取csv中的檔案(包含url,parmas,請求方法)
import csv #匯入csv模組
class Read1(): #建立一個類
def read2(self): #建立一個函式
item = [] #建立一個列表進行迴圈
r = csv.reader(open('介面文件名稱')) #開啟介面用例的表格
for i in r: #將資料迴圈新增到空表item裡
item.append(i) #將資料新增
c = item[1:] #利用切片把表格中的第一行省略
return c #返回資料
a = Read1()
b = a.read2()
print(b)
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)
3.通過斷言驗證返回狀態碼比對
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’])
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)