• 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()
    

      

  • 相关阅读:
    Jackson 框架,轻易转换JSON
    Java Thread 多线程 操作线程
    Oracle笔记 四、增删改、事务
    Oracle笔记 六、PL/SQL简单语句块、变量定义
    Java 的JSON、XML转换方法——目录索引
    SpringMVC 中整合JSON、XML视图一
    FreeMarker整合Spring 3
    Java Thread 多线程 介绍
    Jaxb2 转换XML文档
    Java Thread 多线程同步、锁、通信
  • 原文地址:https://www.cnblogs.com/hherbk/p/12712410.html
Copyright © 2020-2023  润新知