unittest如何做参数化呢?
我们在写case 的时候如果就是参数不同,我们只需要把参数都写到一个list里面, 然后循环去执行这个case即可。
unittest中有一个模块parameterized,可以帮我们循环,不需要自己写循环,直接pip install parameterized安装即可。
例如:一个登陆的case
import parameterized import unittest,BeautifulReport data = [ [‘admin‘,‘123456‘,True], #第三列表示预期结果 [‘admin‘,‘1122‘,False], [‘sdfsdf‘,‘1111‘,False] ] data1 = [ [‘admin‘,‘123456‘,True,‘正常登陆‘], #第四列表示描述 [‘admin‘,‘1122‘,False,‘冻结用户登陆‘], [‘sdfsdf‘,‘1111‘,False,‘黑名单用户登陆‘] ] def login(user,password): if user==‘admin‘ and password==‘123456‘: return True return False class LoginTest(unittest.TestCase): @parameterized.parameterized.expand(data) def test_login(self,user,password,expect): ‘‘‘登陆‘‘‘ # 加上‘‘‘在测试报告中会显示用例描述 result=login(user,password) self.assertEqual(expect,result) @parameterized.parameterized.expand(data1) def test_login1(self,user,password,expect,desc): self._testMethodDoc=desc #自己指定用例描述的展示样子 result=login(user,password) self.assertEqual(expect,result) bf=BeautifulReport.BeautifulReport(unittest.makeSuite(LoginTest)) bf.report(filename=‘11-17测试报告‘,description=‘接口测试报告‘)
结果:展示了2种用例描述的样式,其中123条是指定的用例描述,456条是默认的样式。
原文:https://www.cnblogs.com/tata-learning/p/11902146.html