From 192abbc30fe1c1d1aa693a0e953183ce87e010ec Mon Sep 17 00:00:00 2001 From: floraachy <1622042529@qq.com> Date: Wed, 6 Dec 2023 17:05:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B7=B1=E5=BA=A6=E6=8B=B7?= =?UTF-8?q?=E8=B4=9D=EF=BC=8C=E4=BF=9D=E8=AF=81=E5=9C=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=97=B6=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E6=94=B9=E5=8F=98=E5=8E=9F=E6=9C=89=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=EF=BC=8C=E6=96=B9=E4=BE=BF=E4=B8=80=E6=AC=A1=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=95=B0=E6=8D=AE=E8=BF=9B=E8=A1=8C=E5=A4=9A?= =?UTF-8?q?=E6=AC=A1=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/data_utils/data_handle.py | 13 +++++++------ utils/requests_utils/request_control.py | 3 ++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/utils/data_utils/data_handle.py b/utils/data_utils/data_handle.py index 8bab345..806774f 100644 --- a/utils/data_utils/data_handle.py +++ b/utils/data_utils/data_handle.py @@ -6,10 +6,10 @@ # @Desc: # 标准库导入 -import random +import random # 导包不能移除,否则random.choice这种就不能处理了 import json import re, uuid -from datetime import datetime, date, timedelta +import copy # 第三方库导入 from loguru import logger from string import Template @@ -75,7 +75,7 @@ class DataHandle: return replaced_text, result def data_handle(self, obj, source=None): - obj = eval_data(obj) + obj = copy.deepcopy(eval_data(obj)) return self.data_handle_(obj, source) def data_handle_(self, obj, source=None): @@ -157,7 +157,6 @@ class DataHandle: if func_name in self.method_list: # 证明是FakerData类方法 method = getattr(self.FakerDataClass, func_name) res = eval(f"method({func_args_str})") # 尝试直接调用 - logger.debug(f"==========res type: {type(res)}, obj: {obj}, key:{key}") obj = self.deal_func_res(obj, key, res) else: # 不是FakerData类方法,但有可能是 1+1 这样的 obj = self.deal_func_res(obj, key, eval(func)) @@ -173,8 +172,10 @@ class DataHandle: if not isinstance(res, str): obj = eval(obj) except: - msg = f"表达式:{obj},结果值:{res},结果类型:{type(res)}" - logger.warning("Warn: --------无法根据函数返回值eval,可能原始的字符串并不是python表达式-------,%s" % msg) + msg = (f"\nobj --> {obj}\n" + f"函数返回值 --> {res}\n" + f"函数返回值类型 --> {type(res)}\n") + logger.warning(f"\nWarn: --------处理函数方法后,尝试eval({obj})失败,可能原始的字符串并不是python表达式-------{msg}") return obj diff --git a/utils/requests_utils/request_control.py b/utils/requests_utils/request_control.py index a85b996..0187f41 100644 --- a/utils/requests_utils/request_control.py +++ b/utils/requests_utils/request_control.py @@ -10,6 +10,7 @@ import json import os import http.cookiejar +import copy # 第三方库导入 from requests import Response from loguru import logger @@ -45,7 +46,7 @@ class RequestPreDataHandle: f"响应断言(assert_response): {type(request_data.get('assert_response', None))} || {request_data.get('assert_response', None)}\n" \ f"数据库断言(assert_sql): {type(request_data.get('assert_sql', None))} || {request_data.get('assert_sql', None)}\n" \ "=====================================================") - self.request_data = request_data + self.request_data = copy.deepcopy(request_data) self.global_var = global_var def request_data_handle(self):