更改用例通过率计算方式;添加插件pytest-repeat,支持用例重复执行;增加数据处理方法:获取图片base64格式,支持用例数据传参需求;
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
# @File : data_handle.py
|
||||
# @Software: PyCharm
|
||||
# @Desc:
|
||||
|
||||
import os.path
|
||||
# 标准库导入
|
||||
import random # 导包不能移除,否则random.choice这种就不能处理了
|
||||
import json
|
||||
@@ -18,6 +18,8 @@ from requests.utils import dict_from_cookiejar
|
||||
# 本地应用/模块导入
|
||||
from utils.data_utils.faker_handle import FakerData
|
||||
from utils.data_utils.eval_data_handle import eval_data
|
||||
from utils.files_utils.files_handle import file_to_base64, get_files
|
||||
from config.path_config import FILES_DIR
|
||||
|
||||
|
||||
class DataHandle:
|
||||
@@ -175,10 +177,34 @@ class DataHandle:
|
||||
msg = (f"\nobj --> {obj}\n"
|
||||
f"函数返回值 --> {res}\n"
|
||||
f"函数返回值类型 --> {type(res)}\n")
|
||||
logger.warning(f"\nWarn: --------处理函数方法后,尝试eval({obj})失败,可能原始的字符串并不是python表达式-------{msg}")
|
||||
logger.warning(
|
||||
f"\nWarn: --------处理函数方法后,尝试eval({obj})失败,可能原始的字符串并不是python表达式-------{msg}")
|
||||
return obj
|
||||
|
||||
|
||||
def get_file_content(file_name):
|
||||
"""
|
||||
获取文件二进制内容
|
||||
:param file_name: 文件名称
|
||||
:return:
|
||||
"""
|
||||
file_path = os.path.join(FILES_DIR, file_name)
|
||||
if os.path.exists(file_path):
|
||||
# 如果文件是一个真实存在的路径,则返回文件二进制内容
|
||||
return file_to_base64(file_path=file_path)
|
||||
else:
|
||||
# 若文件不存在,则尝试以文件扩展名随机选择一个文件
|
||||
logger.warning(f"图片不存在,将获取传入文件名后缀,随机取对应类型的文件, 路径:{file_path}")
|
||||
file_extension = os.path.splitext(file_name)[1]
|
||||
files = get_files(target=FILES_DIR, end=file_extension)
|
||||
if files:
|
||||
# 返回文件二进制内容
|
||||
return file_to_base64(file_path=random.choice(files))
|
||||
else:
|
||||
logger.warning(f"找不到该文件后缀对应的同类型文件,将返回空, 传入的文件名:{file_name}")
|
||||
return None
|
||||
|
||||
|
||||
# 声明data_handle方法,这样外部就可以直接import data_handle来使用了
|
||||
data_handle = DataHandle().data_handle
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ def json_extractor(obj, expr: str = '.'):
|
||||
"""
|
||||
try:
|
||||
result = jsonpath(obj, expr)[0] if len(jsonpath(obj, expr)) == 1 else jsonpath(obj, expr)
|
||||
result = data_handle(obj=result)
|
||||
logger.debug(f"\n提取对象:{obj}\n"
|
||||
f"提取表达式: {expr} \n"
|
||||
f"提取值类型: {type(result)}\n"
|
||||
|
||||
Reference in New Issue
Block a user