From c9e2aa7c5755afdbd503384c8c8642ba3228b3d6 Mon Sep 17 00:00:00 2001 From: guocan Date: Fri, 13 Jun 2025 16:28:42 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=95=B0=E6=8D=AE=E6=8F=90=E5=8F=96?= =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AD=A5=E6=8F=90=E5=8F=96=E7=9A=84=E5=8F=82?= =?UTF-8?q?=E6=95=B0=EF=BC=8C=E5=9C=A8=E7=AC=AC=E4=BA=94=E6=AD=A5=E9=87=8C?= =?UTF-8?q?=E7=94=A8=E4=B8=8D=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/UiSceneStepsServiceImpl.java | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/test-test/src/main/java/com/test/test/service/impl/UiSceneStepsServiceImpl.java b/test-test/src/main/java/com/test/test/service/impl/UiSceneStepsServiceImpl.java index d5897ce..83a5d05 100644 --- a/test-test/src/main/java/com/test/test/service/impl/UiSceneStepsServiceImpl.java +++ b/test-test/src/main/java/com/test/test/service/impl/UiSceneStepsServiceImpl.java @@ -376,6 +376,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService { private boolean executeStepWithLog(UiSceneSteps step, SeleniumUtils seleniumUtils, Long sceneStepsReportId, StepExecution stepExecution, List uiHighSettingVOList) { + log.info("开始执行步骤:{}",step.getName()); // 1. 初始化设置对象 UiHighSettingVO errorSetting = extractErrorSetting(uiHighSettingVOList); UiHighSettingVO otherSetting = extractOtherSetting(uiHighSettingVOList); @@ -393,15 +394,14 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService { } } - //前置操作设置 List beforeSettingList = extractbeforeSetting(uiHighSettingVOList); // 获取前置操作数据集合(判空) Map beforeData = CollectionUtils.isEmpty(beforeSettingList) ? new HashMap<>() : filterBydataExtractionQOList(beforeSettingList, seleniumUtils); - // 保存前置数据到Map中 - extractedDataMap.put("beforeData", beforeData); + // 保存前置数据到Map中,使用步骤ID作为key的一部分 + extractedDataMap.put("beforeData_" + step.getId(), beforeData); //后置操作设置 List afterSettingList = extractafterSetting(uiHighSettingVOList); @@ -456,8 +456,10 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService { Map afterData = CollectionUtils.isEmpty(afterSettingList) ? new HashMap<>() : filterBydataExtractionQOList(afterSettingList, seleniumUtils); - // 保存后置数据到Map中 - extractedDataMap.put("afterData", afterData); + // 保存后置数据到Map中,使用步骤ID作为key的一部分 + extractedDataMap.put("afterData_" + step.getId(), afterData); + + // 合并当前步骤的前置和后置数据 Map mergedData = new HashMap<>(); if (!beforeData.isEmpty()) { mergedData.put("前置数据提取", beforeData); @@ -1542,16 +1544,20 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService { // 检查输入值是否是变量引用格式 ${key} if (inputValue.startsWith("${") && inputValue.endsWith("}")) { - // 从Map中获取前置和后置操作的数据集合 - Map beforeData = (Map) extractedDataMap.get("beforeData"); - Map afterData = (Map) extractedDataMap.get("afterData"); - - // 先从前置数据中查找,如果没有再从后置数据中查找 - Object value = beforeData != null ? beforeData.get(inputValue) : null; - if (value == null && afterData != null) { - value = afterData.get(inputValue); + Object value = null; + + // 遍历所有步骤的数据,从最新的开始查找 + for (Map.Entry entry : extractedDataMap.entrySet()) { + if (entry.getValue() instanceof Map) { + Map dataMap = (Map) entry.getValue(); + // 检查是否包含完整的 ${key} 格式 + if (dataMap.containsKey(inputValue)) { + value = dataMap.get(inputValue); + break; + } + } } - + if (value != null) { inputValue = value.toString(); log.info("变量 {} 被替换为: {}", inputValue, value); @@ -1594,4 +1600,4 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService { } -} +} \ No newline at end of file