fix(接口测试): 批量执行任务名称国际化有误

--bug=1047824 --user=陈建星 【项目任务中心】用例执行任务/用例执行任务详情列表-任务名称国际化错误 https://www.tapd.cn/55049933/s/1595865
This commit is contained in:
AgAngle 2024-10-22 18:01:05 +08:00 committed by 刘瑞斌
parent 2f986c832d
commit e913074e2b
9 changed files with 25 additions and 12 deletions

View File

@ -9,6 +9,7 @@ import io.metersphere.api.dto.ReferenceDTO;
import io.metersphere.api.dto.ReferenceRequest;
import io.metersphere.api.dto.definition.*;
import io.metersphere.api.dto.request.ApiTransferRequest;
import io.metersphere.api.service.ApiBatchRunBaseService;
import io.metersphere.api.service.ApiFileResourceService;
import io.metersphere.api.service.definition.*;
import io.metersphere.plugin.api.spi.AbstractMsTestElement;
@ -36,6 +37,7 @@ import jakarta.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -300,6 +302,7 @@ public class ApiTestCaseController {
@RequiresPermissions(PermissionConstants.PROJECT_API_DEFINITION_CASE_EXECUTE)
@CheckOwner(resourceId = "#request.getSelectIds()", resourceType = "api_test_case")
public void batchRun(@Validated @RequestBody ApiTestCaseBatchRunRequest request) {
ApiBatchRunBaseService.setLocale(LocaleContextHolder.getLocale());
apiTestCaseBatchRunService.asyncBatchRun(request, SessionUtils.getUserId());
}

View File

@ -6,6 +6,7 @@ import io.metersphere.api.dto.scenario.ApiScenarioBatchCopyMoveRequest;
import io.metersphere.api.dto.scenario.ApiScenarioBatchEditRequest;
import io.metersphere.api.dto.scenario.ApiScenarioBatchRequest;
import io.metersphere.api.dto.scenario.ApiScenarioBatchRunRequest;
import io.metersphere.api.service.ApiBatchRunBaseService;
import io.metersphere.api.service.ApiValidateService;
import io.metersphere.api.service.scenario.ApiScenarioBatchRunService;
import io.metersphere.api.service.scenario.ApiScenarioNoticeService;
@ -21,6 +22,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -99,6 +101,7 @@ public class ApiScenarioBatchOperationController {
@RequiresPermissions(PermissionConstants.PROJECT_API_SCENARIO_EXECUTE)
public void batchRun(@Validated @RequestBody ApiScenarioBatchRunRequest request) {
apiValidateService.validateApiMenuInProject(request.getProjectId(), ApiResource.PROJECT.name());
ApiBatchRunBaseService.setLocale(LocaleContextHolder.getLocale());
apiScenarioBatchRunService.asyncBatchRun(request, SessionUtils.getUserId());
}
}

View File

@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
@ -38,14 +39,14 @@ public class ApiBatchRunBaseService {
@Resource
private ExecTaskMapper execTaskMapper;
/**
* 初始化执行队列
*
* @param resourceIds
* @return
*/
public ExecutionQueue initExecutionqueue(List<String> resourceIds, String resourceType, String userId) {
return initExecutionqueue(resourceIds, null, resourceType, null, userId);
private final static ThreadLocal<Locale> localeThreadLocal = new ThreadLocal<>();
public static void setLocale(Locale locale) {
localeThreadLocal.set(locale);
}
public static Locale getLocale() {
return localeThreadLocal.get();
}
/**

View File

@ -159,7 +159,7 @@ public class ApiTestCaseBatchRunService {
if (runModeConfig.isIntegratedReport()) {
execTask.setTaskName(runModeConfig.getCollectionReport().getReportName());
} else {
execTask.setTaskName(Translator.get("api_batch_task_name"));
execTask.setTaskName(Translator.get("api_batch_task_name", ApiBatchRunBaseService.getLocale()));
}
execTask.setOrganizationId(project.getOrganizationId());
execTask.setTriggerMode(TaskTriggerMode.BATCH.name());

View File

@ -243,7 +243,7 @@ public class ApiScenarioBatchRunService {
if (runModeConfig.isIntegratedReport()) {
execTask.setTaskName(runModeConfig.getCollectionReport().getReportName());
} else {
execTask.setTaskName(Translator.get("api_scenario_batch_task_name"));
execTask.setTaskName(Translator.get("api_scenario_batch_task_name", ApiBatchRunBaseService.getLocale()));
}
execTask.setOrganizationId(project.getOrganizationId());
execTask.setTriggerMode(TaskTriggerMode.BATCH.name());

View File

@ -4,6 +4,7 @@ import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import io.metersphere.api.dto.definition.ApiReportDTO;
import io.metersphere.api.dto.definition.ApiReportDetailDTO;
import io.metersphere.api.service.ApiBatchRunBaseService;
import io.metersphere.api.service.definition.ApiReportService;
import io.metersphere.bug.domain.Bug;
import io.metersphere.bug.dto.request.BugEditRequest;
@ -39,6 +40,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -148,6 +150,7 @@ public class TestPlanApiCaseController {
@RequiresPermissions(PermissionConstants.TEST_PLAN_READ_EXECUTE)
@CheckOwner(resourceId = "#request.getSelectIds()", resourceType = "test_plan", relationType = "test_plan_api_case")
public void batchRun(@Validated @RequestBody TestPlanApiCaseBatchRunRequest request) {
ApiBatchRunBaseService.setLocale(LocaleContextHolder.getLocale());
testPlanApiCaseBatchRunService.asyncBatchRun(request, SessionUtils.getUserId());
}

View File

@ -4,6 +4,7 @@ import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import io.metersphere.api.dto.scenario.ApiScenarioReportDTO;
import io.metersphere.api.dto.scenario.ApiScenarioReportDetailDTO;
import io.metersphere.api.service.ApiBatchRunBaseService;
import io.metersphere.api.service.scenario.ApiScenarioReportService;
import io.metersphere.bug.domain.Bug;
import io.metersphere.bug.dto.request.BugEditRequest;
@ -36,6 +37,7 @@ import jakarta.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -98,6 +100,7 @@ public class TestPlanApiScenarioController {
@RequiresPermissions(PermissionConstants.TEST_PLAN_READ_EXECUTE)
@CheckOwner(resourceId = "#request.getSelectIds()", resourceType = "test_plan", relationType = "test_plan_api_scenario")
public void batchRun(@Validated @RequestBody TestPlanApiScenarioBatchRunRequest request) {
ApiBatchRunBaseService.setLocale(LocaleContextHolder.getLocale());
testPlanApiScenarioBatchRunService.asyncBatchRun(request, SessionUtils.getUserId());
}

View File

@ -308,7 +308,7 @@ public class TestPlanApiCaseBatchRunService {
private ExecTask initExecTask(int caseSize, Project project, String userId) {
ExecTask execTask = apiCommonService.newExecTask(project.getId(), userId);
execTask.setCaseCount(Long.valueOf(caseSize));
execTask.setTaskName(Translator.get("api_batch_task_name"));
execTask.setTaskName(Translator.get("api_batch_task_name", ApiBatchRunBaseService.getLocale()));
execTask.setOrganizationId(project.getOrganizationId());
execTask.setTriggerMode(TaskTriggerMode.BATCH.name());
execTask.setTaskType(ExecTaskType.TEST_PLAN_API_CASE_BATCH.name());

View File

@ -308,7 +308,7 @@ public class TestPlanApiScenarioBatchRunService {
private ExecTask initExecTask(int caseSize, Project project, String userId) {
ExecTask execTask = apiCommonService.newExecTask(project.getId(), userId);
execTask.setCaseCount(Long.valueOf(caseSize));
execTask.setTaskName(Translator.get("api_scenario_batch_task_name"));
execTask.setTaskName(Translator.get("api_scenario_batch_task_name", ApiBatchRunBaseService.getLocale()));
execTask.setOrganizationId(project.getOrganizationId());
execTask.setTriggerMode(TaskTriggerMode.BATCH.name());
execTask.setTaskType(ExecTaskType.TEST_PLAN_API_SCENARIO_BATCH.name());