ITPub博客

首页 > 数据库 > Oracle > fixtrue基础之params参数实现简单参数化

fixtrue基础之params参数实现简单参数化

原创 Oracle 作者:新梦想IT 时间:2022-08-12 16:22:19 0 删除 编辑


 

 

前言

我的努力求学没有得到别的好处,只不过是愈来愈发觉自己的无知。 ——笛卡儿 

如果大家越来越在一个领域思考的话,应该会有如上的认知。

 

一、 params参数是什么?

 

 

·  params参数是fixture方法中的其中一个参数;(ps:为了防止有些朋友单独看这篇博文才写了这句)

·  params参数接受列表类型的数据 实现参数化功能。

 

二、关于参数化的理解

 

 

 

·  相同的 测试脚本 使用不同的测试数据来执行,测试数据和测试行为进行了完全的分离,这样的测试脚本设计模式叫做数据驱动;

·  参数化就是数据驱动实现的一种表现;

·  比如登录功能模块,使用 3组不同的用户名和密码进行登录来验证登录功能模块的正确性,可以把这组不同的用户名和密码理解为参数化的数据;

·  为什么要使用不同的数据来对相同模块功能进行验证,因为这样测试会更充分一些,也可以检查程序是否处理了各种异常情况(如错误的用户名、错误的密码等)。

 

 

 

三、 params参数应用

 

 

·  3.1 简单应用params参数

import pytest

 

user_list = ['xiaoming','xiaohong','xiaoli']

@pytest.fixture(params=user_list)    #params参数接收列表类型数据

def setUp(request):                        #传参默认request参数

    return request.param

 

def testadd(setUp):

    print('\n用户名:'+ str(setUp))

    assert1

 

if__name__=='__main__':

    pytest.main(["-s"])

 

 

 

 

·  3.2 思维发散一点,一组参数包含多个值

 

import pytest

 

#使用包含字典的列表传值,解决一组参数只有一个的问题

user_list = [{'username':'xiaoming','password':'666666'}, 

                 {'username':'xiaohong','password':'888888'}, 

                 {'username':'xiaoli','password':'123456'}

                ]

@pytest.fixture(params=user_list)

def setUp(request):

    returnrequest.param

 

def testadd(setUp):

    print('\n用户名:'+ str(setUp['username']),end=' ')    #setUp['username']取用户名

    print('密码:'+ str(setUp['password']))                     #setUp['password']取密码

    assert 1

 

if__name__=='__main__': 

     pytest.main(["-s"])

 

 

上述两个实例小结:

 

 

·  params参数只要求是列表类型的数据;

·  传参默认 request参数不能更改其它名字;

·  有了示例 2,大家其实可以想到把 测试 的期望结果也做成参数化的形式

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69940641/viewspace-2910227/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
新梦想IT职业教育(新梦想软件测试),是长沙一家专注于IT教育培训的机构。分享干货不容易,如果想了解更多的软件测试精彩干货,请留言交流,感谢阅读!

注册时间:2019-07-11

  • 博文量
    237
  • 访问量
    140202