接口测试-如何通过ip访问不同的环境

Posted chenri

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试-如何通过ip访问不同的环境相关的知识,希望对你有一定的参考价值。

多环境测试的方法

可能访问的环境:

  • 开发环境
  • 测试环境
  • 预生产环境
  • 压测环境
  • 性能测试环境
  • 生产环境

处理方法

  • 对差异分析:域名、ip不一样
  • 修改Host,类似 10.0.0.1 test.com
  • 通过 DNS Server 设置
  • 通过代理进行访问

自动化测试方案,通过域名对应到不同的Ip进行选择

Demo

class TestEncode:
    def test_api(self):
        req = ApiRequest()
        # 请求的数据
        req_data = {
            "schema": "http",
            "encoding": "base64",  # 这个字段根据数据格式而定
            "method": "get",
            "url": "http://1.1.1.1/topics.txt",
            "headers": None
        }
        r = req.send(req_data)  # 将数据发送到已封装的函数,返回一个json格式的数据

class ApiRequest:

    def send(self, data: dict):
        if data["schema"] == "http":
            # 把host修改为IP,并附加到 host header
            # 环境对应关系
            env = {
                "test/dev.com": {
                    "dev": "10.10.10.1",
                    "test": "10.10.10.2",
                },
                "default": "test",
            }
            # 将url中的域名转换为Ip
            data["url"] = str(data["url"]).replace("test/dev.com", env["test/dev.com"][env["default"]])
            data["headers"]["Host"] = "test/dev.com"  # 通过将Host绑上域名,服务器会认为是通过域名进行访问
            res = requests.request(data["method"], data["url"], headers=data["headers"])

# 通过以上方法或类似的思想,通过Ip控制,访问不同的环境

以上是关于接口测试-如何通过ip访问不同的环境的主要内容,如果未能解决你的问题,请参考以下文章

vue-cli根据不同的命令自动切换不同环境地址

vue部署到测试环境,doc文件下载前端报错

在Postman中如何设置环境变量?

如何通过 IP 限制对我的 PHP 弹性 beanstalk 环境的访问?

如何指定 Django 测试服务器应该监听哪个 eth 接口?

字节,阿里,腾讯大牛耗时3个月总结的《python问题解决思路》建议收藏