日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
測試驅(qū)動技術(shù)(TDD)系列之-pytest實現(xiàn)測試數(shù)據(jù)驅(qū)動

 本篇文章則介紹如何使用Python進行數(shù)據(jù)驅(qū)動。這里以pytest測試框架為例,重點講解pytest參數(shù)化相關(guān)知識。(關(guān)于pytest的環(huán)境配置以及基礎(chǔ)使用不在本文的討論范圍)

創(chuàng)新互聯(lián)服務(wù)項目包括波密網(wǎng)站建設(shè)、波密網(wǎng)站制作、波密網(wǎng)頁制作以及波密網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,波密網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到波密省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

pytest中使用標(biāo)簽@pytest.mark.parametrize 實現(xiàn)參數(shù)化功能,在執(zhí)行用例的時候該標(biāo)簽迭代中的每組數(shù)據(jù)都會作為一個用例執(zhí)行。

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

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

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

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

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

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

 
 
 
 
  1. class TestDemo1: 
  2.  
  3.    @pytest.mark.parametrize('actual_string, expect_string', [(1, 1), ('BB', 'BB'),('AA', 'BB')]) 
  4.  
  5.    def test_1(self, actual_string, expect_string): 
  6.  
  7.        assert (expect_string == actual_string) 
  8.  
  9.  
  10.    @pytest.mark.parametrize('result, a,b', [(1, 1,0),(2, 1,0) ]) 
  11.  
  12.    def test_2(self, result, a,b): 
  13.  
  14.        assert (result == a+b) 

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

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

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

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

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

 
 
 
 
  1. import pandas as pd 
  2.  
  3. # 讀取Excel文件 -- Pandas 
  4.  
  5. def read_data_from_pandas(excel_file, sheet_name): 
  6.  
  7.     if not os.path.exists(excel_file): 
  8.  
  9.         raise ValueError("File not exists") 
  10.  
  11.     s = pd.ExcelFile(excel_file) 
  12.  
  13.     df = s.parse(sheet_name)#解析sheet頁的數(shù)據(jù) 
  14.  
  15.     return df.values.tolist()#數(shù)據(jù)返回為list 

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

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

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

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


網(wǎng)站欄目:測試驅(qū)動技術(shù)(TDD)系列之-pytest實現(xiàn)測試數(shù)據(jù)驅(qū)動
當(dāng)前網(wǎng)址:http://www.5511xx.com/article/dhissed.html