Python基于paramunittest模块实现excl参数化

Python基于paramunittest模块实现excl参数化,第1张

概述转载:https://www.jb51.net/article/185445.htm1.paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例2.导入paramunittest:importparamunittest3.paramunittest支持字典、元组、列表作为入参列表格式:[["vaule"],["vaule2"]],setParameters赋

转载:https://www.jb51.net/article/185445.htm

1.paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例
2.导入paramunittest:import paramunittest
3.paramunittest支持字典、元组、列表作为入参
列表格式:[["vaule"],["vaule2"]],setParameters赋值的个数与列值一一对应,例如此列表格式列值只有一个,赋值时只能自定义一个值
元组格式:(("pwd","vaule"),("pwd","vaule2")),元组列值必须保证两个以上,如果只有一个值,setParameters时报错,setParameters赋值的个数与列值一一对应,例如此元组格式列值有2个,赋值时只能自定义2个值
字典格式:[{"key": "vaule" },{"key": "vaule2"}],字典保证key值一致,如相同个数,相同位置,例如此字典格式列值只有一个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时,执行顺序是先执行0,1再执行10,11,再执行2,3,.....9

二、源码举例(列表)

说明:一般读取exel会生成一个列表,如果使用exel作为参数化,可以参考此

123456789101112131415161718192021222324252627282930#!/usr/bin/python3# enCoding:utf-8import unittestimport paramunittestimport 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("开始执行用例:--------------")    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 显示用例执行详情  unittest.main(verbosity=2)

运行结果

testcase (paramunittest.TestDemo_0) ... 开始执行用例:--------------
输入用户名:test
输入密码:123456
期望结果:true
ok
开始执行用例:--------------
testcase (paramunittest.TestDemo_1) ... 输入用户名:test1
输入密码:1234564
期望结果:true
ok

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

OK

三、源码举例(字典)

1234567891011121314151617181920212223242526272829303132333435363738#!/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三个参数字典的key一一对应'''    self.user = user    self.pwd = pwd    self.result = result   def testcase(self):    print("开始执行用例:--------------")    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 显示用例执行详情  unittest.main(verbosity=2)
总结

以上是内存溢出为你收集整理的Python基于paramunittest模块实现excl参数化全部内容,希望文章能够帮你解决Python基于paramunittest模块实现excl参数化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1187006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存