欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python基于paramunittest模塊實現(xiàn)excl參數(shù)化

 更新時間:2020年04月26日 09:24:03   作者:天天向上327  
這篇文章主要介紹了Python基于paramunittest模塊實現(xiàn)excl參數(shù)化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、總結說明

Windows環(huán)境安裝:paramunittest cmd輸入命令:pip install paramunittest

總結說明:

1.paramunittest是unittest實現(xiàn)參數(shù)化的一個專門的模塊,可以傳入多組參數(shù),自動生成多個用例
2.導入paramunittest:import paramunittest
3.paramunittest支持字典、元組、列表作為入參
列表格式:[["vaule"],["vaule2"]],setParameters賦值的個數(shù)與列值一一對應,例如此列表格式列值只有一個,賦值時只能自定義一個值
元組格式:(("pwd","vaule"),("pwd","vaule2")),元組列值必須保證兩個以上,如果只有一個值,setParameters時報錯,setParameters賦值的個數(shù)與列值一一對應,例如此元組格式列值有2個,賦值時只能自定義2個值
字典格式:[{"key": "vaule" },{"key": "vaule2"}],字典保證key值一致,如相同個數(shù),相同位置,例如此字典格式列值只有一個key,setParameters賦值時只能定義一個key值
4.賦予列表/字典/元組值:@paramunittest.parametrized(*list/tuple)
5.列表元組賦予列值:def setParameters(self, t1, t2, tN):
'''注意t1, t2, t3名稱自定義,從左到右按順序一一對應值'''
self.t1 = t1
self.t2 = t2
self.tN = tN
6.列表元組取列值def testcase(self): self.t1
7.字典單賦予列值:def setParameters(self, key, keyN):
'''注意key, keyN是與字典key值必須一一對應'''
self.key = key
self.keyN = keyN
8.列表元組取取列def testcase(self): self.key1,字典通過key獲取vaulue值
特別注意:如列值下標大于10時,執(zhí)行順序是先執(zhí)行0,1再執(zhí)行10,11,再執(zhí)行2,3,.....9

二、源碼舉例(列表)

說明:一般讀取exel會生成一個列表,如果使用exel作為參數(shù)化,可以參考此

#!/usr/bin/python3
# encoding:utf-8
import unittest
import paramunittest
import time

list =[
  ['test', '123456', 'true'], 
  ['test1', '1234564', 'true']
]

@paramunittest.parametrized(*list)
class TestDemo(unittest.TestCase):
  def setParameters(self, user, pwd, result):
    '''注意user, pwd, result是從左到右按順序一一對應'''
    self.user = user
    self.pwd = pwd
    self.result = result

  def testcase(self):
    print("開始執(zhí)行用例:--------------")
    time.sleep(1)
    print("輸入用戶名:%s" % self.user)
    print("輸入密碼:%s" % self.pwd)
    print("期望結果:%s " % self.result)
    time.sleep(1)
    self.assertTrue(self.result == "true")
if __name__ == "__main__":
  #verbosity=2 顯示用例執(zhí)行詳情
  unittest.main(verbosity=2)

運行結果

testcase (paramunittest.TestDemo_0) ... 開始執(zhí)行用例:--------------
輸入用戶名:test
輸入密碼:123456
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_1) ... 輸入用戶名:test1
輸入密碼:1234564
期望結果:true
ok

----------------------------------------------------------------------
Ran 2 tests in 4.003s

OK

三、源碼舉例(字典)

#!/usr/bin/python3
# encoding:utf-8
import unittest
import paramunittest
import time
dict =[
  {"user": "test", "pwd": "123456", "result": "true"},
  {"user": "test1", "pwd": "1234564", "result": "true"},
  {"user": "test2", "pwd": "1234564", "result": "true"},
  {"user": "test3", "pwd": "1234564", "result": "true"},
  {"user": "test4", "pwd": "1234564", "result": "true"},
  {"user": "test5", "pwd": "1234564", "result": "true"},
  {"user": "test6", "pwd": "1234564", "result": "true"},
  {"user": "test7", "pwd": "1234564", "result": "true"},
  {"user": "test8", "pwd": "1234564", "result": "true"},
  {"user": "test9", "pwd": "1234564", "result": "true"},
  {"user": "test10", "pwd": "1234564", "result": "true"},
  {"user": "test11", "pwd": "1234564", "result": "true"}
]
@paramunittest.parametrized(*dict)
class TestDemo(unittest.TestCase):
  def setParameters(self, user, pwd, result):
    '''user, pwd, result三個參數(shù)字典的key一一對應'''
    self.user = user
    self.pwd = pwd
    self.result = result

  def testcase(self):
    print("開始執(zhí)行用例:--------------")
    time.sleep(1)
    print("輸入用戶名:%s" % self.user)
    print("輸入密碼:%s" % self.pwd)
    print("期望結果:%s " % self.result)
    time.sleep(1)
    self.assertTrue(self.result == "true")
if __name__ == "__main__":
  #verbosity=2 顯示用例執(zhí)行詳情
  unittest.main(verbosity=2)

運行結果

#說明:框架問題:當字典大于10時,執(zhí)行順序是先執(zhí)行0,1再執(zhí)行10,11,再執(zhí)行#2,3,.....9
testcase (paramunittest.TestDemo_0) ... 開始執(zhí)行用例:--------------
輸入用戶名:test
輸入密碼:123456
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_1) ... 輸入用戶名:test1
輸入密碼:1234564
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_10) ... 輸入用戶名:test10
輸入密碼:1234564
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_11) ... 輸入用戶名:test11
輸入密碼:1234564
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_2) ... 輸入用戶名:test2
輸入密碼:1234564
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_3) ... 輸入用戶名:test3
輸入密碼:1234564
期望結果:true
ok開始執(zhí)行用例:--------------

