pytest 實現介面自動化的demo

2022-07-10 08:06:15 字數 1549 閱讀 5182

今天同事遇到乙個問題,想要實現乙個介面自動化的框架,實現功能需要整合pytest、allure,執行完後,輸出視覺化的報告。但是他一直解決不了問題,所以找到我,讓我幫忙看下

例如:既然想要做成乙個公共的方法,自然界面具體資料就需要通過配置來完成,以配置形式來處理

以下是我做的乙個demo,很簡單的demo,具體的情況,指令碼要怎麼封裝,需要根據想要的功能,去拓展或者修改,我這只是引導乙個思路

首先是配置檔案,我以txt檔案舉例

內容如下:

test_case001 我是模組1 我是第乙個測試點 1 2

test_case002 我是模組1 我是第二個測試點 2 2

test_case003 我是模組2 我是第乙個測試點 3 4

test_case004 我是模組2 我是第二個測試點 4 5

按照自己需要的格式,來準備資料。我這是舉了乙個簡單例子,實際上通過yml檔案或者json檔案的格式來弄,易讀性更好一些,並且我的指令碼沒有寫預期結果、實際結果,需要自行補充

指令碼內容如下 :

# -*- coding: utf-8 -*-

__author__ = 'felix'

import allure, pytest

#定義乙個測試類

class testcase(object):

pass

with open("./test.txt.", 'r', encoding='utf8') as f:

for l in f:

line = l.strip()

line_list = line.split(" ")

@pytest.mark.parametrize('a, b', [(line_list[4], line_list[3])]) #引數化

@allure.feature("{}".format(line_list[1])) #allure一級模組

@allure.story("{}".format(line_list[2])) #allure二級模組

def myfunc(self, a, b):

assert a == b

setattr(testcase, "{}".format(line_list[0]), myfunc) #對testcase類進行動態建立方法,方法名需要以test開頭

執行指令碼:pytest test_common.py --alluredir=./report/result

生成報告:allure generate ./report/result -o ./report/html

最終報告截圖:

介面自動化 pytest 環境搭建

出處 前言 python鄙視鏈 pytest 鄙視 unittest 鄙視 robotframework 鄙視 記流水賬 鄙視 hello world 小白 所以,讓我們一起學習pytest吧。pytest簡介 pytest是python的一種單元測試框架,與python自帶的unittest測試框...

pytest自動化運用實戰

環境 python 3.7 由於3.0 3.5以下部分pytest可能有部分相容問題安裝建議2.7 2.9,3.5 最新 pip install pytest專屬 pytest框架包 pip install allure pytest 專屬allure的報告包後面會用到可以不安裝這裡 pip ins...

RF 實現介面自動化

首先進行requuestslibrary安裝 cmd 命令列執行 pip install u requests pip install u robotframework requests 首先要安裝成功,然後庫名一定要大寫,大寫小敏感 引入requuestslibrary庫,出現波浪線後按住crtl...