八、多环境下的接口测试

实现原理

  • 在请求之前,对请求的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 Files\Python38\python.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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容