pytest 和 allure的使用方法

2021-10-09 15:17:14 字數 2811 閱讀 2114

pytest是python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,效率更高。

檔名以test_.py檔案test.py

測試類以test開頭,並且不能帶有init方法

以test_開頭的函式

以test開頭的類

以test_開頭的方法

所有的包pakege必須要有__init_.py檔案

斷言使用assert

執行.py模組裡面的某個函式

pytest test_mod.py::test_func

執行.py模組裡面,測試類裡面的某個方法

pytest test_mod.py::testclass::test_method

三、斷言

常用斷言

pytest裡面斷言實際上就是python裡面的assert斷言方法,常用的有以下幾種:

assert xx 判斷xx為真

assert not xx 判斷xx不為真

assert a in b 判斷b包含a

assert a == b 判斷a等於b

assert a != b 判斷a不等於b

import pytest

#名稱中含add 的測試用例

#生成測試報告

**pytest.main([』-x』,』–html=./report.html』,『t12est000.py』])

#-x出現一條測試用例失敗就退出測試

-v: 豐富資訊模式, 輸出更詳細的用例執行資訊

pytest.main(["-v","–html=./truth.html",「test1.py」])

-s:顯示print內容

pytest.main(["-s","–html=./truth.html",「test1.py」])

-q: 簡化結果資訊,不會顯示每個用例的檔名**

pytest.main(["-q","–html=./truth.html",「test1.py」])

. 點號,表示用例通過

f 表示失敗 failure

e 表示用例中存在異常 error

class

calc()

:def

add(self,a,b)

: c = a + b

return c

defjian

(self,a,b)

: c = a - b

return c

import csv

class

readcsv()

:def

read_csv

(self)

: item =

# 定義乙個空列表

c = csv.reader(

open

("../testdemo/test1.csv"

,"r"))

# 得到csv檔案物件

for csv_i in c:

# 將獲取的資料新增到列表中

return item

r = readcsv(

)print

(r.read_csv(

))

import pytest

from funcdemo.calc import calc

from testdemo.cvs_test import readcsv

r = readcsv(

)a = r.read_csv(

)print

(a)class

testclass()

:# 類名必須以 test 開頭 否則在執行的時候 pytest 找不到

allure常用的特性

@allure.feature # 用於描述被測試產品需求

@allure.story # 用於描述feature的使用者場景,即測試需求

with allure.step(): # 用於描述測試步驟,將會輸出到報告中

allure.attach # 用於向測試報告中輸入一些附加的資訊,通常是一些測試資料,截圖等

pytest 引數化和allure註解(持續更新)

前提條件 我的用例是寫在xlsx裡面的。介面和測試讀取方法一樣 首先,讀取xlsx用例檔案 import xlrd,json def getcase filepath,index try file xlrd.open workbook filepath me file.sheets index nr...

Pytest(13) allure特性介紹

可以理解成環境變數引數,沒有什麼實際作用,個人覺得只是為了讓別人知道本次測試的執行環境引數而已,顯示啥都是自己定的 注意!預設是沒有的哦 通過建立environment.properties或者environment.xml檔案,並把檔案存放到allure results 這個目錄是生成最後的htm...

pytest引數化 allure結果輸出

1 單介面引數化用 pytest.mark.parametrize 2 業務串聯介面用 pytest.fixture 3 業務串介面引數化用yaml 4 登入等公共的內容放conftest py 5 本地指令碼 allure輸出文件 pytest alluredir result 執行該目錄下的全部...