pytest + yaml 框架 -39.多账号操作解决方案
  iKXeBmqdRgYF 2023年11月30日 25 0

前言

最近有小伙伴提到,有写场景需要用到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]

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 颜色对照表 下一篇: $(document).ready(function()
  1. 分享:
最后一次编辑于 2023年11月30日 0

暂无评论

推荐阅读
iKXeBmqdRgYF