zoukankan      html  css  js  c++  java
  • 接口测试框架实战(六) | 配置的数据驱动

    《Python
    测试开发实战进阶》

    课程,4 个月挑战 BAT 大厂年薪 50W+ Offer,文末加群!

    在实际工作中,为了便于维护,对于环境的切换和配置,通常不会使用硬编码的形式完成。在之前文章
    《多环境下的接口测试》
    中,已经介绍了如何将环境的切换作为一个可配置的选项。本文会把这部分内容进行重构,使用数据驱动的方式完成多环境的配置。

    环境准备

    参考
    《多环境下的接口测试》
    ,将环境配置部分改为数据驱动的模式:

    代码如下:

    #把host修改为ip,并附加host header  
      
    env={  
        "docker.testing-studio.com": {  
            "dev": "127.0.0.1",  
            "test": "1.1.1.2"  
        },  
        "default": "dev"  
    }  
    data["url"]=str(data["url"]).replace(  
        "docker.testing-studio.com",  
        env["docker.testing-studio.com"][env["default"]]  
    )  
    data["headers"]["Host"]="docker.testing-studio.com"  
    

    实战演示

    依然以 YAML 为示例,将所有的环境配置信息放到 env.yml 文件中。如果怕出错,可以先使用 yaml.safe_dump(env)
    dict 格式的代码转换为 YAML。

    如下所示,打印出来的,就是成功转换 YAML 格式的配置信息:

    def test_send(self):  
        env={  
            "docker.testing-studio.com": {  
                "dev": "127.0.0.1",  
                "test": "1.1.1.2"  
            },  
            "default": "dev"  
        }  
        yaml2 = yaml.safe_dump(env)  
        print("")  
        print(yaml2)  
    

    将打印出来的内容粘贴到 env.yml 文件中:

    docker.testing-studio.com:  
      dev: "127.0.0.1"  
      test: "1.1.1.2"  
      level: 4  
    default:  
      "dev"  
    

    将环境准备中的代码稍作修改,把 env 变量从一个典型 dict 改为使用 yaml.safe_load 读取 env.yml

    # 把host修改为ip,并附加host header  
    env = yaml.safe_load(open("./env.yml"))  
    data["url"] = str(data["url"]).\  
        replace("docker.testing-studio.com",  
        env["docker.testing-studio.com"][env["default"]])  
    data["headers"]["Host"] = "docker.testing-studio.com"  
    

    如此一来,就可以实现使用数据驱动的方式,通过修改 env.yml 文件来直接修改配置信息。

    每日一问

    关于测试的数据驱动,你有没有遇到过令你印象深刻的难题,或者可分享的实战经验?欢迎在评论区留言。

    更多接口测试框架实战进阶内容,我们在后续文章分享。关注 「 霍格沃兹测试学院 」公众号,获取更多测试开发干货内容。


    来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
    QQ交流群:484590337
    公众号 TestingStudio
    点击获取更多信息

  • 相关阅读:
    野指针防范
    Linuxgate.so.1的含义[ZZ]
    malloc hook
    用PDF补丁丁一分钟批量删除PDF文档的第一页和最后一页
    PDF 补丁丁 0.4 测试版已经上线
    生活小百科:实用的生活保健小窍门,60则!....
    Pascal Analyzer 4 代码分析使用简要说明
    大数法则
    make: *** No rule to make target `all'. Stop.
    界面动态配置:持久化反持久化
  • 原文地址:https://www.cnblogs.com/hogwarts/p/15822627.html
Copyright © 2011-2022 走看看