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 執行該目錄下的全部...