增加缓存使用方式

This commit is contained in:
wangjie 2023-09-27 21:06:40 +08:00
parent fffc80efc2
commit 7f27093a2d
2 changed files with 55 additions and 44 deletions

View File

@ -4,62 +4,21 @@
# @Author : wangjie
# @File : conftest.py
# @project : SensoroApi
import allure
import pytest
from common.base_api import BaseApi
from common.base_log import logger
from common.exceptions import ValueNotFoundError
from pageApi.login import Login
from utils.allure_handle import allure_attach_text
# 定义一个全局变量,用于存储提取的参数内容
_global_data = {}
from utils.cache_handle import CacheHandler
@pytest.fixture(scope="session", autouse=False)
def set_global_data():
"""
设置全局变量用于关联参数
:return:
"""
def _set_global_data(cache_name, value):
_global_data[cache_name] = value
with allure.step("提取"):
allure_attach_text("设置变量", str(f"'{cache_name}':'{value}'"))
allure_attach_text("当前可使用的全局变量", str(_global_data))
yield _set_global_data
_global_data.clear()
@pytest.fixture(scope="session", autouse=False)
def get_global_data():
"""
从全局变量global_data中取值
:return:
"""
def _get_global_data(cache_data):
try:
with allure.step("提取"):
allure_attach_text("取出来的变量", str(f"{cache_data}:{_global_data.get(cache_data, None)}"))
return _global_data[cache_data]
except KeyError:
with allure.step("获取变量失败,当前可使用的全局变量"):
allure_attach_text("获取变量失败,当前可使用的全局变量", str(_global_data))
raise ValueNotFoundError(f"{cache_data}的缓存数据未找到,请检查是否将该数据存入缓存中")
return _get_global_data
@pytest.fixture(scope="session", autouse=False)
@pytest.fixture(scope="session", autouse=True)
def get_token():
"""获取登录V1的token"""
logger.info("开始用例前置操作")
# 调登录接口获取登录接口的token¬
login_response = Login().login('18800000001', '123456')
token = BaseApi.get_json(login_response)['data']['token']
CacheHandler.set_cache('Authorization', f'Bearer {token}')
logger.info("结束用例前置操作")
return token

52
utils/cache_handle.py Normal file
View File

@ -0,0 +1,52 @@
# !/usr/bin/python
# -*- coding:utf-8 -*-
# @Time : 2023/9/27 20:57
# @Author : wangjie
# @File : cache_handle.py
# @project : SensoroApiAutoTest
import json
import allure
from common.exceptions import ValueNotFoundError
from utils.allure_handle import allure_attach_text, allure_attach_json
# 定义一个全局变量,用于存储提取的参数内容
_global_data = {}
class CacheHandler:
@staticmethod
def set_cache(cache_name, value):
"""
往全局变量_global_data中存值用于关联参数
:return:
"""
_global_data[cache_name] = value
with allure.step("设置缓存成功"):
allure_attach_text("存入缓存", str(f"'{cache_name}':'{value}'"))
allure_attach_json("当前可使用的缓存", json.dumps(_global_data, ensure_ascii=False, indent=4))
@staticmethod
def get_cache(cache_data):
"""
从全局变量_global_data中取值
:return:
"""
try:
with allure.step("提取缓存成功"):
allure_attach_text("取出缓存", str(f"{cache_data}:{_global_data.get(cache_data, None)}"))
return _global_data[cache_data]
except KeyError:
with allure.step("提取缓存失败"):
allure_attach_json("提取缓存失败,当前可使用的缓存",
json.dumps(_global_data, ensure_ascii=False, indent=4))
raise ValueNotFoundError(f"{cache_data}的缓存数据未找到,请检查是否将该数据存入缓存中")
if __name__ == '__main__':
CacheHandler.set_cache("a", "1")
print(CacheHandler.get_cache("a"))