pythonunittest参数化_pytest和unittest中参数化如何做

参数化应用场景,一个场景的用例会用到多条数据来进行验证,比如登录功能会用到正确的用户名、密码登录,错误的用户名、正确的密码,正确的用户名、错误的密码等等来进行测试,这时就可以用到框架中的参数化,来便捷的完成测试。

参数化 就是数据驱动思想,即可以在一个测试用例中进行多组的数据测试,而且每一组数据都是分开的、独立的

1.uniitest中参数化的用法

1.1安装ddt模块,是python的一个库

pip insatll ddt

1.1引入ddt模块,是unittest的一个插件

import ddt

1.2在类前面加上一个装饰器@ddt.ddt,表示要使用ddt模块了,在要使用的方法上加上@ddt.data()

@ddt.ddt 没有括号

class TestDemo:

@ddt.data(*测试数据) #有括号,要加*,因为是不定长参数

#将测试数据中的一组测试数据,赋值到data_info这个参数,相当于一个for循环,每次取一组数据给测试方法

def test_demo(self,data_info):

pass

2.pytest中参数化的用法

在测试用例的前面加上:

@pytest.mark.parametrize("参数名",列表数据)

参数名:用来接收每一项数据,并作为测试用例的参数。

列表数据:一组测试数据。

@pytest.mark.parametrize("参数1,参数2",[(数据1,数据2),(数据1,数据2)])

示例:

@pytest.mark.parametrize("a,b,c",[(1,3,4),(10,35,45),(22.22,22.22,44.44)])

def test_add(a,b,c):

res = a + b

assert res == c

@pytest.mark.parametrize("fail",lds.fail)

#(参数名称,数据)

def test_error_msg_01(self,fail,init_driver):#(fail是参数名称,lds.fail是数据)

lp=LoginPage(init_driver)

lp.login_success(fail["username"],fail["passwd"])

assert fail["check"]==lp.login_fail_01()

@pytest.mark.parametrize("case_info", test_data)#参数化,("参数名",测试数据)

deftest_login(self,case_info):

url= self.yaml_data["api"]["zs_login_url"] + case_info["URL"]

method= case_info["Method"]

params= case_info["Params"]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值