fix 数据提取第二步提取的参数,在第五步里用不了
This commit is contained in:
@@ -376,6 +376,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
|
|||||||
private boolean executeStepWithLog(UiSceneSteps step, SeleniumUtils seleniumUtils,
|
private boolean executeStepWithLog(UiSceneSteps step, SeleniumUtils seleniumUtils,
|
||||||
Long sceneStepsReportId, StepExecution stepExecution,
|
Long sceneStepsReportId, StepExecution stepExecution,
|
||||||
List<UiHighSettingVO> uiHighSettingVOList) {
|
List<UiHighSettingVO> uiHighSettingVOList) {
|
||||||
|
log.info("开始执行步骤:{}",step.getName());
|
||||||
// 1. 初始化设置对象
|
// 1. 初始化设置对象
|
||||||
UiHighSettingVO errorSetting = extractErrorSetting(uiHighSettingVOList);
|
UiHighSettingVO errorSetting = extractErrorSetting(uiHighSettingVOList);
|
||||||
UiHighSettingVO otherSetting = extractOtherSetting(uiHighSettingVOList);
|
UiHighSettingVO otherSetting = extractOtherSetting(uiHighSettingVOList);
|
||||||
@@ -393,15 +394,14 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//前置操作设置
|
//前置操作设置
|
||||||
List<UiHighSettingVO> beforeSettingList = extractbeforeSetting(uiHighSettingVOList);
|
List<UiHighSettingVO> beforeSettingList = extractbeforeSetting(uiHighSettingVOList);
|
||||||
// 获取前置操作数据集合(判空)
|
// 获取前置操作数据集合(判空)
|
||||||
Map<String, Object> beforeData = CollectionUtils.isEmpty(beforeSettingList)
|
Map<String, Object> beforeData = CollectionUtils.isEmpty(beforeSettingList)
|
||||||
? new HashMap<>()
|
? new HashMap<>()
|
||||||
: filterBydataExtractionQOList(beforeSettingList, seleniumUtils);
|
: filterBydataExtractionQOList(beforeSettingList, seleniumUtils);
|
||||||
// 保存前置数据到Map中
|
// 保存前置数据到Map中,使用步骤ID作为key的一部分
|
||||||
extractedDataMap.put("beforeData", beforeData);
|
extractedDataMap.put("beforeData_" + step.getId(), beforeData);
|
||||||
//后置操作设置
|
//后置操作设置
|
||||||
List<UiHighSettingVO> afterSettingList = extractafterSetting(uiHighSettingVOList);
|
List<UiHighSettingVO> afterSettingList = extractafterSetting(uiHighSettingVOList);
|
||||||
|
|
||||||
@@ -456,8 +456,10 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
|
|||||||
Map<String, Object> afterData = CollectionUtils.isEmpty(afterSettingList)
|
Map<String, Object> afterData = CollectionUtils.isEmpty(afterSettingList)
|
||||||
? new HashMap<>()
|
? new HashMap<>()
|
||||||
: filterBydataExtractionQOList(afterSettingList, seleniumUtils);
|
: filterBydataExtractionQOList(afterSettingList, seleniumUtils);
|
||||||
// 保存后置数据到Map中
|
// 保存后置数据到Map中,使用步骤ID作为key的一部分
|
||||||
extractedDataMap.put("afterData", afterData);
|
extractedDataMap.put("afterData_" + step.getId(), afterData);
|
||||||
|
|
||||||
|
// 合并当前步骤的前置和后置数据
|
||||||
Map<String, Object> mergedData = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
||||||
if (!beforeData.isEmpty()) {
|
if (!beforeData.isEmpty()) {
|
||||||
mergedData.put("前置数据提取", beforeData);
|
mergedData.put("前置数据提取", beforeData);
|
||||||
@@ -1542,16 +1544,20 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
|
|||||||
|
|
||||||
// 检查输入值是否是变量引用格式 ${key}
|
// 检查输入值是否是变量引用格式 ${key}
|
||||||
if (inputValue.startsWith("${") && inputValue.endsWith("}")) {
|
if (inputValue.startsWith("${") && inputValue.endsWith("}")) {
|
||||||
// 从Map中获取前置和后置操作的数据集合
|
Object value = null;
|
||||||
Map<String, Object> beforeData = (Map<String, Object>) extractedDataMap.get("beforeData");
|
|
||||||
Map<String, Object> afterData = (Map<String, Object>) extractedDataMap.get("afterData");
|
// 遍历所有步骤的数据,从最新的开始查找
|
||||||
|
for (Map.Entry<String, Object> entry : extractedDataMap.entrySet()) {
|
||||||
// 先从前置数据中查找,如果没有再从后置数据中查找
|
if (entry.getValue() instanceof Map) {
|
||||||
Object value = beforeData != null ? beforeData.get(inputValue) : null;
|
Map<String, Object> dataMap = (Map<String, Object>) entry.getValue();
|
||||||
if (value == null && afterData != null) {
|
// 检查是否包含完整的 ${key} 格式
|
||||||
value = afterData.get(inputValue);
|
if (dataMap.containsKey(inputValue)) {
|
||||||
|
value = dataMap.get(inputValue);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
inputValue = value.toString();
|
inputValue = value.toString();
|
||||||
log.info("变量 {} 被替换为: {}", inputValue, value);
|
log.info("变量 {} 被替换为: {}", inputValue, value);
|
||||||
@@ -1594,4 +1600,4 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user