ddt 資料驅動測試 思想應用場景:場景流程是一樣的,只有資料不一樣。 ---引數化
python測試框架當中應用資料驅動:
unittest: ddt庫
pytest: 自帶的。
在測試用例的前面加上:
@pytest.mark.parametrize(
"引數名
",列表資料)
引數名:用來接收每一項資料,並作為測試用例的引數。
列表資料:多組測試資料。
@pytest.mark.parametrize(
"引數1,引數2
",[(資料1,資料2),(資料1,資料2)])
示例: @pytest.mark.parametrize(
"a,b,c
",[(1,3,4),(10,35,45),(22.22,22.22,44.44)])
deftest_add(a,b,c):
res = a +b
assert res ==c
測試用例的: 前置操作(準備工作 - 準備環境/資料/資源...)、
後置操作(清理工作 -關閉環境/清理資料/釋放資源...)
前置工作 -setup
執行測試用例(中間執行多少用例呢?)
後置工作 -teardown
在每條測試用例執行之前,列印:一條測試用例開始執行
執行測試用例
在每條測試用例執行之後,列印:一條測試用例執行結束
在乙個測試類下的第一條用例執行之前,列印:測試類下的用例開始執行
執行測試類下的用例
在乙個測試類下的最後一條用例執行之前,列印:測試類下的用例執行結束
定義fixture
1、函式表示,函式名稱自定義。
2、函式前面,要用@pytest.fixture來宣告它是乙個fixture
3、包含前置準備工作的**、後置清理工作的**。前置**和後置**之間用yield隔開
yield之前的**為:前置工作
yield之後的**為:後置工作
4、作用域:function(測試函式-預設)、class
(測試類)、module(測試模組)、session(測試會話)
scope引數來設定
呼叫fixture
在測試類/測試用例的名字上:
@pytest.mark.usefixtures(
"定義的fixture函式名")
支援在測試類/測試用例上呼叫多個fixture
共享機制:
定義的fixture,不同的.py裡的測試用例,都可以呼叫。
公共的地方:conftest.py(存放fixtures)
不需要測試用例.py檔案去引入,pytest會自動找的。
(fixtures可以放在類裡面、 .py裡面、 conftest.py)
用例當中如果呼叫了fixture,
那麼,首先找自己所在的檔案有沒有
如果有,優先用自己的。
如果沒有,則會去找同級目錄下的conftest.py裡有沒有
如果同級沒有,則會去上找一級目錄下的conftest.py裡有沒有
...一直到rootdir
"繼承"fixture使用其它的fixture
@pytest.fixture(scope="
class")
defclass_fix():
#前置準備工作的**
print("
-----測試類下的用例開始執行------")
yield
#後置清理工作的**
print("
-----測試類下的用例執行結束------")
@pytest.fixture
defhello(class_fix):
#前置準備工作的**
print("
開啟瀏覽器,開啟**,登陸成功")
yield
#後置清理工作的**
print("
退出帳號,關閉瀏覽器")
執行順序:
class_fix的前置
hello的前置
hello的後置
class_fix的後置
fixture1(fixture2) --fixture2的scope不能低於fixture1
同級
pytest的前置後置
setup module teardown module 函式形式,前置動作 用例1 用例2 用例3 後置動作 setup function teardown function 函式形式,每個用例執行前後,都會執行前置後置,即前置動作 用例1 後置動作 前置動作 用例2 後置動作 setup cla...
pytest 之 fixture 的前置後置功能
一 fixture 之 conftest.py 檔案 二 建立 conftest.py 檔案,定義前置 後置 fixture 函式根據關鍵字 yield 作為前置和後置的分割線,並且 yield 也可以接收返回值,返回元祖,作用相當於return yield 譯 優特 分割線,返回前置結果 impo...
pytest執行測試前置和後置環境資訊處理
config 配置檔案目錄 report 測試報告目錄 allure allure測試報告 allure report assets tmp htmlcov 覆蓋率測試報告 run inte ce test 介面測試執行入口 service 封裝業務操作 api business common de...