溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

測(cè)試驅(qū)動(dòng)技術(shù)系列之怎么用pytest實(shí)現(xiàn)測(cè)試數(shù)據(jù)驅(qū)動(dòng)

發(fā)布時(shí)間:2021-10-18 17:18:46 來(lái)源:億速云 閱讀:137 作者:iii 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“測(cè)試驅(qū)動(dòng)技術(shù)系列之怎么用pytest實(shí)現(xiàn)測(cè)試數(shù)據(jù)驅(qū)動(dòng)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“測(cè)試驅(qū)動(dòng)技術(shù)系列之怎么用pytest實(shí)現(xiàn)測(cè)試數(shù)據(jù)驅(qū)動(dòng)”吧!

一組參數(shù)化數(shù)據(jù)

定義參數(shù)化數(shù)據(jù),代碼如下:

class TestDemo1: @pytest.mark.parametrize('actual_string, expect_string', [(1, 1), ('BB', 'BB'),('AA', 'BB')])        def test_1(self, actual_string, expect_string):             assert (expect_string == actual_string)

運(yùn)行結(jié)果如下,三組數(shù)據(jù)在三條測(cè)試用例中運(yùn)行,其中數(shù)據(jù)('AA', 'BB')運(yùn)行失敗!

測(cè)試驅(qū)動(dòng)技術(shù)系列之怎么用pytest實(shí)現(xiàn)測(cè)試數(shù)據(jù)驅(qū)動(dòng)

多組參數(shù)化數(shù)據(jù)

在一個(gè)測(cè)試類中,可以定義多組參數(shù)化數(shù)據(jù)(參數(shù)化數(shù)據(jù)個(gè)數(shù)不同,test_1二個(gè),test_2三個(gè)),代碼如下:

class TestDemo1:     @pytest.mark.parametrize('actual_string, expect_string', [(1, 1), ('BB', 'BB'),('AA', 'BB')])     def test_1(self, actual_string, expect_string):         assert (expect_string == actual_string)      @pytest.mark.parametrize('result, a,b', [(1, 1,0),(2, 1,0) ])     def test_2(self, result, a,b):         assert (result == a+b)

運(yùn)行結(jié)果如下,二組數(shù)據(jù)分別在test_1和test_2中運(yùn)行!

測(cè)試驅(qū)動(dòng)技術(shù)系列之怎么用pytest實(shí)現(xiàn)測(cè)試數(shù)據(jù)驅(qū)動(dòng)

從excel中讀取數(shù)據(jù)作為參數(shù)

我們可以自定義一些方法,對(duì)外部文件進(jìn)行讀取,然后把讀取的數(shù)據(jù)作為參數(shù)在pytest

中引用。把測(cè)試數(shù)據(jù)保存在excel中,如下圖

測(cè)試驅(qū)動(dòng)技術(shù)系列之怎么用pytest實(shí)現(xiàn)測(cè)試數(shù)據(jù)驅(qū)動(dòng)

寫(xiě)一個(gè)讀取excel類文件的方法,使用模塊pandas ,使用命令pip install pandas 安裝模塊,源碼如下:

import pandas as pd  # 讀取Excel文件 -- Pandas  def read_data_from_pandas(excel_file, sheet_name):      if not os.path.exists(excel_file):          raise ValueError("File not exists")      s = pd.ExcelFile(excel_file)      df = s.parse(sheet_name)#解析sheet頁(yè)的數(shù)據(jù)      return df.values.tolist()#數(shù)據(jù)返回為list

從excel中讀取數(shù)據(jù),并賦值給變量進(jìn)行參數(shù)化,代碼如下:

@pytest.mark.parametrize('actual_string, expect_string', read_data_from_pandas('E:/TestData.xls', 'data1'))  def test_3(self, actual_string, expect_string):      assert (expect_string == actual_string)

運(yùn)行結(jié)果如下,三組數(shù)據(jù)在三條測(cè)試用例中運(yùn)行!

測(cè)試驅(qū)動(dòng)技術(shù)系列之怎么用pytest實(shí)現(xiàn)測(cè)試數(shù)據(jù)驅(qū)動(dòng)

注意:excel中的首行,默認(rèn)不會(huì)作為測(cè)試數(shù)據(jù)處理。

到此,相信大家對(duì)“測(cè)試驅(qū)動(dòng)技術(shù)系列之怎么用pytest實(shí)現(xiàn)測(cè)試數(shù)據(jù)驅(qū)動(dòng)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI