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 c200821..f5a0666 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 @@ -6,16 +6,18 @@ import com.test.common.core.domain.AjaxResult; import com.test.common.core.page.TableDataInfo; import com.test.common.enums.BusinessType; import com.test.common.utils.DateUtils; -import com.test.test.domain.TestCase; +import com.test.common.utils.SecurityUtils; import com.test.test.domain.TestTask; import com.test.test.domain.qo.GroupIdQO; import com.test.test.domain.qo.IDQO; import com.test.test.service.ITestTaskService; import jakarta.annotation.Resource; +import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.concurrent.CompletableFuture; /** * 定时任务Controller @@ -23,6 +25,10 @@ import java.util.List; @RestController @RequestMapping("/test/task") public class TestTaskController extends BaseController { + + @Value("${test.jmeterHomePath:/opt/apache-jmeter}") + private String jmeterHomePath; + @Resource private ITestTaskService testTaskService; @@ -73,5 +79,18 @@ public class TestTaskController extends BaseController { return toAjax(testTaskService.deleteTestTaskById(qo.getId())); } + /** + * 执行任务 + */ + @Log(title = "任务", businessType = BusinessType.OTHER) + @PostMapping("/run") + public AjaxResult run(@RequestBody IDQO qo) { + // 异步执行任务 + CompletableFuture.runAsync(() -> { + testTaskService.executeTestTaskById(qo.getId(), 2, null, jmeterHomePath, SecurityUtils.getUsername()); + }); + return toAjax(true); + } + } diff --git a/test-test/src/main/java/com/test/test/service/impl/TestCaseStepServiceImpl.java b/test-test/src/main/java/com/test/test/service/impl/TestCaseStepServiceImpl.java index 037f0ca..2694885 100644 --- a/test-test/src/main/java/com/test/test/service/impl/TestCaseStepServiceImpl.java +++ b/test-test/src/main/java/com/test/test/service/impl/TestCaseStepServiceImpl.java @@ -63,7 +63,7 @@ public class TestCaseStepServiceImpl implements ITestCaseStepService { int i = 1; for (TestCaseResult testCaseResult : testCaseResultList) { String dateStr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, testCaseResult.getExecuteTime()); - testCaseResult.setTitle("结果" + i + "(" + dateStr + "),状态:" + testCaseResult.getStatus()); + testCaseResult.setTitle("结果" + i + "(" + dateStr + "),状态:" + testCaseResult.getStatus() + ",耗时(ms):" + testCaseResult.getUseTime()); i ++; } } diff --git a/test-test/src/main/java/com/test/test/service/impl/TestTaskServiceImpl.java b/test-test/src/main/java/com/test/test/service/impl/TestTaskServiceImpl.java index da43bf9..4f12336 100644 --- a/test-test/src/main/java/com/test/test/service/impl/TestTaskServiceImpl.java +++ b/test-test/src/main/java/com/test/test/service/impl/TestTaskServiceImpl.java @@ -110,9 +110,8 @@ public class TestTaskServiceImpl implements ITestTaskService { @Override public boolean executeTestTaskById(Long id, Integer triggerType, String environment, String jmeterHomePath, String operUser) { TestTask testTask = testTaskMapper.selectTestTaskById(id); - if (testTask == null || testTask.getStatus() == null - || testTask.getStatus() > 0 || "2".equals(testTask.getDelFlag())) { - log.error("定时任务已删除或未启用,不能执行!"); + if (testTask == null || "2".equals(testTask.getDelFlag())) { + log.error("定时任务已删除,不能执行!"); return false; } TestTaskLog testTaskLog = new TestTaskLog(); diff --git a/test-ui/src/api/test/task.js b/test-ui/src/api/test/task.js index 3d892a2..c4183ca 100644 --- a/test-ui/src/api/test/task.js +++ b/test-ui/src/api/test/task.js @@ -44,3 +44,12 @@ export function delTask(id) { data: {id} }) } + +// 执行用例 +export function runTask(id) { + return request({ + url: '/test/task/run', + method: 'post', + data: {id} + }) +} diff --git a/test-ui/src/views/test/case/detail/index.vue b/test-ui/src/views/test/case/detail/index.vue index ca56715..c0e9e30 100644 --- a/test-ui/src/views/test/case/detail/index.vue +++ b/test-ui/src/views/test/case/detail/index.vue @@ -1,13 +1,29 @@