Tiger
(Tiger)
1
说明:公司测试环境和预发布环境获取token信息里的账号密码不一样,如何替换? # 预发布环境密码是admin 测试环境密码是123456
class Util(BaseApi):
def get_token(self):
data = {
"method": "post",
"url": "http://192.168.2.153:31001/taps/api/v1/sso/auth/token/",
"json": {
"username": "admin",
"password": "admin" # 预发布环境密码是admin 测试环境密码是123456
}
}
return self.send(data)['token']
class BaseApi:
env = yaml.safe_load(open("../data/env.yaml"))
def send(self, data):
allure.attach(str(data), attachment_type=allure.attachment_type.TEXT)
data["url"] = str(data["url"]).replace("192.168.2.153:31001", self.env["testing-studio"][self.env["default"]])
return requests.request(**data).json()
加一个判断,然后根据判断结果修改json内容就好了啊。可以参考你修改url的内容呀
class BaseApi:
env = yaml.safe_load(open("../data/env.yaml"))
if env[default] == 'test':
self.passwd = '123456'
else:
self.passwd = 'admin'
def send(self, data):
allure.attach(str(data), attachment_type=allure.attachment_type.TEXT)
data["url"] = str(data["url"]).replace("192.168.2.153:31001", self.env["testing-studio"]
[self.env["default"]])
data['json']['password'] = self.passwd
return requests.request(**data).json()
可以把用户名密码也作为参数存到yaml里,每个环境去取自己对应的数据就好了
Tiger
(Tiger)
9
class BaseApi:
env = yaml.safe_load(open("../data/env.yaml"))
password = yaml.safe_load(open("../data/password.yaml"))
def send(self, data):
allure.attach(str(data), attachment_type=allure.attachment_type.TEXT)
data["url"] = str(data["url"]).replace("192.168.2.153:31001", self.env["testing-studio"][self.env["default"]])
data["json"]['password'] = str(data["json"]['password']).replace("cloudin123", self.password["testing-studio"][self.password["default"]])
return requests.request(**data).json()
default: release
testing-studio:
test: admin123
release: cloudin123
这样不行 报错:
def send(self, data):
allure.attach(str(data), attachment_type=allure.attachment_type.TEXT)
data["url"] = str(data["url"]).replace("192.168.2.153:31001", self.env["testing-studio"][self.env["default"]])
> data["json"]['password'] = str(data["json"]['password']).replace("cloudin123", self.password["testing-studio"][self.password["default"]])
E KeyError: 'password'
../api/base_api.py:13: KeyError
Assertion failed
Assertion failed
Assertion failed
操作有点魔幻 我没太看懂。。。。
为什么还要replace 直接赋值不就挺好的 看报错你原本的data json下面就没有password 而且不管有没有 赋值不是更好么
比如
password:
test: admin
release: cloud
这样你在代码中只需要获取password[env] 就可以根据传入的env参数获取到对应的password值
吧yaml写成这种款式
读取的时候直接读取对应的test和release就行了,你上面的改改,然后代码里可以写一下对应的default是test还是release
Tiger
(Tiger)
13
你能再跟我说的详细一点嘛,BaseApi那里要怎么改
Tiger
(Tiger)
17
方便加一下微信嘛,我还有几点疑惑 我的:p1104211831