fix(接口测试): 修复停止产生两条日志的缺陷

This commit is contained in:
wxg0103 2024-06-26 12:00:52 +08:00 committed by 刘瑞斌
parent b550a8f464
commit 230809296f
2 changed files with 16 additions and 22 deletions

View File

@ -256,7 +256,17 @@ public class ApiTaskCenterService {
TestResourcePoolReturnDTO testResourcePoolDTO = testResourcePoolService.getTestResourcePoolDetail(poolId); TestResourcePoolReturnDTO testResourcePoolDTO = testResourcePoolService.getTestResourcePoolDetail(poolId);
List<TestResourceNodeDTO> nodesList = testResourcePoolDTO.getTestResourceReturnDTO().getNodesList(); List<TestResourceNodeDTO> nodesList = testResourcePoolDTO.getTestResourceReturnDTO().getNodesList();
if (CollectionUtils.isNotEmpty(nodesList)) { if (CollectionUtils.isNotEmpty(nodesList)) {
stopTask(request, reportList, nodesList, userId, module, reports); stopTask(request, reportList, nodesList, reports);
}
});
// 保存日志 获取所有的reportId
List<String> reportIds = reports.stream().map(ReportDTO::getId).toList();
SubListUtils.dealForSubList(reportIds, 100, (subList) -> {
if (request.getModuleType().equals(TaskCenterResourceType.API_CASE.toString())) {
//记录日志
saveLog(subList, userId, StringUtils.join(module, "_REAL_TIME_API_CASE"), TaskCenterResourceType.API_CASE.toString());
} else if (request.getModuleType().equals(TaskCenterResourceType.API_SCENARIO.toString())) {
saveLog(subList, userId, StringUtils.join(module, "_REAL_TIME_API_SCENARIO"), TaskCenterResourceType.API_SCENARIO.toString());
} }
}); });
} }
@ -264,8 +274,6 @@ public class ApiTaskCenterService {
public void stopTask(TaskCenterBatchRequest request, public void stopTask(TaskCenterBatchRequest request,
List<String> reportList, List<String> reportList,
List<TestResourceNodeDTO> nodesList, List<TestResourceNodeDTO> nodesList,
String userId,
String module,
List<ReportDTO> reports) { List<ReportDTO> reports) {
// 根据报告id分组 key是报告id value是 是否集成 // 根据报告id分组 key是报告id value是 是否集成
Map<String, Boolean> integrationMap = reports.stream() Map<String, Boolean> integrationMap = reports.stream()
@ -320,13 +328,6 @@ public class ApiTaskCenterService {
kafkaTemplate.send(KafkaTopicConstants.API_REPORT_TOPIC, JSON.toJSONString(result)); kafkaTemplate.send(KafkaTopicConstants.API_REPORT_TOPIC, JSON.toJSONString(result));
} }
}); });
if (request.getModuleType().equals(TaskCenterResourceType.API_CASE.toString())) {
//记录日志
saveLog(subList, userId, StringUtils.join(module, "_REAL_TIME_API_CASE"), TaskCenterResourceType.API_CASE.toString());
} else if (request.getModuleType().equals(TaskCenterResourceType.API_SCENARIO.toString())) {
saveLog(subList, userId, StringUtils.join(module, "_REAL_TIME_API_SCENARIO"), TaskCenterResourceType.API_SCENARIO.toString());
}
} }
}); });
}); });

View File

@ -10,7 +10,6 @@ import io.metersphere.engine.MsHttpClient;
import io.metersphere.plan.mapper.ExtTestPlanReportMapper; import io.metersphere.plan.mapper.ExtTestPlanReportMapper;
import io.metersphere.project.domain.Project; import io.metersphere.project.domain.Project;
import io.metersphere.project.mapper.ProjectMapper; import io.metersphere.project.mapper.ProjectMapper;
import io.metersphere.sdk.constants.ApiExecuteResourceType;
import io.metersphere.sdk.constants.PermissionConstants; import io.metersphere.sdk.constants.PermissionConstants;
import io.metersphere.sdk.constants.TaskCenterResourceType; import io.metersphere.sdk.constants.TaskCenterResourceType;
import io.metersphere.sdk.exception.MSException; import io.metersphere.sdk.exception.MSException;
@ -288,9 +287,9 @@ public class TestPlanTaskCenterService {
} }
}); });
List<ReportDTO> apiReports = extTestPlanReportMapper.getCaseReports(subList); List<ReportDTO> apiReports = extTestPlanReportMapper.getCaseReports(subList);
detailReport(request, apiReports, userId, module, ApiExecuteResourceType.TEST_PLAN_API_CASE.name()); detailReport(request, apiReports);
List<ReportDTO> scenarioReports = extTestPlanReportMapper.getScenarioReports(subList); List<ReportDTO> scenarioReports = extTestPlanReportMapper.getScenarioReports(subList);
detailReport(request, scenarioReports, userId, module, ApiExecuteResourceType.TEST_PLAN_API_SCENARIO.name()); detailReport(request, scenarioReports);
saveLog(subList, userId, StringUtils.join(module, "_REAL_TIME_TEST_PLAN")); saveLog(subList, userId, StringUtils.join(module, "_REAL_TIME_TEST_PLAN"));
}); });
} }
@ -299,27 +298,21 @@ public class TestPlanTaskCenterService {
} }
private void detailReport(TaskCenterBatchRequest request, private void detailReport(TaskCenterBatchRequest request,
List<ReportDTO> reports, List<ReportDTO> reports) {
String userId,
String module,
String resourceType) {
Map<String, List<String>> poolIdMap = reports.stream() Map<String, List<String>> poolIdMap = reports.stream()
.collect(Collectors.groupingBy(ReportDTO::getPoolId, Collectors.mapping(ReportDTO::getId, Collectors.toList()))); .collect(Collectors.groupingBy(ReportDTO::getPoolId, Collectors.mapping(ReportDTO::getId, Collectors.toList())));
poolIdMap.forEach((poolId, reportList) -> { poolIdMap.forEach((poolId, reportList) -> {
TestResourcePoolReturnDTO testResourcePoolDTO = testResourcePoolService.getTestResourcePoolDetail(poolId); TestResourcePoolReturnDTO testResourcePoolDTO = testResourcePoolService.getTestResourcePoolDetail(poolId);
List<TestResourceNodeDTO> nodesList = testResourcePoolDTO.getTestResourceReturnDTO().getNodesList(); List<TestResourceNodeDTO> nodesList = testResourcePoolDTO.getTestResourceReturnDTO().getNodesList();
if (CollectionUtils.isNotEmpty(nodesList)) { if (CollectionUtils.isNotEmpty(nodesList)) {
stopTask(request, reportList, nodesList, userId, module, resourceType); stopTask(request, reportList, nodesList);
} }
}); });
} }
public void stopTask(TaskCenterBatchRequest request, public void stopTask(TaskCenterBatchRequest request,
List<String> reportList, List<String> reportList,
List<TestResourceNodeDTO> nodesList, List<TestResourceNodeDTO> nodesList) {
String userId,
String module,
String resourceType) {
nodesList.parallelStream().forEach(node -> { nodesList.parallelStream().forEach(node -> {
String endpoint = MsHttpClient.getEndpoint(node.getIp(), node.getPort()); String endpoint = MsHttpClient.getEndpoint(node.getIp(), node.getPort());
//需要去除取消勾选的report //需要去除取消勾选的report