做接口测试的时候,同一个接口,输入的参数一样,参数值不一样,这时候,写多个case就是冗余的,就可以用参数化来实现,第三方模块有这个实现参数化的功能,安装pip install nose-parameterized 即可
import unittest,HTMLTestRunner from nose_parameterized import parameterized def login(username,passwd): if username=='niuhangyang'and passwd=='123456': return True return False class Login(unittest.TestCase): @parameterized.expand( [ ('niuhangyang','123456',True), ('niuhangyang','',False), ('','', False), ('niuhangyang','123',False) ] ) def test_login(self,username,passwd,hope): '''这是login''' res=login(username,passwd) self.assertEqual(res,hope) if __name__=='__main__': suite=unittest.TestSuite()#定义个空的测试集合 suite.addTest(unittest.makeSuite(Login))#添加测试用例到集合中 fw=open('login.html','wb') runner=HTMLTestRunner.HTMLTestRunner(stream=fw,title='登录case')#输入测试结果到html文件中 runner.run(suite)#运行这个测试集合
运行后会生成一个login.html文件,用浏览器打开可以查看测试结果