Python 自動化測試(四):數(shù)據(jù)驅動

在實際的測試工作中,通常需要對多組不同的輸入數(shù)據(jù),進行同樣的測試操作步驟,以驗證我們的軟件質量。這種測試,在功能測試中非常耗費人力物力,但是在自動化中,卻比較好實現(xiàn),只要實現(xiàn)了測試操作步驟,然后將多組測試數(shù)據(jù)以數(shù)據(jù)驅動的形式注入,就可以實現(xiàn)了。
前面文章學習了參數(shù)化,當數(shù)據(jù)量非常大的時候,我們可以將數(shù)據(jù)存放到外部文件中,使用的時候將文件中的數(shù)據(jù)讀取出來,方便測試數(shù)據(jù)的管理。數(shù)據(jù)與測試用例分別管理,可以利用外部數(shù)據(jù)源 YAML、JSON、Excel、CSV 管理測試數(shù)據(jù)。
YAML 是一種容易閱讀、適合表示程序語言的數(shù)據(jù)結構、可用于不同程序間交換數(shù)據(jù)、豐富的表達能力和可擴展性、易于使用的語言。通過縮進或符號來表示數(shù)據(jù)類型。
pyyaml 模塊在 Python 中用于處理 YAML 格式數(shù)據(jù),主要使用 yaml.safe_dump() 和 yaml.safe_load() 函數(shù)將 Python 值和 YAML 格式數(shù)據(jù)相互轉換。工作中常常使用 YAML 格式的文件存儲測試數(shù)據(jù)。
安裝
案例
創(chuàng)建用例文件以及數(shù)據(jù)文件來完成數(shù)據(jù)驅動的測試案例,創(chuàng)建一個文件夾 testdata,在這個文件夾下創(chuàng)建 data.yml 和 test_yaml.py 文件。
創(chuàng)建 data.yml 文件:
創(chuàng)建“test_yaml.py”,代碼如下:
代碼分析:
yaml 文件里定義了列表數(shù)據(jù),通過 open() 方法獲取 data.yml 文件對象,使用 yaml.safe_load() 加載這個文件對象,將 YAML 格式文件轉換為 Python 值,分別傳到到用例中生成多條用例分別執(zhí)行。
運行結果:
運行結果中 [1-2] 和 [20-30] 代碼傳入的兩組參數(shù),分別傳入 test_foo() 用例方法中執(zhí)行,并且分別生成兩條測試結果。
以上,pytest 組合 YAML 實現(xiàn)數(shù)據(jù)驅動,YAML 文件作為用例數(shù)據(jù)源,控制測試用例的執(zhí)行,使測試用例數(shù)據(jù)維護更加方便快捷。