From 49d63847ee865f628921ee0b3a6282c1a834b7ac Mon Sep 17 00:00:00 2001 From: liangdaliang Date: Tue, 17 Jun 2025 10:05:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=80=A7=E8=83=BD=E6=B5=8B=E8=AF=95=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=89=A7=E8=A1=8C=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PerformanceTestController.java | 15 ++++++--------- .../test/controller/TestTaskController.java | 4 ++++ .../IPerformanceTestCaseReportService.java | 3 ++- .../PerformanceTestCaseReportServiceImpl.java | 3 ++- .../com/test/test/task/DynamicTaskManager.java | 18 +++++++++--------- .../src/views/test/performance/performance.vue | 2 +- test-ui/src/views/test/performance/report.vue | 4 ++-- 7 files changed, 26 insertions(+), 23 deletions(-) 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 4f51d40..8708439 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 @@ -120,6 +120,7 @@ public class PerformanceTestController extends BaseController { @PostMapping("/addAndExecute") public AjaxResult addAndExecute(@RequestBody PerformanceTestQO performanceTestQO) { try { + String createBy = getLoginUser().getUsername(); Long l = performanceTestService.insertPerformanceTest(performanceTestQO); // 获取新增的任务完整信息 PerformanceTestVO newTaskVo = performanceTestService.selectPerformanceTestById(l); @@ -135,11 +136,9 @@ public class PerformanceTestController extends BaseController { // 执行性能测试 try { CompletableFuture.runAsync(() -> { - performanceTestCaseReportService.executePerformanceTestAndReport(l, jmeterHomePath, 2); + performanceTestCaseReportService.executePerformanceTestAndReport(l, jmeterHomePath, 2, createBy); }); return toAjax(true); -// Long l1 = performanceTestCaseReportService.executePerformanceTestAndReport(l, jmeterHomePath, 2); -// return success(l1); } catch (Exception e) { log.error("执行失败!", e); return error("执行失败!"); @@ -184,6 +183,7 @@ public class PerformanceTestController extends BaseController { @Log(title = "性能测试", businessType = BusinessType.UPDATE) @PutMapping("/editAndExecute") public AjaxResult editAndExecute(@RequestBody PerformanceTestQO performanceTestQO) { + String createBy = getLoginUser().getUsername(); try { PerformanceTestVO originalTask = performanceTestService.selectPerformanceTestById(performanceTestQO.getId()); Long l = performanceTestService.updatePerformanceTest(performanceTestQO); @@ -200,11 +200,9 @@ public class PerformanceTestController extends BaseController { } try { CompletableFuture.runAsync(() -> { - performanceTestCaseReportService.executePerformanceTestAndReport(l, jmeterHomePath, 2); + performanceTestCaseReportService.executePerformanceTestAndReport(l, jmeterHomePath, 2, createBy); }); return toAjax(true); -// Long l1 = performanceTestCaseReportService.executePerformanceTestAndReport(l, jmeterHomePath, 2); -// return success(l1); } catch (Exception e) { log.error("执行失败!", e); return error("执行失败!"+e); @@ -232,11 +230,10 @@ public class PerformanceTestController extends BaseController { // @PreAuthorize("@ss.hasPermi('system:test:remove')") @GetMapping("/executeNow") public AjaxResult executeNow(@RequestParam Long id) { + String createBy = getLoginUser().getUsername(); CompletableFuture.runAsync(() -> { - performanceTestCaseReportService.executePerformanceTestAndReport(id, jmeterHomePath, 2); + performanceTestCaseReportService.executePerformanceTestAndReport(id, jmeterHomePath, 2, createBy); }); return toAjax(true); -// Long l1 = performanceTestCaseReportService.executePerformanceTestAndReport(id, jmeterHomePath, 2); -// return success(l1); } } diff --git a/test-test/src/main/java/com/test/test/controller/TestTaskController.java b/test-test/src/main/java/com/test/test/controller/TestTaskController.java index 2b1e2cb..abafc84 100644 --- a/test-test/src/main/java/com/test/test/controller/TestTaskController.java +++ b/test-test/src/main/java/com/test/test/controller/TestTaskController.java @@ -97,6 +97,9 @@ public class TestTaskController extends BaseController { try { testTask.setCreateBy(getLoginUser().getUsername()); testTask.setCreateTime(DateUtils.getNowDate()); + if (testTask.getStatus() == null) { + testTask.setStatus(2); + } int result = testTaskService.insertTestTask(testTask); // 如果任务状态是启用且没有被删除,则添加到定时任务管理器 @@ -106,6 +109,7 @@ public class TestTaskController extends BaseController { return toAjax(result); } catch (Exception e) { + logger.error("新增失败:", e); return error("新增失败:" + e.getMessage()); } } diff --git a/test-test/src/main/java/com/test/test/service/IPerformanceTestCaseReportService.java b/test-test/src/main/java/com/test/test/service/IPerformanceTestCaseReportService.java index e6fc12c..39e7c07 100644 --- a/test-test/src/main/java/com/test/test/service/IPerformanceTestCaseReportService.java +++ b/test-test/src/main/java/com/test/test/service/IPerformanceTestCaseReportService.java @@ -17,9 +17,10 @@ public interface IPerformanceTestCaseReportService * @param id * @param jmeterHomePath * @param triggerType 触发方式:1-定时任务;2-手动 + * @param createBy 创建人 * @return 返回本次性能测试的批次id */ - public Long executePerformanceTestAndReport(Long id, String jmeterHomePath, Integer triggerType); + public Long executePerformanceTestAndReport(Long id, String jmeterHomePath, Integer triggerType, String createBy); /** * 查询性能测试用例报告 diff --git a/test-test/src/main/java/com/test/test/service/impl/PerformanceTestCaseReportServiceImpl.java b/test-test/src/main/java/com/test/test/service/impl/PerformanceTestCaseReportServiceImpl.java index e499b07..fe3e776 100644 --- a/test-test/src/main/java/com/test/test/service/impl/PerformanceTestCaseReportServiceImpl.java +++ b/test-test/src/main/java/com/test/test/service/impl/PerformanceTestCaseReportServiceImpl.java @@ -51,7 +51,7 @@ public class PerformanceTestCaseReportServiceImpl implements IPerformanceTestCas private ITestCaseStepService testCaseStepService; @Override - public Long executePerformanceTestAndReport(Long id, String jmeterHomePath, Integer triggerType) { + public Long executePerformanceTestAndReport(Long id, String jmeterHomePath, Integer triggerType, String createBy) { Long sid = System.currentTimeMillis(); PerformanceTest performanceTest = performanceTestMapper.selectPerformanceTestById(id); PerformanceTestCase performanceTestCase = new PerformanceTestCase(); @@ -89,6 +89,7 @@ public class PerformanceTestCaseReportServiceImpl implements IPerformanceTestCas if (!CollectionUtils.isEmpty(jmeterResultList)) { LabelStatsEntity lastElement = jmeterResultList.get(jmeterResultList.size() - 1); PerformanceTestCaseReport performanceTestCaseReport = new PerformanceTestCaseReport(); + performanceTestCaseReport.setCreateBy(createBy); performanceTestCaseReport.setPerformanceId(id); performanceTestCaseReport.setTestCaseId(relateTestCase.getTestCaseId()); performanceTestCaseReport.setSid(sid); diff --git a/test-test/src/main/java/com/test/test/task/DynamicTaskManager.java b/test-test/src/main/java/com/test/test/task/DynamicTaskManager.java index 632ee0c..0fcf250 100644 --- a/test-test/src/main/java/com/test/test/task/DynamicTaskManager.java +++ b/test-test/src/main/java/com/test/test/task/DynamicTaskManager.java @@ -30,16 +30,16 @@ public class DynamicTaskManager { @Resource private PerformanceTestMapper performanceTestMapper; - + @Resource private TaskScheduler taskScheduler; @Resource private IPerformanceTestCaseReportService performanceTestCaseReportService; - + private final Map> scheduledTasks = new ConcurrentHashMap<>(); private final Map taskCache = new ConcurrentHashMap<>(); - + @PostConstruct public void init() { loadTasks(); // 初始加载 @@ -104,7 +104,7 @@ public class DynamicTaskManager { List tasks = performanceTestMapper.selectPerformanceTestList(performanceTest); tasks.forEach(this::scheduleTask); } - + private void scheduleTask(PerformanceTest task) { try { CronTrigger trigger = new CronTrigger(task.getCrontab()); @@ -118,17 +118,17 @@ public class DynamicTaskManager { log.error("无效的cron表达式: " + task.getCrontab()); } } - + private void executeTask(PerformanceTest task) { // 执行业务逻辑 log.info("执行任务: " + task.getId()); try{ - performanceTestCaseReportService.executePerformanceTestAndReport(task.getId(),jmeterHomePath,1); + performanceTestCaseReportService.executePerformanceTestAndReport(task.getId(),jmeterHomePath,1,"system"); } catch (Exception e) { log.error("执行失败!",e); } } - + private void refreshTasks() { PerformanceTest performanceTest =new PerformanceTest(); performanceTest.setCrontabStatus(1); @@ -137,7 +137,7 @@ public class DynamicTaskManager { Set currentIds = currentTasks.stream() .map(PerformanceTest::getId) .collect(Collectors.toSet()); - + // 处理新增或更新的任务 currentTasks.forEach(task -> { Long taskId = task.getId(); @@ -162,4 +162,4 @@ public class DynamicTaskManager { } }); } -} \ No newline at end of file +} diff --git a/test-ui/src/views/test/performance/performance.vue b/test-ui/src/views/test/performance/performance.vue index 3e83905..577dcb4 100644 --- a/test-ui/src/views/test/performance/performance.vue +++ b/test-ui/src/views/test/performance/performance.vue @@ -71,7 +71,7 @@ export default { }, // 编辑 hadleClickEdit(val) { - this.$tab.openPage(`修改测试_${val.id}`, `/performance/edit/${val.id}`, { id: val.id }); + this.$tab.openPage(`修改测试_${val.id}`, `/performance/edit`, { id: val.id }); }, // 删除 hadleClickDelete(val) { diff --git a/test-ui/src/views/test/performance/report.vue b/test-ui/src/views/test/performance/report.vue index e42f42d..cf49850 100644 --- a/test-ui/src/views/test/performance/report.vue +++ b/test-ui/src/views/test/performance/report.vue @@ -17,8 +17,8 @@