fix(接口测试): 修复测试计划执行报告结果显示错误问题

--bug=1020245 --user=赵勇 【测试计划】计划中关联1400+的接口用例和20条场景用例,执行该测试计划成功后-报告统计中未更新 https://www.tapd.cn/55049933/s/1304778
This commit is contained in:
fit2-zhao 2022-11-24 18:47:23 +08:00 committed by 建国
parent 8d943d4245
commit d0021e6b08
3 changed files with 4 additions and 42 deletions

View File

@ -7,7 +7,6 @@ import io.metersphere.api.dto.definition.request.ElementUtil;
import io.metersphere.base.domain.ApiScenarioWithBLOBs;
import io.metersphere.base.domain.ApiTestCaseWithBLOBs;
import io.metersphere.base.domain.Project;
import io.metersphere.base.mapper.ApiDefinitionMapper;
import io.metersphere.base.mapper.ApiScenarioMapper;
import io.metersphere.base.mapper.ProjectMapper;
import io.metersphere.base.mapper.ext.ExtApiScenarioMapper;
@ -39,8 +38,6 @@ public class MsHashTreeService {
@Resource
private ApiDefinitionService apiDefinitionService;
@Resource
private ApiDefinitionMapper apiDefinitionMapper;
@Resource
private ExtApiScenarioMapper extApiScenarioMapper;
@Resource
private BaseProjectApplicationService baseProjectApplicationService;

View File

@ -14,7 +14,6 @@ import io.metersphere.commons.enums.ApiReportStatus;
import io.metersphere.commons.enums.ExecutionExecuteTypeEnum;
import io.metersphere.commons.utils.CommonBeanFactory;
import io.metersphere.commons.utils.DateUtils;
import io.metersphere.commons.utils.HttpHeaderUtils;
import io.metersphere.constants.RunModeConstants;
import io.metersphere.dto.BaseSystemConfigDTO;
import io.metersphere.dto.ResultDTO;
@ -27,7 +26,6 @@ import io.metersphere.service.scenario.ApiScenarioReportStructureService;
import io.metersphere.service.scenario.ApiScenarioService;
import org.apache.commons.beanutils.BeanMap;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -88,17 +86,6 @@ public class TestResultService {
* @param dto 执行结果
*/
public void saveResults(ResultDTO dto) {
String userId = null;
if (MapUtils.isNotEmpty(dto.getExtendedParameters()) && dto.getExtendedParameters().containsKey("userId")) {
userId = dto.getExtendedParameters().get("userId").toString();
}
if (StringUtils.isNotEmpty(userId)) {
User user = new User();
user.setId(userId);
user.setName(userId);
HttpHeaderUtils.runAsUser(user);
}
// 处理环境
List<String> environmentList = new LinkedList<>();
if (dto.getArbitraryData() != null && dto.getArbitraryData().containsKey("ENV")) {
@ -119,10 +106,6 @@ public class TestResultService {
// 场景报告结果处理
apiScenarioReportService.saveResult(dto);
}
if (StringUtils.isNotEmpty(userId)) {
HttpHeaderUtils.clearUser();
}
}
/**
@ -151,14 +134,11 @@ public class TestResultService {
}
}
//测试计划定时任务-接口执行逻辑的话需要同步测试计划的报告数据
if (StringUtils.equals(key, "schedule-task")) {
apiDefinitionExecResultService.batchSaveApiResult(resultDTOS, true);
} else if (StringUtils.equals(key, "api-test-case-task")) {
apiDefinitionExecResultService.batchSaveApiResult(resultDTOS, false);
if (StringUtils.equalsAny(key, "schedule-task", "api-test-case-task")) {
apiDefinitionExecResultService.batchSaveApiResult(resultDTOS);
} else if (StringUtils.equalsAny(key, "api-scenario-task")) {
apiScenarioReportService.batchSaveResult(resultDTOS);
}
}
}

View File

@ -123,7 +123,7 @@ public class ApiDefinitionExecResultService {
}
}
public void batchSaveApiResult(List<ResultDTO> resultDTOS, boolean isSchedule) {
public void batchSaveApiResult(List<ResultDTO> resultDTOS) {
if (CollectionUtils.isEmpty(resultDTOS)) {
return;
}
@ -134,17 +134,6 @@ public class ApiDefinitionExecResultService {
ApiTestCaseMapper batchApiTestCaseMapper = sqlSession.getMapper(ApiTestCaseMapper.class);
for (ResultDTO dto : resultDTOS) {
String userId = null;
if (MapUtils.isNotEmpty(dto.getExtendedParameters()) && dto.getExtendedParameters().containsKey("userId")) {
userId = dto.getExtendedParameters().get("userId").toString();
}
if (StringUtils.isNotEmpty(userId)) {
User user = new User();
user.setId(userId);
user.setName(userId);
HttpHeaderUtils.runAsUser(user);
}
this.mergeRetryResults(dto);
if (CollectionUtils.isNotEmpty(dto.getRequestResults())) {
for (RequestResult item : dto.getRequestResults()) {
@ -168,10 +157,6 @@ public class ApiDefinitionExecResultService {
}
}
}
if (StringUtils.isNotEmpty(userId)) {
HttpHeaderUtils.clearUser();
}
}
sqlSession.flushStatements();
if (sqlSession != null && sqlSessionFactory != null) {
@ -403,8 +388,8 @@ public class ApiDefinitionExecResultService {
if (StringUtils.isNotEmpty(saveResult.getTriggerMode()) && saveResult.getTriggerMode().equals("CASE")) {
saveResult.setTriggerMode(TriggerMode.MANUAL.name());
}
editStatus(saveResult, type, status, saveResult.getCreateTime(), saveResult.getId(), testId);
if (batchMapper == null) {
editStatus(saveResult, type, status, saveResult.getCreateTime(), saveResult.getId(), testId);
apiDefinitionExecResultMapper.updateByPrimaryKeySelective(saveResult);
} else {
batchMapper.updateByPrimaryKeySelective(saveResult);