八、多环境下的接口测试

时间:2021-6-4 作者:qvyue

实现原理

  • 在请求之前,对请求的url进行替换
  1. 需要二次封装requests,对请求进行定制化。
  2. 将请求的结构体的url从一个写死的ip地址改为一个(任意的)域名。
  3. 使用一个env 配置文件,存放各个环境的配置信息。
  4. 然后将请求结构体中的url替换为env配置文件中个人选择的url。
  5. 将env配置文件使用yaml进行管理。

实战

  • env.yaml 内容
default: dev
env_select:
  dev: 127.0.0.1
  test: 127.0.0.2
  • env_demo.py 内容
import requests
import yaml


class Api:
    env = yaml.safe_load(open("env.yaml"))
    data = {
        "method": "get",
        "url": "http://testing-studio:9999/demo.txt",
        "headers": None,
    }

    # data是一个请求的信息
    def send(self, data:dict):
        # 进行替换
        data["url"] = str(data["url"]).replace("testing-studio", self.env["env_select"][self.env["default"]])
        r = requests.request(method=data["method"], url=data["url"], headers=data["headers"])
        return r

if __name__ == '__main__':
    api = Api()
    print(api.send(api.data).text)
  • 运行结果
"D:Program FilesPython38python.exe" D:/Programs/DevOps/Python_Practice/lessons/api/env_demo.py
eyJ0b3BpY3MiOgp7CiJvcmFuZ2UiOiJtb3ZpZSIsCiJzaG9vbCI6InRlc3Rpbmctc3R1ZGlvIiwKInByZXNpZGVudCI6InNldmVuaXJ1YnkiCn0KfQo=
  • 将字典转成yaml文件脚本
import yaml

def test_yaml():
    env = {
        "default":"dev",
        "env_select":
            {
                "dev": "127.0.0.1",
                "test": "127.0.0.2"
            }

    }
    with open("env.yaml", "w") as f:
        yaml.safe_dump(data=env, stream=f)
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。