写点什么

软件测试 / 测试开发丨接口测试配置的数据驱动

作者:测试人
  • 2023-04-19
    北京
  • 本文字数:939 字

    阅读完需:约 3 分钟

获取更多相关知识

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

环境准备

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

代码如下:

#把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: 4default:  "dev"
复制代码

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

# 把host修改为ip,并附加host headerenv = 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 文件来直接修改配置信息。

每日一问

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

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

发布于: 刚刚阅读数: 4
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨接口测试配置的数据驱动_软件测试_测试人_InfoQ写作社区