介面測試框架實戰 五 測試資料的資料驅動

2022-09-19 15:54:10 字數 1813 閱讀 6632

本文節選自霍格沃玆測試學院內部教材,高階學習,文末**!

資料驅動就是資料的改變從而驅動自動化測試的執行,最終引起測試結果的改變。簡單來說,就是引數化的應用。資料量小的測試用例可以使用**的引數化來實現資料驅動,資料量大的情況下建議使用一種結構化的檔案(例如

yaml,json 等)來對資料進行儲存,然後在測試用例中讀取這些資料。

引數化資料驅動原理與之前分享的ui 自動化測試框架測試資料的資料驅動

大同小異。

本文依然使用@pytest.mark.parametrize裝飾器來進行引數化,使用引數化來實現資料驅動。

通過引數化的方式,分別判斷 id 為 2,3 的部門的 parentid 為 1:

import pytest  

class testdepartment:

department = department()

@pytest.mark.parametrize("id", [2, 3])

def test_department_list(self, id):

r = self.department.list(id)

assert self.department.jsonpath(expr="$..parentid")[0] == 1

上面的**首先使用@pytest.mark.parametrize

裝飾器,傳遞了兩組資料,測試結果顯示有兩條測試用例被執行,而不是一條測試用例。也就是 pytest

會將兩組測試資料自動生成兩個對應的測試用例並執行,生成兩條測試結果。

當測試資料量大的情況下,可以考慮把資料儲存在結構化的檔案中。從檔案中讀取出**中所需要格式的資料,傳遞到測試用例中執行。

本次實戰以 yaml 進行演示。yaml 以使用動態字段進行結構化,它以資料為中心,比 excel、csv、json、xml 等更適合做資料驅動。

將上面引數化的兩組資料儲存到 yaml 檔案中,建立乙個data/department_list.yml檔案,**如下:

- 2  

- 3

上面的**定義了乙個 yaml 格式的資料檔案department_list.yml

,檔案中定義了乙個列表,列表中有兩個資料,最後生成的是這樣的資料格式:[1,2]。將測試用例中引數化的資料改造成從

department_list.yml檔案中讀取,**如下:

class testdepartment:  

department = department()

@pytest.mark.parametrize("id", \

yaml.safe_load(open("../data/department_list.yml")))

def test_department_list(self, id):

r = self.department.list(id)

assert self.department.jsonpath(expr="$..parentid")[0] == 1

上面的**,只需要使用yaml.safe_load()方法,讀取department_list.yml檔案中的資料,分別傳入到用例

test_department_list()方法中完成輸入與結果的驗證。

介面測試框架實戰 五 測試資料的資料驅動

本文節選自霍格沃玆測試學院內部教材,文末鏈結高階學習!資料驅動就是資料的改變從而驅動自動化測試的執行,最終引起測試結果的改變。簡單來說,就是引數化的應用。資料量小的測試用例可以使用 的引數化來實現資料驅動,資料量大的情況下建議使用一種結構化的檔案 例如 yaml,json 等 來對資料進行儲存,然後...

介面測試資料關聯

一 介面自動化的時候,下乙個介面的入參是需從上乙個介面的引數得出,兩個介面的引數需關聯 如下 1 第乙個介面的引數 replace 2 第二介面的引數 tokens 3 第二介面引數中的tok字段值需要從第乙個介面獲取值,可先用這中格式編寫 裡面的token是需從上乙個介面字段獲取值的欄位名 那麼下...

介面測試筆記1 測試資料

1 口自動化測試資料源 2 自動化指令碼中資料型別 3 json格式資料 4 json格式資料實戰 1 excel測試用例 2 yaml格式用例 資料要放在請求 會構建請求 裡面發出 data request 1 表單格式 也叫urlencode格式,也叫form格式,也叫x www form ur...