• 6.pytest参数化操作


    前面文章有写道通过fixture中params参数完成参数化,但是该方式会应用到所有测试用例,如果只想在单个测试用例上使用,则需要用到@pytest.mark.parametrize这个装饰器完成

    我们想要实现对一个登陆程序的参数化操作。代码如下:

    # 登录程序源码
    login_info = {'zhangsan':'123456','lisi':'000000'}
    def login(username,password):
        if username in login_info:
            if password == login_info[username]:
                return '登录成功'
            else:
                return '密码输入错误'
        else:
            return '用户名输入错误'
    # 测试代码
    # @pytest.mark.parametrize该装饰器所接收参数是通过列表的方式接收,每一组参数为一个元组,如果数据较多的情况下,可以将数据放到文件中读取
    @pytest.mark.parametrize("username,password,expect", [ ('zhangsan','123456','登录成功'), ('zhangsi', '123456', '用户名输入错误'), ('zhangsan', '000000', '密码输入错误'), ]) def test_login(username,password,expect): assert login(username,password) == expect

     如果想要参数的自由组合,则可以通过多个参数化装饰器完成

    # 程序源码
    def login(username,password):
        print('用户名为:%s	密码为:%s'%(username,password))
        
    # 测试代码
    @pytest.mark.parametrize("username",['zhangsan','lisi','wangwu'])
    @pytest.mark.parametrize("password",['123456','000000','abcdef'])
    def testlogin(username,password):
        login(username,password)

  • 相关阅读:
    javaSE基础(六)--IO流
    javaSE基础(五)--JDBC
    javaSE基础(四)--Map集合
    javaSE基础(三)--List集合
    javaSE基础(二)
    javaSE基础(一)
    eclipse快捷键大全
    mybatis学习-基础
    工厂模式
    GC日志和jvm内存的分代
  • 原文地址:https://www.cnblogs.com/XhyTechnologyShare/p/12263747.html
Copyright © 2020-2023  润新知