参数化的框架paramunittest,可以传入多组参数,自动生成多个用例
导入两个包:
import unittest
import paramunittest
待测试的接口数据:yaml文件
#以-开头,读出为列表
- case_name: 'login_pass'
user: 'admin1'
pwd: '123456'
code: '200'
- case_name: 'login_fail'
user: 'admin1'
pwd: '111111'
code: '1'
- case_name: 'login_error'
user: 'admin1'
pwd: ''
code: '-1'
MyUnittest.py
#coding=utf-8
import unittest
import paramunittest
import time
import yaml
with open('D:/PythonProject/pythonInterface/list.yml',encoding = 'utf-8') as fp_stream:
datalist = yaml.load(fp_stream,Loader=yaml.FullLoader)
@paramunittest.parametrized(*datalist)
class TestDemo(unittest.TestCase):
#注意这里接受参数的时候,必须要定义setParameters这个方法,并且只能是这个名称。
#括号后面的参数分别接受传入的参数名称。顺序必须保持一致
def setParameters(self,case_name,user,pwd,code):
self.case_name = case_name
self.user = user
self.pwd = pwd
self.code = code
#测试前准备
def setUp(self) :
print("开始测试")
#断言
def testcase(self):
print("try")
time.sleep(0.8)
if self.case_name == 'login_pass':
self.assertTrue(self.code == '200')
if self.case_name == 'login_fail':
self.assertTrue(self.code == '1')
if self.case_name == 'login_error':
self.assertTrue(self.code == '-1')
#测试结束
def tearDown(self) :
print("结束测试\n\n")
if __name__ == '__main__':
#verbosity=2 显示用例执行详情
unittest.main(verbosity=2)
执行结果:
开始测试
try
testcase (paramunittest.TestDemo_0) ... ok
结束测试
testcase (paramunittest.TestDemo_1) ...
开始测试
try
结束测试
开始测试
try
ok
testcase (paramunittest.TestDemo_2) ... ok
结束测试
Ran 3 tests in 2.422s
OK
非常好的一个博客:https://blog.youkuaiyun.com/songlh1234/article/details/84317617

本文详细介绍如何使用Python的ParamUnittest框架进行参数化测试,通过读取YAML文件中的多组测试数据,自动生成并执行多个测试用例,实现对接口的全面验证。
1948

被折叠的 条评论
为什么被折叠?



