diff --git a/test-test/src/main/java/com/test/test/controller/PerformanceTestController.java b/test-test/src/main/java/com/test/test/controller/PerformanceTestController.java index 32fc480..280956b 100644 --- a/test-test/src/main/java/com/test/test/controller/PerformanceTestController.java +++ b/test-test/src/main/java/com/test/test/controller/PerformanceTestController.java @@ -2,6 +2,7 @@ package com.test.test.controller; import java.util.List; +import com.test.common.utils.StringUtils; import com.test.test.domain.PerformanceTest; import com.test.test.domain.TestCase; import com.test.test.domain.qo.PerformanceTestQO; @@ -157,7 +158,8 @@ public class PerformanceTestController extends BaseController { Long l = performanceTestService.updatePerformanceTest(performanceTestQO); PerformanceTestVO updatedTask = performanceTestService.selectPerformanceTestById(performanceTestQO.getId()); // 如果crontab或crontab_status被修改了,则更新定时任务 - if (!updatedTask.getCrontab().equals(originalTask.getCrontab()) + if ((!StringUtils.isEmpty(updatedTask.getCrontab()) && + !StringUtils.isEmpty(originalTask.getCrontab()) && !updatedTask.getCrontab().equals(originalTask.getCrontab())) || updatedTask.getCrontabStatus() != originalTask.getCrontabStatus()) { PerformanceTest entity = new PerformanceTest(); entity.setId(updatedTask.getId()); 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 6e7259e..1eef6de 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 @@ -466,7 +466,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService { */ private List extractbeforeSetting(List settings) { return settings.stream() - .filter(e -> "1".equals(e.getSettingType()) && 0 == e.getIsDisabled() ) + .filter(e -> "1".equals(e.getSettingType()) && 1 == e.getIsDisabled() ) .collect(Collectors.toList()); // 返回默认设置 } @@ -485,7 +485,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService { result.put("continueExecution", continueExecution); result.put("assertionReportVOS", assertionReports); List uiHighSettingVOS = settingList.stream() - .filter(setting -> setting.getOperateType().equals("2") && 0 == setting.getIsDisabled()) + .filter(setting -> setting.getOperateType().equals("2") && 1 == setting.getIsDisabled()) .toList(); if (CollectionUtils.isEmpty(uiHighSettingVOS)) { @@ -500,7 +500,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService { assertionQOList.addAll(assertion.getWebTitles()); if (!CollectionUtils.isEmpty(assertionQOList)) { for (AssertionQO assertionQO : assertionQOList) { - if ("1".equals(assertionQO.getIsDisabled())) { + if ("0".equals(assertionQO.getIsDisabled())) { continue; } AssertionReportVO report = new AssertionReportVO(); @@ -905,7 +905,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService { dataExtractionQOList.addAll(dataExtractionQO.getWindowExtractions()); if (!CollectionUtils.isEmpty(dataExtractionQOList)) { for (DataExtractionQO extraction : dataExtractionQOList) { - if ("1".equals(extraction.getIsDisabled())) { + if ("0".equals(extraction.getIsDisabled())) { continue; } try { diff --git a/test-ui/src/api/performance/index.js b/test-ui/src/api/performance/index.js index b55320f..59e0f21 100644 --- a/test-ui/src/api/performance/index.js +++ b/test-ui/src/api/performance/index.js @@ -73,7 +73,7 @@ export function editAndExecuteTest(data) { // 测试-编辑-立即执行 export function executeTest(query) { return request({ - url: '/test/performanceTest/executeNow?' + query, + url: '/test/performanceTest/executeNow?id=' + query, method: 'get', }) } diff --git a/test-ui/src/views/test/uiTest/advancedSetting.vue b/test-ui/src/views/test/uiTest/advancedSetting.vue index 597c6cb..bfb0b9b 100644 --- a/test-ui/src/views/test/uiTest/advancedSetting.vue +++ b/test-ui/src/views/test/uiTest/advancedSetting.vue @@ -925,40 +925,54 @@ export default { if (newVal === null) { return } - this.saveForm.beforeList = [] - this.saveForm.afterList = [] + // 重置所有数据 + this.saveForm = { + errorHandling: '1', // 错误处理 + waitElementTime: 15000, // 等待元素超时时间 + screenshotConfiguration: 1, // 截图配置 + beforeList: [], // 前置数组 + afterList: [], // 后置数组 + before: '1', + after: '1', + informationType: '1', + windowType: null, + elementType: null, + assertionType: null, + } if (newVal.operateType != '1' && newVal.operateType != '2') { this.activeName = 'first' } else { this.activeName = 'second' } + + // 如果有已存在的设置,则加载它们 if (newVal.uiHighSettingVOList != null) { this.uiHighSettingVOList = newVal.uiHighSettingVOList + this.uiHighSettingVOList.forEach(item => { + switch (item.settingType) { + // 前置操作 + case '1': + this.saveForm.beforeList.push({...item}) // 使用解构复制,避免引用 + break + // 后置操作 + case '2': + this.saveForm.afterList.push({...item}) // 使用解构复制,避免引用 + break + // 错误处理 + case '3': + this.saveForm.errorHandling = item.errorHandling + break + // 其他设置 + case '4': + if (item.otherSettingsQO != null) { + this.saveForm.waitElementTime = item.otherSettingsQO.waitElementTime || 15000 + this.saveForm.screenshotConfiguration = item.otherSettingsQO.screenshotConfiguration || 2 + } + break + } + }) } - this.uiHighSettingVOList.forEach(item => { - switch (item.settingType) { - // 前置操作 - case '1': - this.saveForm.beforeList.push(item) - break - // 后置操作 - case '2': - this.saveForm.afterList.push(item) - break - // 错误处理 - case '3': - this.saveForm.errorHandling = item.errorHandling - break - // 其他设置 - case '4': - if (item.otherSettingsQO != null) { - this.saveForm.waitElementTime = item.otherSettingsQO.waitElementTime || 15000 - this.saveForm.screenshotConfiguration = item.otherSettingsQO.screenshotConfiguration || 2 - } - break - } - }) }, saveForm: { handler(newVal, oldVal) { diff --git a/test-ui/src/views/test/uiTest/sceneStep.vue b/test-ui/src/views/test/uiTest/sceneStep.vue index 103aff8..35ae735 100644 --- a/test-ui/src/views/test/uiTest/sceneStep.vue +++ b/test-ui/src/views/test/uiTest/sceneStep.vue @@ -22,7 +22,7 @@ - 追加页面 + 追加页面 @@ -91,11 +91,11 @@ -
- +
+ - +
@@ -153,11 +153,11 @@
-
- +
+ - +
@@ -222,11 +222,11 @@
-
- +
+ - +
@@ -263,11 +263,11 @@
-
- +
+ - +
@@ -311,11 +311,11 @@
-
- +
+ - +
@@ -368,7 +368,7 @@ export default { operateType: null, // 操作类型 stepType: null, // 步骤类型 url: null, // url - isAppendPage: 0, // 追加页面 + isAppendPage: 0, // 追加页面 - 使用0而不是false作为默认值 operate: null, // 操作 handleId: null, // 句柄ID pageIndex: 1, // 网页索引号 @@ -386,6 +386,11 @@ export default { awaitValue: null, // 等待文本 clickMethod: null, // 点击方式 inputValue: null, // 输入内容 + beforeList: [], // 初始化前置操作列表 + afterList: [], // 初始化后置操作列表 + errorHandling: null, // 错误处理 + waitElementTime: null, // 等待元素时间 + screenshotConfiguration: null // 截图配置 }, rules: { name: [{ required: true, message: '请输入元素名称', trigger: 'blur' }], @@ -412,7 +417,7 @@ export default { typeName: '', // 步骤类型 actionList: [], // 操作列表 groupList: [], // 操作对象分组 - elementList: [], // 操作对象分组 + elementList: [], // 元素列表 } }, mounted() { @@ -436,26 +441,40 @@ export default { } }) }, - // 元素对象 - getOperateGroup() { - this.getElementListData(this.saveForm.operateGroupId) - }, - // 元素定位 - getOperateLoc() { - this.getElementListData(this.saveForm.operateLocType) - }, // 获取元素列表 - getElementListData(id) { - getElementList({ groupId: id }).then(res => { + getElementListData(groupId) { + getElementList({ groupId: groupId }).then(res => { if (res.code === 200) { - this.elementList = res.rows + this.elementList = res.rows; + + // 检查当前选中的operateElementId是否在新的列表中存在 + if (this.saveForm.operateElementId) { + const elementExists = this.elementList.some(item => item.id === this.saveForm.operateElementId); + if (!elementExists) { + // 如果不存在,清空选择 + this.saveForm.operateElementId = null; + } + } } }) }, + // 元素组变化时触发 + handleOperateGroupChange() { + if (this.saveForm.operateGroupId) { + this.getElementListData(this.saveForm.operateGroupId); + } else { + this.elementList = []; + this.saveForm.operateElementId = null; + } + }, }, watch: { detail(newVal, oldVal) { this.saveForm = newVal + // 如果是元素对象且有元素组ID,获取元素列表 + if (this.saveForm.operateObject === '1' && this.saveForm.operateGroupId) { + this.getElementListData(this.saveForm.operateGroupId) + } }, saveForm: { handler(newVal, oldVal) { @@ -544,18 +563,54 @@ export default { } break } + // 尺寸 if (newVal.windowSize != null) { let result = newVal.windowSize.split(/\*/); if (result.length > 0) { this.winSize.width = result[0] - this.winSize.width = result[1] + this.winSize.height = result[1] } } + + // 确保数组已初始化 + const beforeList = this.saveForm.beforeList || []; + const afterList = this.saveForm.afterList || []; + var newList = [...beforeList, ...afterList]; + + // 错误处理 + var param3 = { + settingType: '3', + errorHandling: this.saveForm.errorHandling, + } + newList.push(param3) + // 其他设置 + var param4 = { + settingType: '4', + otherSettingsQO: { + waitElementTime: this.saveForm.waitElementTime, + screenshotConfiguration: this.saveForm.screenshotConfiguration + } + } + newList.push(param4) + + this.$emit('changeSetting', newList) }, deep: true }, - } + }, + computed: { + appendPageValue: { + get() { + // 将数字转换为布尔值用于显示 + return this.saveForm.isAppendPage === 1; + }, + set(value) { + // 将布尔值转换为数字存储 + this.saveForm.isAppendPage = value ? 1 : 0; + } + } + }, }