fix(接口测试): 修复接口场景集合报告时生成报告出错的问题

--bug=1023161 --user=宋天阳
【接口测试】场景列表-批量执行-串行/并行-集合报告-local资源池-任务一直Running中
https://www.tapd.cn/55049933/s/1336500
This commit is contained in:
song-tianyang 2023-02-16 15:25:25 +08:00 committed by 建国
parent 085f826ce6
commit 8c222c5618
2 changed files with 17 additions and 7 deletions

View File

@ -217,7 +217,7 @@ public class TestResultService {
String environment = StringUtils.EMPTY;
//执行人
String userName = StringUtils.EMPTY;
String userName = apiAutomationService.getUser(scenarioReport.getUserId());
//负责人
String principal = StringUtils.EMPTY;
@ -227,14 +227,21 @@ public class TestResultService {
ApiScenarioWithBLOBs apiScenario = apiScenarioMapper.selectByPrimaryKey(testPlanApiScenario.getApiScenarioId());
if (apiScenario != null) {
scenarioExecutionInfoService.insertScenarioInfo(apiScenario, scenarioReport, dto);
environment = apiScenarioReportService.getEnvironment(apiScenario);
principal = apiAutomationService.getUser(apiScenario.getPrincipal());
}
}
} else {
ApiScenarioWithBLOBs apiScenario = apiScenarioMapper.selectByPrimaryKey(scenarioReport.getScenarioId());
scenarioExecutionInfoService.insertScenarioInfo(apiScenario, scenarioReport, dto);
environment = apiScenarioReportService.getEnvironment(apiScenario);
userName = apiAutomationService.getUser(apiScenario.getUserId());
principal = apiAutomationService.getUser(apiScenario.getPrincipal());
//集合报告查不出场景场景的执行次数统计是在margeReport函数中进行的所以这里要进行一个判断
if (apiScenario != null) {
scenarioExecutionInfoService.insertScenarioInfo(apiScenario, scenarioReport, dto);
environment = apiScenarioReportService.getEnvironment(apiScenario);
principal = apiAutomationService.getUser(apiScenario.getPrincipal());
} else {
//负责人取当前负责人
principal = apiAutomationService.getUser(scenarioReport.getUserId());
}
}
//报告内容

View File

@ -9,14 +9,14 @@ import io.metersphere.commons.enums.ExecutionExecuteTypeEnum;
import io.metersphere.commons.utils.JSON;
import io.metersphere.commons.utils.LogUtil;
import io.metersphere.dto.ResultDTO;
import jakarta.annotation.Resource;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import jakarta.annotation.Resource;
import java.util.List;
import java.util.UUID;
@ -48,6 +48,9 @@ public class ApiScenarioExecutionInfoService {
@Lazy
public void insertScenarioInfo(ApiScenarioWithBLOBs apiScenario, ApiScenarioReport scenarioReport, ResultDTO dto) {
if (ObjectUtils.anyNull(apiScenario, scenarioReport, dto)) {
return;
}
if (StringUtils.equalsAnyIgnoreCase(dto.getRunMode(), ApiRunMode.SCENARIO_PLAN.name(), ApiRunMode.SCHEDULE_SCENARIO_PLAN.name(), ApiRunMode.JENKINS_SCENARIO_PLAN.name())) {
this.insertExecutionInfo(dto.getTestId(), scenarioReport.getStatus(), scenarioReport.getTriggerMode(), scenarioReport.getProjectId() == null ? apiScenario.getProjectId() : scenarioReport.getProjectId(), ExecutionExecuteTypeEnum.TEST_PLAN.name(), apiScenario.getVersionId());
} else {