最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、總結(jié)說明

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

總結(jié)說明:

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

二、源碼舉例(列表)

說明:一般讀取exel會(huì)生成一個(gè)列表,如果使用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是從左到右按順序一一對(duì)應(yīng)'''
    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("期望結(jié)果:%s " % self.result)
    time.sleep(1)
    self.assertTrue(self.result == "true")
if __name__ == "__main__":
  #verbosity=2 顯示用例執(zhí)行詳情
  unittest.main(verbosity=2)

運(yùn)行結(jié)果

testcase (paramunittest.TestDemo_0) ... 開始執(zhí)行用例:--------------
輸入用戶名:test
輸入密碼:123456
期望結(jié)果:true
ok
開始執(zhí)行用例:--------------
testcase (paramunittest.TestDemo_1) ... 輸入用戶名:test1
輸入密碼:1234564
期望結(jié)果: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三個(gè)參數(shù)字典的key一一對(duì)應(yīng)'''
    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("期望結(jié)果:%s " % self.result)
    time.sleep(1)
    self.assertTrue(self.result == "true")
if __name__ == "__main__":
  #verbosity=2 顯示用例執(zhí)行詳情
  unittest.main(verbosity=2)

運(yùn)行結(jié)果

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

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

testcase (paramunittest.TestDemo_9) ... 輸入用戶名:test9
輸入密碼:1234564
期望結(jié)果: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是從做到右按順序一一對(duì)應(yīng)'''
    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("期望結(jié)果:%s " % self.result)
    time.sleep(1)
    self.assertTrue(self.result == "true")
if __name__ == "__main__":
  #verbosity=2 顯示用例執(zhí)行詳情
  unittest.main(verbosity=2)

運(yùn)行結(jié)果

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

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

OK

五、問題:

問題描述:一個(gè)元組只有一個(gè)列值,如("test"),("test1"),setParameters之后運(yùn)行報(bào)錯(cuò)如下:

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

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pygame編寫音樂播放器的實(shí)現(xiàn)代碼示例

    pygame編寫音樂播放器的實(shí)現(xiàn)代碼示例

    這篇文章主要介紹了pygame編寫音樂播放器的實(shí)現(xiàn)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python sorted對(duì)list和dict排序

    Python sorted對(duì)list和dict排序

    這篇文章主要介紹了Python sorted對(duì)list和dict排序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python flask返回中文亂碼的解決方法分享

    Python flask返回中文亂碼的解決方法分享

    有時(shí)使用flask返回?cái)?shù)據(jù)會(huì)出現(xiàn)帶有中文的時(shí)候會(huì)顯示成亂碼(ascii)的情況出現(xiàn),所以本文為大家整理了一下解決的方法,需要的小伙伴可以參考一下
    2023-07-07
  • pthon貪吃蛇游戲詳細(xì)代碼

    pthon貪吃蛇游戲詳細(xì)代碼

    這篇文章主要為大家詳細(xì)介紹了Python貪吃蛇游戲詳細(xì)代碼和注釋,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python閉包與閉包陷阱舉例詳解

    Python閉包與閉包陷阱舉例詳解

    閉包并不只是一個(gè)Python中的概念,在函數(shù)式編程語言中應(yīng)用較為廣泛,下面這篇文章主要給大家介紹了關(guān)于Python閉包與閉包陷阱的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Python使用psutil獲取進(jìn)程信息的例子

    Python使用psutil獲取進(jìn)程信息的例子

    今天小編就為大家分享一篇Python使用psutil獲取進(jìn)程信息的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 使用Python實(shí)現(xiàn)XLS和XLSX之間的相互轉(zhuǎn)換

    使用Python實(shí)現(xiàn)XLS和XLSX之間的相互轉(zhuǎn)換

    在日常工作中,我們經(jīng)常需要處理和轉(zhuǎn)換不同格式的Excel文件,以適應(yīng)不同的需求和軟件兼容性,Excel文件的兩種常見格式是XLS(Excel 97-2003)和XLSX(Excel 2007及以上版本),本文將詳細(xì)介紹如何使用Python在XLS和XLSX格式之間進(jìn)行轉(zhuǎn)換,需要的朋友可以參考下
    2024-09-09
  • Python requests庫用法實(shí)例詳解

    Python requests庫用法實(shí)例詳解

    這篇文章主要介紹了Python requests庫用法,結(jié)合實(shí)例形式分析了Request庫的功能、安裝、請(qǐng)求創(chuàng)建、響應(yīng)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python入門篇之字符串

    Python入門篇之字符串

    可能大多數(shù)人在學(xué)習(xí)C語言的時(shí)候,最先接觸的數(shù)據(jù)類型就是字符串,因?yàn)榇蠖嘟坛潭际且?quot;Hello world"這個(gè)程序作為入門程序,這個(gè)程序中要打印的"Hello world"就是字符串。今天我們來了解一下Python中的字符串,看看它的用法。
    2014-10-10
  • Python學(xué)習(xí)之線程池與GIL全局鎖詳解

    Python學(xué)習(xí)之線程池與GIL全局鎖詳解

    本文我們將學(xué)習(xí)線程池的創(chuàng)建與全局鎖。線程池的創(chuàng)建于進(jìn)程池的原理是相同的;關(guān)于GIL全局鎖,暫時(shí)沒有代碼上的練習(xí),而是對(duì)其概念進(jìn)行一個(gè)簡(jiǎn)單的啟蒙,感興趣的可以了解一下
    2022-04-04

最新評(píng)論

云龙县| 米泉市| 成安县| 修文县| 师宗县| 远安县| 社旗县| 奉贤区| 阿坝县| 舞钢市| 淮南市| 永登县| 琼中| 且末县| 义马市| 巴马| 淮安市| 临朐县| 青神县| 保靖县| 湘西| 泌阳县| 凤凰县| 百色市| 德江县| 安化县| 凤阳县| 木里| 米林县| 保山市| 颍上县| 大化| 揭西县| 柯坪县| 宁晋县| 深圳市| 黑河市| 凉城县| 荣成市| 承德县| 泉州市|