From bc574d12ffab00b20c8d686866609ad29ff31c29 Mon Sep 17 00:00:00 2001 From: liangdaliang Date: Thu, 6 Mar 2025 11:08:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=A7=E8=A1=8C=E7=94=A8?= =?UTF-8?q?=E4=BE=8B=E5=89=8D=E7=AB=AF=E5=8F=8A=E6=8E=A7=E5=88=B6=E5=B1=82?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test-admin/src/main/resources/application.yml | 4 +- .../test/controller/TestCaseController.java | 43 ++++++++++++------- test-ui/src/api/test/case.js | 9 ++++ test-ui/src/views/test/case/index.vue | 8 +++- 4 files changed, 46 insertions(+), 18 deletions(-) diff --git a/test-admin/src/main/resources/application.yml b/test-admin/src/main/resources/application.yml index cf68d74..e3c3cfd 100644 --- a/test-admin/src/main/resources/application.yml +++ b/test-admin/src/main/resources/application.yml @@ -10,6 +10,8 @@ test: profile: D:/test/uploadPath # 获取ip地址开关 addressEnabled: true + # Jmeter主目录路径 + jmeterHomePath: /opt/apache-jmeter # 开发环境配置 server: @@ -148,4 +150,4 @@ aj: # aes加密坐标开启或者禁用(true|false) aes-status: true # 滑动干扰项(0/1/2) - interference-options: 2 \ No newline at end of file + interference-options: 2 diff --git a/test-test/src/main/java/com/test/test/controller/TestCaseController.java b/test-test/src/main/java/com/test/test/controller/TestCaseController.java index f668c37..5c76ce8 100644 --- a/test-test/src/main/java/com/test/test/controller/TestCaseController.java +++ b/test-test/src/main/java/com/test/test/controller/TestCaseController.java @@ -1,31 +1,34 @@ package com.test.test.controller; -import java.util.List; - -import com.test.common.utils.DateUtils; -import com.test.test.domain.qo.IDQO; -import com.test.test.domain.qo.TestCaseListQO; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.test.common.annotation.Log; import com.test.common.core.controller.BaseController; import com.test.common.core.domain.AjaxResult; -import com.test.common.enums.BusinessType; -import com.test.test.domain.TestCase; -import com.test.test.service.ITestCaseService; 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.test.domain.qo.IDQO; +import com.test.test.domain.qo.TestCaseListQO; +import com.test.test.service.ITestCaseService; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 用例Controller */ +@Slf4j @RestController @RequestMapping("/test/case") public class TestCaseController extends BaseController { + + @Value("${test.jmeterHomePath:/opt/apache-jmeter}") + private String jmeterHomePath; + @Resource private ITestCaseService testCaseService; @@ -76,4 +79,14 @@ public class TestCaseController extends BaseController { public AjaxResult remove(@RequestBody IDQO qo) { return toAjax(testCaseService.deleteTestCaseById(qo.getId())); } + + /** + * 执行用例 + */ + @Log(title = "用例", businessType = BusinessType.OTHER) + @PostMapping("/run") + public AjaxResult run(@RequestBody IDQO qo) { + log.info("执行用例 id:{}, jmeterHomePath:{}", qo.getId(), jmeterHomePath); + return toAjax(testCaseService.executeTestCaseById(qo.getId(), jmeterHomePath)); + } } diff --git a/test-ui/src/api/test/case.js b/test-ui/src/api/test/case.js index 145b553..4a6ea63 100644 --- a/test-ui/src/api/test/case.js +++ b/test-ui/src/api/test/case.js @@ -44,3 +44,12 @@ export function delCase(id) { data: {id} }) } + +// 执行用例 +export function runCase(id) { + return request({ + url: '/test/case/run', + method: 'post', + data: {id} + }) +} diff --git a/test-ui/src/views/test/case/index.vue b/test-ui/src/views/test/case/index.vue index d644ac7..92551e2 100644 --- a/test-ui/src/views/test/case/index.vue +++ b/test-ui/src/views/test/case/index.vue @@ -27,7 +27,7 @@