refactor(接口测试): 执行通知区分集合报告
This commit is contained in:
parent
402e74c854
commit
b29fa733e8
|
@ -1,6 +1,5 @@
|
|||
package io.metersphere.sdk.dto.api.notice;
|
||||
|
||||
import io.metersphere.sdk.constants.ApiExecuteResourceType;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -13,13 +12,40 @@ import java.io.Serial;
|
|||
public class ApiNoticeDTO implements java.io.Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private ApiExecuteResourceType resourceType;
|
||||
/**
|
||||
* 资源类型
|
||||
*/
|
||||
private String resourceType;
|
||||
/**
|
||||
* 资源ID
|
||||
*/
|
||||
private String resourceId;
|
||||
/**
|
||||
* 报告状态
|
||||
*/
|
||||
private String reportStatus;
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
private String projectId;
|
||||
/**
|
||||
* 环境ID
|
||||
*/
|
||||
private String environmentId;
|
||||
/**
|
||||
* 报告ID
|
||||
*/
|
||||
private String reportId;
|
||||
/**
|
||||
* 队列ID
|
||||
*/
|
||||
private String queueId;
|
||||
/**
|
||||
* 报告类型
|
||||
*/
|
||||
private String reportType;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package io.metersphere.api.listener;
|
|||
import io.metersphere.api.event.ApiEventSource;
|
||||
import io.metersphere.api.service.ApiReportSendNoticeService;
|
||||
import io.metersphere.api.service.queue.ApiExecutionQueueService;
|
||||
import io.metersphere.sdk.constants.ApiReportType;
|
||||
import io.metersphere.sdk.constants.ApplicationScope;
|
||||
import io.metersphere.sdk.constants.KafkaTopicConstants;
|
||||
import io.metersphere.sdk.dto.api.notice.ApiNoticeDTO;
|
||||
|
@ -11,6 +12,7 @@ import io.metersphere.sdk.util.JSON;
|
|||
import io.metersphere.sdk.util.LogUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.kafka.clients.consumer.ConsumerRecord;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.kafka.annotation.KafkaListener;
|
||||
|
@ -33,12 +35,15 @@ public class MessageListener {
|
|||
LogUtils.info("接收到发送通知信息:", record.key());
|
||||
if (ObjectUtils.isNotEmpty(record.value())) {
|
||||
ApiNoticeDTO dto = JSON.parseObject(record.value(), ApiNoticeDTO.class);
|
||||
apiReportSendNoticeService.sendNotice(dto);
|
||||
|
||||
// TODO 通知测试计划处理后续
|
||||
LogUtils.info("发送通知给测试计划:", record.key());
|
||||
apiEventSource.fireEvent(ApplicationScope.API_TEST, record.value());
|
||||
// 集合报告不发送通知
|
||||
if (!StringUtils.equalsIgnoreCase(dto.getReportType(), ApiReportType.INTEGRATED.name())) {
|
||||
apiReportSendNoticeService.sendNotice(dto);
|
||||
// TODO 通知测试计划处理后续
|
||||
LogUtils.info("发送通知给测试计划:", record.key());
|
||||
apiEventSource.fireEvent(ApplicationScope.API_TEST, record.value());
|
||||
|
||||
}
|
||||
// TODO 串行触发下次执行
|
||||
ExecutionQueueDetail detail = apiExecutionQueueService.getNextDetail(dto.getQueueId());
|
||||
// TODO 调用执行方法
|
||||
|
|
|
@ -8,7 +8,6 @@ import io.metersphere.api.mapper.ApiScenarioMapper;
|
|||
import io.metersphere.api.mapper.ApiTestCaseMapper;
|
||||
import io.metersphere.project.domain.Project;
|
||||
import io.metersphere.project.mapper.ProjectMapper;
|
||||
import io.metersphere.sdk.constants.ApiExecuteResourceType;
|
||||
import io.metersphere.sdk.constants.ApiReportStatus;
|
||||
import io.metersphere.sdk.domain.Environment;
|
||||
import io.metersphere.sdk.dto.api.notice.ApiNoticeDTO;
|
||||
|
@ -55,13 +54,13 @@ public class ApiReportSendNoticeService {
|
|||
BaseSystemConfigDTO baseSystemConfigDTO = systemParameterService.getBaseInfo();
|
||||
BeanMap beanMap;
|
||||
switch (noticeDTO.getResourceType()) {
|
||||
case ApiExecuteResourceType.API_SCENARIO:
|
||||
case "API_SCENARIO":
|
||||
ApiScenario scenario = apiScenarioMapper.selectByPrimaryKey(noticeDTO.getResourceId());
|
||||
beanMap = new BeanMap(scenario);
|
||||
noticeType = NoticeConstants.TaskType.API_SCENARIO_TASK;
|
||||
reportUrl = baseSystemConfigDTO.getUrl() + "/#/api/automation/report/view/" + noticeDTO.getReportId();
|
||||
break;
|
||||
case ApiExecuteResourceType.API:
|
||||
case "API":
|
||||
ApiDefinition definition = apiDefinitionMapper.selectByPrimaryKey(noticeDTO.getResourceId());
|
||||
beanMap = new BeanMap(definition);
|
||||
noticeType = NoticeConstants.TaskType.API_DEFINITION_TASK;
|
||||
|
|
|
@ -26,7 +26,7 @@ public class MessageListenerTest {
|
|||
ApiNoticeDTO api = new ApiNoticeDTO();
|
||||
|
||||
// Set values for the fields
|
||||
api.setResourceType(ApiExecuteResourceType.API);
|
||||
api.setResourceType(ApiExecuteResourceType.API.name());
|
||||
api.setResourceId("exampleResourceId");
|
||||
api.setReportStatus("exampleReportStatus");
|
||||
api.setUserId("exampleUserId");
|
||||
|
@ -42,7 +42,7 @@ public class MessageListenerTest {
|
|||
ApiNoticeDTO scenario = new ApiNoticeDTO();
|
||||
|
||||
// Set values for the fields
|
||||
scenario.setResourceType(ApiExecuteResourceType.API);
|
||||
scenario.setResourceType(ApiExecuteResourceType.API.name());
|
||||
scenario.setResourceId("exampleResourceId");
|
||||
scenario.setReportStatus("exampleReportStatus");
|
||||
scenario.setUserId("exampleUserId");
|
||||
|
@ -58,7 +58,7 @@ public class MessageListenerTest {
|
|||
ApiNoticeDTO testCase = new ApiNoticeDTO();
|
||||
|
||||
// Set values for the fields
|
||||
testCase.setResourceType(ApiExecuteResourceType.API);
|
||||
testCase.setResourceType(ApiExecuteResourceType.API.name());
|
||||
testCase.setResourceId("exampleResourceId");
|
||||
testCase.setReportStatus("exampleReportStatus");
|
||||
testCase.setUserId("exampleUserId");
|
||||
|
|
Loading…
Reference in New Issue