更改用例通过率计算方式;添加插件pytest-repeat,支持用例重复执行;增加数据处理方法:获取图片base64格式,支持用例数据传参需求;

This commit is contained in:
floraachy
2023-12-22 16:45:10 +08:00
parent cfa9fa52cf
commit 9ce3c92302
27 changed files with 413 additions and 60 deletions
+28 -2
View File
@@ -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
+1
View File
@@ -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"