Python-unittest参数化

做接口测试的时候,同一个接口,输入的参数一样,参数值不一样,这时候,写多个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文件,用浏览器打开可以查看测试结果

原文地址:https://www.cnblogs.com/niuniu2018/p/8080901.html