我们知道想要日常测试参数化的操作有两种方法第一种使用工具就是postman和jmeter进行文件参数化
https://www.cnblogs.com/weilemeizi/p/11446514.html
https://www.cnblogs.com/weilemeizi/p/9002852.html
另外一种代码就是使用python代码实现参数化
import unittest
import my_function
import HTMLTestRunner
import parameterized 需要安装这个模块
def add(a,b):
return a+b
class TestAdd(unittest.TestCase):
def test_add_normal(self):
'''正常测试加法的,by huoziyang'''
result=my_function.add(1,2)
self.assertEqual(3,result)
def test_add_error(self):
'''测试失败使用'''
result=my_function.add(1,2)
self.assertEqual(4,result)
def test_add_error2(self):
'''测试失败有msg的'''
result=my_function.add(1,2)
self.assertEqual(4,result,'正常整数加法没有通过')
@parameterized.parameterized.expand(#必须这么传值
[
[1, 2, 3],
[-1, 2, 1],
[-1, 2, 2],
]
)
def test_param_add(self, a, b, c): # 参数化的函数
result =add(a,b)#这两句就是调用
self.assertEqual(c,result,'预期是%s,实际结果是%s'%(c,result))
if __name__ == '__main__':
test_suite = unittest.makeSuite(TestAdd)
with open('report.html','wb') as fw:
runner = HTMLTestRunner.HTMLTestRunner(stream=fw,title='天马座测试报告',
description='天马座接口测试报告',
verbosity=2
)
runner.run(test_suite)#加了这条才会执行
效果图
另外一种测试报告模板
import unittest
import my_function
import HTMLTestRunnerNew
import HTMLTestRunner
import parameterized
def add(a,b):
return a+b
class TestAdd(unittest.TestCase):
def test_add_normal(self):
'''正常测试加法的,by huoziyang'''
result=my_function.add(1,2)
self.assertEqual(3,result)
def test_add_error(self):
'''测试失败使用'''
result=my_function.add(1,2)
self.assertEqual(4,result)
def test_add_error2(self):
'''测试失败有msg的'''
result=my_function.add(1,2)
self.assertEqual(4,result,'正常整数加法没有通过')
@parameterized.parameterized.expand(#必须这么传值
[
[1, 2, 3],
[-1, 2, 1],
[-1, 2, 2],
]
)
def test_param_add(self, a, b, c): # 参数化的函数
result =add(a,b)#这两句就是调用
self.assertEqual(c,result,'预期是%s,实际结果是%s'%(c,result))
if __name__ == '__main__':
test_suite = unittest.makeSuite(TestAdd)
with open('report.html','wb') as fw:
runner = HTMLTestRunnerNew.HTMLTestRunner(stream=fw,title='通软测试报告',
description='通软接口测试报告',
verbosity=2
)
runner.run(test_suite)