接口测试-如何通过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访问不同的环境的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 IP 限制对我的 PHP 弹性 beanstalk 环境的访问?