數據驅動:
將代碼與數據進行分離,單純由數據組成文件,再由文件來驅動關鍵字,最終實際整個自動化的流程
讀取到數據,基於固定格式的數據內容進行拼接 拼接后的內容作為關鍵字所需要的參數 進行傳入,從而執行對應
的關鍵字,再將結果與預期結果進行對比,從而獲得單條測試用例是否通過的結果
有時候多個用例 比如說多個需要登錄的用例,共同點是,它們的測試步驟一模一樣的,只是
輸入的數據不同,要檢查的輸出數據不同。
這批測試用例,就是典型的可以用 數據驅動 方式進行自動化用例。
如果有一批測試用例,具有 相同的測試步驟,只是測試參數數據不同。
自動化測試時,把數據從用例代碼中 分離 開來,以后增加新的測試用例,只需要修改數據。
這就是數據驅動。
pytest 用例 的 數據驅動格式,只需如下定義 pytest -s 運行:
import pytest
# 引入公共邏輯代碼的腳本
from lib.webui import loginAndCheck
class Test_錯誤登錄:
# 數據驅動 裝飾器:pytest.mark
@pytest.mark.parametrize('username,password,expectedalert,testName',[
(None,'888888888','用戶名不能為空。','不填賬號,正確的秘密'),
('13409222736',None,'密碼不能為空。','正確的賬號,不填秘密'),
])
# 創建一個函數 對數據驅動的數據遍歷引用 調用兩條用例
def test_UI_C001_002(self,username,password,expectedalert,testName):
# 調用公共邏輯代碼 傳入數據驅動的值
print(testName)
alertText = loginAndCheck(username,password)
assert alertText == expectedalert
缺點
如果要生成測試報告的話就不能分辨出是那條用例出的錯誤