《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: 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 文件来直接修改配置信息。

每日一问

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

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


推荐学习

霍格沃兹出品 《测试开发实战进阶》课程,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践。4 个月 20+ 项目实战强化训练,带你一站式掌握 BAT 测试开发工程师必备核心技能(对标阿里P6+,年薪50W+)!学员直推 BAT 名企测试经理,普遍涨薪 50%+!

?15 期热招中,入群获取完整大纲?

Python 测试开发实战进阶,挑战阿里P6+,年薪50W+!

接口测试框架实战(五) | 测试数据的数据驱动

接口测试框架实战(四) | 通用 API 封装实战

接口测试框架实战(三) | APIObject 模式、原则与应用

接口测试框架实战(二) | 搞定多环境下的接口测试

接口测试框架实战(一) | 流程封装与基于加密接口的测试用例设计

干货 | 一文搞定 pytest 自动化测试框架(一)

干货 | 一文搞定 pytest 自动化测试框架(二)

Python 自动化测试(三): pytest 参数化测试用例构建

Python 自动化测试(四):数据驱动

Python 自动化测试(五): Pytest 结合 Allure 生成测试报告

干货 | 一文搞定 Linux 常用高频命令

戳“阅读原文”,提升自己的核心竞争力吧!

8s yaml 配置生成_接口测试框架实战(六) | 配置的数据驱动相关推荐

  1. CSDN【top1】Pytest接口测试框架实战项目搭建

    一.前言 想想之前玩的框架,做的项目都是把数据用例冗余到一起的,不符合数据用例分离的思想,所以准备基于pytest搭建个测试框架,支持数据用例分离,接下来会用一系列文章逐步介绍整个框架是怎么搭建起来的 ...

  2. python接口测试框架实战与自动化进阶(三)

    python接口测试框架实战与自动化进阶 一.持续集成 1.持续集成环境搭建 1)安装Jenkins 官网下载后直接安装:https://jenkins.io/ 终端直接安装及启动:java -jar ...

  3. 8s yaml 配置生成_cfg4py:一个严肃的Python配置模块应有的风格-层级式、部署环境自适应、自动补全...

    关于如何配置一个Python程序,如果你还停留在使用ini,json,yaml,xml等文件格式之争,或者还在为使用哪个库来加载配置纠结,只能说明你还没有开发过一个严肃认真的大型Python应用程序. ...

  4. python consul配置中心_微服务注册发现配置中心-consul

    Consul详解 近期在微服务业务中用的注册中心,在此简单记录下以备后用. 一 概述 1.1 概念 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.Con ...

  5. @scheduled注解配置时间_探究 Spring 的定时任务配置

    作者 | 郭朝兴 责编 | Elle 最近在项目开发中进行了一些Spring定时任务的开发工作,在开发过程中对Spring定时任务的配置方式进行了一些研究,现在对各种配置方式进行一个总结.Schedu ...

  6. eigrp配置实验_路由器 OSPF 动态路由配置

    本文档详细介绍路由器 OSPF 动态路由配置的方法,文内含长段代码可复制可往左滑,希望对大家有帮助! 实验目的 掌握 OSPF 协议的配置方法 掌握查看通过动态路由协议 OSPF 学习产生的路由 熟悉 ...

  7. 如何查看笔记本电脑配置参数_江淮平板运输车图片配置参数查看(罗平)

    江淮平板运输车图片配置参数查看(罗平) 平板运输车制造厂家,平板运输车种类有:蓝牌平板车,单桥平板车,三桥平板运输车,四桥平板运输车,东风平板运输车,解放平板运输车,江淮平板运输车,大运平板运输车,东 ...

  8. 配置中文_星球大战:战机中队配置需求公布 支持中文

    近日<星球大战>系列新作<星球大战:战机中队>公布,该作采用寒霜引擎打造,支持中文.游戏将于2020年10月3日发售,预购价格为238元,登陆Xbox One/PS4/PC(S ...

  9. word打开老是配置进度_小白教程 | office出现配置进度框,怎么办?

    最近很多同学在备考二级时候,自己的电脑上office软件Word或者Excel出问题了,每次打开都会出现配置进度框. 这种情况怎么办呢? 这种情况都是注册表的问题,马上安排解决 之前在  右键菜单没有 ...

最新文章

  1. javascript与浏览器学习(一)
  2. C#实现快速重命名JPEG文件
  3. 基于MATLAB均值漂移图像分割技术
  4. c语言不可见字符的ascii,转CHAR不可见字符
  5. xpath之string(.)方法
  6. 有道云 语法高亮_antlr语法增强使用
  7. C++普通类继承模版类demo
  8. 基于java springboot框架的电子发票管理系统
  9. 安防监控系统百问百答
  10. excel汇总报表如何做?
  11. 数据分析的工作目标是什么
  12. python使用numba库实现gpu加速
  13. docker swarm实践爆心肝总结全在这里,火速收藏!!!
  14. CIDR表示IP地址
  15. 主机、web漏洞修复整理
  16. QQ传输文件原理参考(来自互联网)
  17. 转子豪兄 树莓派上安装OpenCV
  18. 漫画解读:车规芯片为何比普通芯片贵?跟普通芯片有什么差异?
  19. js判断当前设备和获取设备、浏览器宽高
  20. 独立钻石Solitaire算法求解

热门文章

  1. zune自搭虚拟服务器离线升级,Zune 30g 固件更新至 3.3 记录
  2. 常用计算机网络性能指标的是什么,什么是Bit?【计算机网络的性能指标】
  3. 2020非全日计算机博士,在职攻读博士是不是非常难,免考在职博士和非全日博士有什么不同...
  4. n.html id=198,YPE htmlhtml lang=enhead data-n-head-ssrtitle data-n-=true小程序获取不到unionid 微信开放社区...
  5. JavaScript方法——call和apply
  6. SVN 本地文件锁/服务端文件锁清除步骤
  7. webstorm最新破解方法
  8. 推荐文章:机器学习:“一文读懂机器学习,大数据/自然语言处理/算法全有了...
  9. Python之路,day4-Python基础
  10. DELPHI跨平台的临界替代者