1. 程式人生 > 其它 >pytest自動化測試流程

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)