excel 两组数据交点_Python 自动化测试(四):数据驱动
本周測(cè)試公開課《Pytest 自動(dòng)化測(cè)試最佳實(shí)踐:實(shí)用特性與進(jìn)階技巧》!
在實(shí)際的測(cè)試工作中,通常需要對(duì)多組不同的輸入數(shù)據(jù),進(jìn)行同樣的測(cè)試操作步驟,以驗(yàn)證我們的軟件質(zhì)量。這種測(cè)試,在功能測(cè)試中非常耗費(fèi)人力物力,但是在自動(dòng)化中,卻比較好實(shí)現(xiàn),只要實(shí)現(xiàn)了測(cè)試操作步驟,然后將多組測(cè)試數(shù)據(jù)以數(shù)據(jù)驅(qū)動(dòng)的形式注入,就可以實(shí)現(xiàn)了。
前面文章學(xué)習(xí)了參數(shù)化,當(dāng)數(shù)據(jù)量非常大的時(shí)候,我們可以將數(shù)據(jù)存放到外部文件中,使用的時(shí)候?qū)⑽募械臄?shù)據(jù)讀取出來,方便測(cè)試數(shù)據(jù)的管理。數(shù)據(jù)與測(cè)試用例分別管理,可以利用外部數(shù)據(jù)源 YAML、JSON、Excel、CSV 管理測(cè)試數(shù)據(jù)。
pytest 結(jié)合 YAML
YAML 是一種容易閱讀、適合表示程序語言的數(shù)據(jù)結(jié)構(gòu)、可用于不同程序間交換數(shù)據(jù)、豐富的表達(dá)能力和可擴(kuò)展性、易于使用的語言。通過縮進(jìn)或符號(hào)來表示數(shù)據(jù)類型。
pyyaml 模塊在 Python 中用于處理 YAML 格式數(shù)據(jù),主要使用 yaml.safe_dump() 和 yaml.safe_load() 函數(shù)將 Python 值和 YAML 格式數(shù)據(jù)相互轉(zhuǎn)換。工作中常常使用 YAML 格式的文件存儲(chǔ)測(cè)試數(shù)據(jù)。
安裝
pip?install?PyYAML案例
創(chuàng)建用例文件以及數(shù)據(jù)文件來完成數(shù)據(jù)驅(qū)動(dòng)的測(cè)試案例,創(chuàng)建一個(gè)文件夾 testdata,在這個(gè)文件夾下創(chuàng)建 data.yml 和 test_yaml.py 文件。
創(chuàng)建 data.yml 文件:
-??-?1??-?2-??-?20??-?30創(chuàng)建“test_yaml.py”,代碼如下:
import?pytestimport?yaml@pytest.mark.parametrize("a,b",?yaml.safe_load(open("datas.yml",encoding='utf-8')))def?test_foo(a,b):????print(f"a?+?b?=?{a?+?b}")代碼分析:
yaml 文件里定義了列表數(shù)據(jù),通過 open() 方法獲取 data.yml 文件對(duì)象,使用 yaml.safe_load() 加載這個(gè)文件對(duì)象,將 YAML 格式文件轉(zhuǎn)換為 Python 值,分別傳到到用例中生成多條用例分別執(zhí)行。
運(yùn)行結(jié)果:
省略...test_params.py::test_foo[1-2]?test_params.py::test_foo[20-30]?省略...運(yùn)行結(jié)果中 [1-2] 和 [20-30] 代碼傳入的兩組參數(shù),分別傳入 test_foo() 用例方法中執(zhí)行,并且分別生成兩條測(cè)試結(jié)果。
以上,pytest 組合 YAML 實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng),YAML 文件作為用例數(shù)據(jù)源,控制測(cè)試用例的執(zhí)行,使測(cè)試用例數(shù)據(jù)維護(hù)更加方便快捷。
(文章來源于霍格沃茲測(cè)試學(xué)院)
總結(jié)
以上是生活随笔為你收集整理的excel 两组数据交点_Python 自动化测试(四):数据驱动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++类指针赋值表达式必须是可修改的左值
- 下一篇: python数字转汉字-Python转换