讀取Excel測試用例結合pytest的簡單嘗試

2022-09-01 01:18:14 字數 1995 閱讀 9992

這是我們寫的測試用例:

這裡主要關注第七列,假設已經拿到了其它引數傳送請求出去,根據響應內容獲取到響應訊息體的retcode,與表中的code進行斷言判斷通過與否(比如0通過,2不通過)

以下是**實現:

1

import

pytest

2import

xlrd

3import

json45

6 lines = # 建立空表用來存excel每一行內容

7 worksheet = xlrd.open_workbook('

../data/教管系統-測試用例v1.2.xls

').sheet_by_index(2)

8 rows =worksheet.nrows # 獲取行數

9for i in range(1, rows):

10 line =worksheet.row_values(i)

1112

1314 @pytest.fixture(params=lines) # pytest工廠函式,預設方法級別

15def

init_x(request):

16return

request.param # 固定格式,每一次取出params的乙個元素

1718

19class

test_x:

20def

test_x(self, init_x):

21 code = json.loads(init_x[6]) # 把第七列內容json格式的字串轉成字典格式

22 code = code['

code

'] # 拿到code的值

23assert code != 0 # 斷言是否通過

或者使用引數化:

1

import

pytest

2import

xlrd

3import

json45

6def

get_data():

7 lines =

8 worksheet = xlrd.open_workbook('

../data/教管系統-測試用例v1.2.xls

').sheet_by_index(2)

9 rows =worksheet.nrows

10for i in range(1, rows):

11 line =worksheet.row_values(i)

1213

return

lines

1415

16class

test_x:

17 @pytest.mark.parametrize("

code

", get_data()) # pytest引數化裝飾器,第乙個引數寫自定義的引數名,第二個引數傳取到的資料

18def

test_x(self, code): # 上面的引數名是什麼,這裡也要寫什麼

19 retcode = json.loads(code[6])

20 retcode = retcode['

code']

21assert retcode != 0

執行結果:

共45個測試,顯示34個通過11個不通過,不通過的原因也能看到:0 != 0。

當然,實際的介面測試並不是規定0代表通過,2代表不通過,而是根據實際響應得到的retcode與code是否相等來判斷。

這裡只是簡單的實踐一下,肯定有更好的實現方式。

結合spring配置JNDI的測試用例

最近用到jndi,並且在spring中進行配置,可是由於各種條件限制,需要在測試各種資料後發現想要在spring中實現並不太容易,參考網上的資料總結出兩種方式,為自己做備份,也為他人做參考,少走彎路 1.通過initialcontext,context.lookup test 實現,缺點不能 全部自...

根據yaml測試用例自動生成py檔案

一 目前使用的介面自動化框架在編寫測試用例時,需要編寫yaml檔案,然後在寫對應的指令碼檔案,每個介面的 py檔案,大同小異,在前面幾天的編寫的過程中,感覺很繁瑣 於是就產生了能不能根據編寫完畢的 yaml 檔案自動生成 py檔案的想法,經過一番功夫,終於搞定,說明如下 二 根據固定格式編寫yaml...

測試用例(四)測試用例編寫

一.測試用例編寫方法 1.等價類劃分 如何選擇適當的資料子集,來代表整個資料集。通過降低測試的資料去實現 合理的 覆蓋,覆蓋了更多的可能資料,以發現更多的軟體缺陷 邊界值分析法 2.邊界值分析 使用邊界值分析方法設計測試用例時一般與等價類劃分結合起來,但它不是從乙個等價類中任選乙個例子作為代表,而是...