zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    tomcat安装
    卸载重安firefox
    Metasploit笔记之信息收集命令
    postgresql-9.0.18-1-linux.run启动
    ubuntu 安装自启动管理
    MySQL数据库”mysql SQL Error:1146,SQLState:42S02 “解决方法
    PE笔记之节表
    标准类型String(学习中)
    链表实现(打印元素的实现)
    C++中new和delete来创建和释放动态数组
  • 原文地址:https://www.cnblogs.com/XhyTechnologyShare/p/12263747.html
Copyright © 2011-2022 走看看