代码拉取完成,页面将自动刷新
"""
定义登录夹具
pytest的fixture的定义
1、def 定义一个普通
2、申明夹具: @pytest.fixtrue
3、做登录操作 目的 : 得到token
- jsonpath 提取token
4、设置夹具返回值: yield token
"""
import pytest
import requests
from jsonpath import jsonpath
from loguru import logger
from data.setting import base_url
@pytest.fixture()
def login_fixture(get_env): #调用夹具
logger.info("--------------前置代码处理-------------")
param = {"principal": "lemon_py", "credentials": "12345678", "appType": 3, "loginType": 0}
url = f'{base_url[get_env]}/login' # 通过夹具的返回值 拼接地址
res = requests.request("post", url, json=param)
access_token = jsonpath(res.json(), '$..access_token')[0]
token_type = jsonpath(res.json(), '$..token_type')[0] # bearer
token = token_type + access_token # 拼接登录之后返回的token 给后面的接口鉴权
logger.info(f"夹具返回的token是{token}")
yield token # 夹具的返回值 token 调用夹具得到这个返回值
# 添加钩子函数: 注册pytest的参数的 用于传递测试环境名字 【钩子函数不能改】
def pytest_addoption(parser):
# 注册自定义参数命令行参数
parser.addoption("--env", default="test", choices=['dev', 'test', 'uat', 'pro'], help="命令行参数 '--env' 设置环境切换")
# 定义一个夹具获取--env参数的值
@pytest.fixture()
def get_env(request): # 【夹具的名字可以改】
# 从命令行参数中读取env参数的值 --dev pro uat test 等,字典的key
option_env = request.config.getoption("--env")
print(f"--env的参数值是:{option_env}")
yield option_env # 返回这个参数的值
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。