实现原理:
请求之前,对请求的url进行替换
1、需要二次封装requests,对请求进行定制化;
2、将请求的结构体的url从一个写死的ip地址改为一个任意的域名
3、使用一个env配置文件,存放各个环境的配置信息
4、然后将请求结构体中的url替换成env配置文件中个人选择的url
5、将env配置文件使用yaml进行管理
创建 env_demo.py 封装requests
import requests
class Api:
#读取写入到yaml中的环境信息
env = yaml.safe_load(open("wnv.yaml"))
print(env)
#env = {
#"default":"dev",
#"testing-studio":
#{
# "dev":"127.0.0.1",
#"test":"127.0.0.2"
# }
#}
#data是一个请求的信息
def send(self,data:dict):
#使用字符串的替换方法replace
data["url"] = str(data["url"]).replace("testing-studio",self.env["testing-studio"][self.env["default"]])
r = requests.request(method = data["method"],url =data["url"] ,headers = data["headers"] )
创建 test_api.py 运行接口文件
from unittest import TestCase
from test_requests import env_demo
class TestApi(TestCase):
data = {
"method":"get",
"url":"http://testing-studio:9999/demo1.txt",
"headers":None
}
def test_send(self):
api = env_demo.Api()
print(api.send(self.data).text)
创建 test_yaml.py,将env配置文件转为yml文件
import yaml
def test_yaml2():
env = {
"default":"dev",
"testing-studio":
{
"dev":"127.0.0.1",
"test":"127.0.0.2"
}
}
with open("env.yaml","w") as f:
yaml.safe_dump(data=env,stream = f)
网友评论