接口测试框架实战(六) | 配置的数据驱动
本文节选自霍格沃玆测试学院内部教材,文末链接进阶学习!
在实际工作中,为了便于维护,对于环境的切换和配置,通常不会使用硬编码的形式完成。在之前文章《多环境下的接口测试》中,已经介绍了如何将环境的切换作为一个可配置的选项。本文会把这部分内容进行重构,使用数据驱动的方式完成多环境的配置。
环境准备
参考《多环境下的接口测试》,将环境配置部分改为数据驱动的模式:
代码如下:
#把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
文件来直接修改配置信息。
每日一问
关于测试的数据驱动,你有没有遇到过令你印象深刻的难题,或者可分享的实战经验?欢迎在评论区留言。
更多接口测试框架实战进阶内容,我们在后续文章分享。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示