最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

軟件測試 | YAML是什么?

2023-06-05 11:39 作者:測吧測試開發(fā)  | 我要投稿

數(shù)據(jù)驅(qū)動

在實際的測試工作中,通常需要對大量的測試數(shù)據(jù)進行驗證,以保證軟件的正確性。這種數(shù)據(jù)量大的測 試,在功能測試中非常耗費人力物力,但是在自動化測試中,卻非常容易實現(xiàn)。只要編寫好測試的操作 步驟,然后將多組不同的測試數(shù)據(jù)傳入到相同的測試用例中,就能輕松實現(xiàn)對不同測試數(shù)據(jù)的驗證。 前面學(xué)習(xí)了參數(shù)化用例,當數(shù)據(jù)量非常大的時候,我們不能把所有的用例都放在測試模塊中。可以將數(shù) 據(jù)存放到一個外部文件中,使用的時候?qū)⑼獠课募臄?shù)據(jù)讀取出來,也方便測試數(shù)據(jù)的管理。數(shù)據(jù)與測 試用例分別管理,可以利用外部數(shù)據(jù)源 YAML、Json、Excel、CSV 等工具管理測試數(shù)據(jù)。這里推薦使 用 YAML 工具。

YAML 介紹

YAML 是在開發(fā)中的一種標記語言,適合用來表達或編輯數(shù)據(jù)結(jié)構(gòu)、各種配置文件等。YAML 不局限于 語言,可以用于不同語言程序間的數(shù)據(jù)傳遞(類似于 Json)。YAML 具有豐富的語法結(jié)構(gòu)和可擴展性, YAML 的配置文件后綴為 .yml 或 .yaml(例如:data.yaml)。

YAML 的基本語法

大小寫敏感

使用縮進表示層級關(guān)系

縮進不允許使用 tab,只允許空格

縮進的空格數(shù)不重要,只要相同層級的元素左對齊即可

'#'表示注釋

YAML 支持數(shù)據(jù)類型

對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)

數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)

純量:單個的、不可再分的值

YAML 表示列表

以 - 開頭的行表示構(gòu)成一個數(shù)組:

對應(yīng)的 python 的數(shù)據(jù)結(jié)構(gòu)是:['hogwarts1','hogwarts2','hogwarts3']

也可以列表嵌套列表,例如:

對應(yīng)的 python 的數(shù)據(jù)結(jié)構(gòu)是: [['hogwarts1','hogwarts2','hogwarts3']]

YAML 表示字典

key: value,冒號后面要加空格。

上面表達 python 里的字典: {'id': 1, 'name': 'company1', 'price': '200W'} 相對復(fù)雜的例子:

對應(yīng)的 python 的數(shù)據(jù)結(jié)構(gòu)是: {'hogwarts': [{'id': 1, 'name': '格蘭芬多', 'price': 200}, {'id': 2, 'name': '拉文克勞', 'price': 200}]}

YAML 表示純量

純量是最基本的,不可再分的值,包括:

  • 字符串

  • 布爾值

  • 整數(shù)

  • 浮點數(shù)

  • Null

  • 時間

  • 日期

pytest 結(jié)合 YAML

PyYAML 模塊在 python 中用于處理 YAML 格式數(shù)據(jù),主要使用 yaml.safe_dump() 和 yaml.safe_load() 函數(shù)將 Python 對象和 YAML 格式數(shù)據(jù)相互轉(zhuǎn)換。

安裝

案例

創(chuàng)建用例文件以及數(shù)據(jù)文件來完成數(shù)據(jù)驅(qū)動的測試案例,創(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 格式文件轉(zhuǎn)換為 Python 對象,分別傳遞到用例中生成多條用例執(zhí)行。

運行結(jié)果:

運行結(jié)果中 [1-2] 和 [20-30] 表示傳入的兩組參數(shù),分別傳入 test_foo( ) 用例方法中執(zhí)行,并且 分別生成兩條測試結(jié)果。pytest 結(jié)合 yaml 實現(xiàn)數(shù)據(jù)驅(qū)動,yaml 文件作為用例數(shù)據(jù)源,驅(qū)動測試用例的 執(zhí)行,使測試用例數(shù)據(jù)維護更加方便快捷。


軟件測試 | YAML是什么?的評論 (共 條)

分享到微博請遵守國家法律
彭阳县| 牡丹江市| 鄂温| 如东县| 泰宁县| 工布江达县| 徐水县| 鲁山县| 开平市| 茶陵县| 霞浦县| 桑植县| 太和县| 色达县| 福州市| 北流市| 子长县| 镇宁| 崇义县| 沁源县| 漯河市| 舟曲县| 鹤壁市| 兴文县| 康平县| 英山县| 无极县| 汨罗市| 临湘市| 钟祥市| 天水市| 贵南县| 贵德县| 盐津县| 黄大仙区| 济南市| 怀柔区| 广宗县| 库车县| 蒙阴县| 长沙市|