前言
最近有小伙伴提到,有写场景需要用到2个账号来回切换操作该如何解决。
(备注:从v1.2.4 以后新版本不再公开,新功能内部 VIP 学员可以使用,公开版本仅解决bug, 不提供新功能了。)
先获取账号token
前面教程有讲到全局登录一次,后面所有的请求都会拿着全局登录的账号token去访问请求。
现在需要新增2个账号,那我们只需要得到2个账号的token即可
conftest.py 通过fixture去分别拿到test8 和 test9 账号的token
from pytest_yaml_yoyo.http_session import HttpSession
@pytest.fixture(scope="session")
def token1(environ):
s = HttpSession(base_url=environ.BASE_URL)
body = {
"username": "test8",
"password": "123456"
}
r = s.send_request("post", "/api/v1/login", json=body)
token = r.json()['token']
return token
@pytest.fixture(scope="session")
def token2(environ):
s = HttpSession(base_url=environ.BASE_URL)
body = {
"username": "test9",
"password": "123456"
}
r = s.send_request("post", "/api/v1/login", json=body)
token = r.json()['token']
return token
调用pytest_yaml_yoyo.http_session 内部封装的 HttpSession,只需传相对路径即可发搜请求。
base_url 地址通过 config.py 中设置的环境地址BASE_URL (参考多环境切换的配置), 获取方式:environ.BASE_URL
yaml 用例中传不同 token
test_more_user.yml
config:
fixtures: token1,token2
user1:
-
name: 账号test8操作
request:
url: /api/v1/userinfo
method: get
headers:
Authorization: Token ${token1}
validate:
- eq: [$.code, 0]
-
name: 账号test8继续操作
print: test8继续操作
user2:
name: 账号test9操作
request:
headers:
Authorization: Token ${token2}
url: /api/v1/userinfo
method: get
validate:
- eq: [$.code, 0]
标签:39,账号,url,test8,yaml,token,pytest,environ From: https://blog.51cto.com/u_15249893/8597074