使用yaml文件驱动多环境下的接口测试
1.二次封装requests
#源码py
import requests
class interface:
def send(self, data: dict):
res = requests.request(data["method"], data["url"])
print(res)
#测试的py
def test_send():
data = {
"method": "get",
"url": "http://127.0.0.1:9998/demo1.txt",
"hearders": None
}
a=interface()
a.send(data)
2.进一步把写死的ip提取成变量定义
#源码py
import requests
class interface:
env = {
"default": "env1",
"diff_envadress":
{
"env1": "127.0.0.1",
"env2": "127.0.0.2"
}
}
def send(self, data: dict):
data["url"]=str(data["url"]).replace("envaddress",self.env["diff_envadress"][self.env["default"]])
res = requests.request(data["method"], data["url"])
print(res)
#测试py
from file.interface import interface
def test_send():
data = {
"method": "get",
"url": "http://envaddress:9998/demo1.txt",
"hearders": None
}
a=interface()
a.send(data)
from file.interface import interface
3.把数据提取成yaml,使用yaml选择环境地址
env.yml
default: env1
diff_envadress:
env1: 127.0.0.1
env2: 127.0.0.2
#源码py
import requests
import yaml
class interface:
with open("env.yml")as f:
env=yaml.safe_load(f)
def send(self, data: dict):
data["url"]=str(data["url"]).replace("envaddress",self.env["diff_envadress"][self.env["default"]])
return requests.request(data["method"], data["url"])
#测试py
class Testcase():
data = {
"method": "get",
"url": "http://envaddress:9998/demo1.txt",
"hearders": None
}
def test_send(self):
a=interface()
src=a.send(self.data)
print(json.loads(base64.b64decode(src.content)))