ddt数据驱动 自动化测试 四种场景讲解

概述:

    自动化测试中,需要通过数据驱动来达到测试目的,比如验证登录功能,整个公司有100人,并且HR部门结果是动态变更的,每个用户的密码也是动态的。这时候可以使用动态的用户表作为参数传入。下面的例子是简化版本,没有贴出完整的python脚本。

Conditions:

    1、需要导入ddt第三方库from ddt import ddt, data, file_data, unpack

    2、使用unittest + python作为自动化测试框架


场景1:单个数据

    @ddt

    classMoveToABCTest(unittest.TestCase):

        @data("AAAA-2019080900504")

        def test_s1_movetoABC(self,item):

                #item会遍历data中的实际值,如本例的"AAAA-2019080900504"

                print(item)

注意:类上的装饰器(注解)ddt,不要忘记

场景2:多个数据

    @ddt

    class MoveToABCTest(unittest.TestCase):

        @data("AAAA-2019080900504","BBBB-2019080900505")

        def test_s1_movetoABC(self,item):

                #item会遍历data中的实际值,如本例的"AAAA-2019080900504","BBBB-2019080900505"

                print(item)


场景3:组合数据

    @ddt

    class MoveToABCTest(unittest.TestCase):

        @data(("zhangsan","123456"),("wangwu","123456"))

        @unpack

        def test_s1_openhomepage(self,username,password):

                #username、password两个形参分别对应data中的数据,如("zhangsan","123456"),然后遍历之

                print(username)

                print(password)

注意:测试方法中的装饰器(注解)unpack,不要忘记


场景4:引入外部文件

源数据文件data.yml

[{

    "data":{

        "yearmonth":"2019-10",

        "code":"11111",

        "code2":"AAAAA"

    }

},

    {

    "data":{

        "yearmonth":"2019-10",

        "code":"22222",

        "code2":"BBBBB"

    }

}

]

测试代码:

    @ddt

    class MoveToAAATest(unittest.TestCase):

        @file_data("E:\project\python\data\getBudget2.yml")

        @unpack

        def test_s2_getByOneDate(self,**kwargs):

                #获取数据,如requests.post,可以直接将data传入

                data= kwargs.get("data")

                print(data)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容