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