统一鉴权的意义
接口自动化一般需要登录获得鉴权信息, 供各个suite和case使用, 因此登录鉴权适合定义在Session级别的夹具中, 供所有用例共享. 示例:
@pytest.fixture(scope='session')
def autherization_wrapper(pytestconfig):
"""
返回登录状态的 header
:return:
"""
logger.info('================ 测试开始 ===================')
logger.info('开始初始化鉴权信息......')
mobile = pytestconfig.getoption('mobile') # 自定义参数, 见下文
get_token = GetToken(mobile)
try:
get_token.get_webLogin_authorization() # 官网登录, 具体业务流程不展示
logger.info('web 登录请求头: {}'.format(get_token.headers))
logger.info('h5 登录请求头: {}'.format(get_token.h5_headers))
except Exception as e:
logger.error(f'web/h5 登录失败, 原因 {
e}')
try:
get_token.get_omsLogin_cookie() # 订单管理系统登录,具体逻辑不展示了
logger.info('oms 登录请求头: {}'.format(get_token.oms_headers)