电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:3日期:2022-07-27 14:28:42

一、總結(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 paramunittest3.paramunittest支持字典、元組、列表作為入?yún)⒘斜砀袷剑篬['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 = t1self.t2 = t2self.tN = tN6.列表元組取列值def testcase(self): self.t17.字典單賦予列值:def setParameters(self, key, keyN):’’’注意key, keyN是與字典key值必須一一對(duì)應(yīng)’’’self.key = keyself.keyN = keyN8.列表元組取取列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-8import unittestimport paramunittestimport timelist =[ [’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-8import unittestimport paramunittestimport timedict =[ {'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,.....9testcase (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-8import unittestimport paramunittestimport timetuple=( ('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) ... ERRORtestcase (paramunittest.TestDemo_1) ... ERROR

======================================================================ERROR: testcase (paramunittest.TestDemo_0)----------------------------------------------------------------------Traceback (most recent call last):File 'D:pythonazlibsite-packagesparamunittest.py', line 89, in setUpself.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í)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 广州活动策划公司-15+年专业大型公关活动策划执行管理经验-睿阳广告 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 山东信蓝建设有限公司官网| T恤衫定做,企业文化衫制作订做,广告T恤POLO衫定制厂家[源头工厂]-【汉诚T恤定制网】 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 周口风机|周风风机|河南省周口通用风机厂 | 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 艺术漆十大品牌_艺术涂料加盟代理_蒙太奇艺术涂料厂家品牌|艺术漆|微水泥|硅藻泥|乳胶漆 | 地脚螺栓_材质_标准-永年县德联地脚螺栓厂家 | 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 净化工程_无尘车间_无尘车间装修-广州科凌净化工程有限公司 | 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 防渗膜厂家|养殖防渗膜|水产养殖防渗膜-泰安佳路通工程材料有限公司 | 空压机网_《压缩机》杂志 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 软膜天花_软膜灯箱_首选乐创品牌_一站式天花软膜材料供应商! | 飞歌臭氧发生器厂家_水处理臭氧发生器_十大臭氧消毒机品牌 | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | 家乐事净水器官网-净水器厂家「官方」| 不锈钢发酵罐_水果酒发酵罐_谷物发酵罐_山东誉诚不锈钢制品有限公司 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 中矗模型-深圳中矗模型设计有限公司 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 纸张环压仪-纸张平滑度仪-杭州纸邦自动化技术有限公司 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 压力变送器-上海武锐自动化设备有限公司 | 玄米影院| 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 |