接口测试之unittest参数化(paramunittest)

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

参数化的框架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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值