testcase (paramunittest.TestDemo_4) ... 輸入用戶名:test4
輸入密碼:1234564
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_5) ... 輸入用戶名:test5
輸入密碼:1234564
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_6) ... 輸入用戶名:test6
輸入密碼:1234564
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_7) ... 輸入用戶名:test7
輸入密碼:1234564
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_8) ... 輸入用戶名:test8
輸入密碼:1234564
期望結果:true
ok開始執(zhí)行用例:--------------

testcase (paramunittest.TestDemo_9) ... 輸入用戶名:test9
輸入密碼:1234564
期望結果:true
ok

----------------------------------------------------------------------
Ran 12 tests in 24.018s

OK

四、源碼舉例(元組)

#!/usr/bin/python3
# encoding:utf-8
import unittest
import paramunittest
import time

tuple=(
  ("test","123456","true"),
  ("test1","1234564","true")
  )


#另一種賦值方式:直接賦值
#@paramunittest.parametrized(
#  ("test","123456","true"),
#  ("test1","1234564","true")
#)

@paramunittest.parametrized(*tuple)
class TestDemo(unittest.TestCase):
  def setParameters(self, user, pwd, result):
    '''注意user, pwd, result是從做到右按順序一一對應'''
    self.user = user
    self.pwd = pwd
    self.result = result

  def testcase(self):
    print("開始執(zhí)行用例:--------------")
    time.sleep(1)
    print("輸入用戶名:%s" % self.user)
    print("輸入密碼:%s" % self.pwd)
    print("期望結果:%s " % self.result)
    time.sleep(1)
    self.assertTrue(self.result == "true")
if __name__ == "__main__":
  #verbosity=2 顯示用例執(zhí)行詳情
  unittest.main(verbosity=2)

運行結果

testcase (paramunittest.TestDemo_0) ... 開始執(zhí)行用例:--------------
輸入用戶名:test
輸入密碼:123456
期望結果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_1) ... 輸入用戶名:test1
輸入密碼:1234564
期望結果:true
ok

----------------------------------------------------------------------
Ran 2 tests in 4.002s

OK

五、問題:

問題描述:一個元組只有一個列值,如("test"),("test1"),setParameters之后運行報錯如下:

testcase (paramunittest.TestDemo_0) ... ERROR
testcase (paramunittest.TestDemo_1) ... ERROR

======================================================================
ERROR: testcase (paramunittest.TestDemo_0)
----------------------------------------------------------------------
Traceback (most recent call last):
File "D:\pythonaz\lib\site-packages\paramunittest.py", line 89, in setUp
self.setParameters(*parameters[0], **parameters[1])
TypeError: setParameters() takes 2 positional arguments but 5 were given

解決方法:保證一個元組列值兩個以上,如("test","123456"),("test1","123")

注:只有元組有這個問題,列表或字典無此問題

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python實戰(zhàn)串口助手_解決8串口多個發(fā)送的問題

    python實戰(zhàn)串口助手_解決8串口多個發(fā)送的問題

    今天小編就為大家分享一篇python實戰(zhàn)串口助手_解決8串口多個發(fā)送的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 在Python web中實現(xiàn)驗證碼圖片代碼分享

    在Python web中實現(xiàn)驗證碼圖片代碼分享

    這篇文章主要介紹了在Python web中實現(xiàn)驗證碼圖片代碼分享,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Python學習_幾種存取xls/xlsx文件的方法總結

    Python學習_幾種存取xls/xlsx文件的方法總結

    今天小編就為大家分享一篇Python學習_幾種存取xls/xlsx文件的方法總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 解讀python正則表達式括號問題

    解讀python正則表達式括號問題

    這篇文章主要介紹了python正則表達式括號問題解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • pandas使用apply多列生成一列數(shù)據(jù)的實例

    pandas使用apply多列生成一列數(shù)據(jù)的實例

    今天小編就為大家分享一篇pandas使用apply多列生成一列數(shù)據(jù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • pyinstaller執(zhí)行報錯的問題解決

    pyinstaller執(zhí)行報錯的問題解決

    有時候,PyInstaller可能無法正確識別和打包所有的依賴項,導致名稱錯誤,本文主要介紹了pyinstaller執(zhí)行報錯的解決方案,感興趣的可以了解一下
    2023-11-11
  • Python過濾txt文件內重復內容的方法

    Python過濾txt文件內重復內容的方法

    今天小編就為大家分享一篇Python過濾txt文件內重復內容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python實現(xiàn)兩種多分類混淆矩陣

    Python實現(xiàn)兩種多分類混淆矩陣

    這篇文章主要為大家介紹了Python實現(xiàn)兩種多分類混淆矩陣,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • python利用opencv實現(xiàn)SIFT特征提取與匹配

    python利用opencv實現(xiàn)SIFT特征提取與匹配

    這篇文章主要為大家詳細介紹了python利用opencv實現(xiàn)SIFT特征提取與匹配,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python入門教程之運算符重載詳解

    Python入門教程之運算符重載詳解

    運算符重載意味著賦予超出其預定義的操作含義的擴展含義。例如運算符 + 用于添加兩個整數(shù)以及連接兩個字符串和合并兩個列表。本文將通過示例帶大家詳細了解Python的運算符重載,感興趣的可以了解一下
    2022-09-09

最新評論