mirror of
https://gitee.com/fit2cloud-feizhiyun/MeterSphere.git
synced 2024-11-30 02:58:31 +08:00
refactor(测试跟踪): 优化大量用例执行存储效率
--bug=1020298 --user=赵勇 【测试跟踪】github#20206,性能问题测试跟踪-测试计划-选择一计划手动执行性能很慢 https://www.tapd.cn/55049933/s/1305598
This commit is contained in:
parent
c5f3767fc9
commit
c3d9057123
@ -132,6 +132,7 @@ public class ApiDefinitionExecResultService {
|
||||
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
|
||||
ApiDefinitionExecResultMapper definitionExecResultMapper = sqlSession.getMapper(ApiDefinitionExecResultMapper.class);
|
||||
ApiTestCaseMapper batchApiTestCaseMapper = sqlSession.getMapper(ApiTestCaseMapper.class);
|
||||
TestPlanApiCaseMapper planApiCaseMapper = sqlSession.getMapper(TestPlanApiCaseMapper.class);
|
||||
|
||||
for (ResultDTO dto : resultDTOS) {
|
||||
this.mergeRetryResults(dto);
|
||||
@ -143,7 +144,7 @@ public class ApiDefinitionExecResultService {
|
||||
result.setResourceId(dto.getTestId());
|
||||
apiExecutionInfoService.insertExecutionInfo(result);
|
||||
// 批量更新关联关系状态
|
||||
batchEditStatus(dto.getRunMode(), result.getStatus(), result.getId(), dto.getTestId(), batchApiTestCaseMapper);
|
||||
batchEditStatus(dto.getRunMode(), result.getStatus(), result.getId(), dto.getTestId(), planApiCaseMapper, batchApiTestCaseMapper);
|
||||
}
|
||||
if (result != null && !StringUtils.startsWithAny(dto.getRunMode(), "SCHEDULE")) {
|
||||
User user = null;
|
||||
@ -264,14 +265,30 @@ public class ApiDefinitionExecResultService {
|
||||
saveResult.setName(name);
|
||||
}
|
||||
|
||||
public void batchEditStatus(String type, String status, String reportId, String testId, ApiTestCaseMapper batchApiTestCaseMapper) {
|
||||
// 更新用例最后执行结果
|
||||
ApiTestCaseWithBLOBs caseWithBLOBs = new ApiTestCaseWithBLOBs();
|
||||
caseWithBLOBs.setId(testId);
|
||||
caseWithBLOBs.setLastResultId(reportId);
|
||||
caseWithBLOBs.setStatus(status);
|
||||
caseWithBLOBs.setUpdateTime(System.currentTimeMillis());
|
||||
batchApiTestCaseMapper.updateByPrimaryKeySelective(caseWithBLOBs);
|
||||
public void batchEditStatus(String type, String status, String reportId, String testId,
|
||||
TestPlanApiCaseMapper batchTestPlanApiCaseMapper,
|
||||
ApiTestCaseMapper batchApiTestCaseMapper) {
|
||||
if (StringUtils.equalsAnyIgnoreCase(type, ApiRunMode.API_PLAN.name(), ApiRunMode.SCHEDULE_API_PLAN.name(),
|
||||
ApiRunMode.JENKINS_API_PLAN.name(), ApiRunMode.MANUAL_PLAN.name())) {
|
||||
TestPlanApiCase apiCase = new TestPlanApiCase();
|
||||
apiCase.setId(testId);
|
||||
apiCase.setStatus(status);
|
||||
apiCase.setUpdateTime(System.currentTimeMillis());
|
||||
batchTestPlanApiCaseMapper.updateByPrimaryKeySelective(apiCase);
|
||||
|
||||
TestCaseReviewApiCase reviewApiCase = new TestCaseReviewApiCase();
|
||||
reviewApiCase.setId(testId);
|
||||
reviewApiCase.setStatus(status);
|
||||
reviewApiCase.setUpdateTime(System.currentTimeMillis());
|
||||
} else {
|
||||
// 更新用例最后执行结果
|
||||
ApiTestCaseWithBLOBs caseWithBLOBs = new ApiTestCaseWithBLOBs();
|
||||
caseWithBLOBs.setId(testId);
|
||||
caseWithBLOBs.setLastResultId(reportId);
|
||||
caseWithBLOBs.setStatus(status);
|
||||
caseWithBLOBs.setUpdateTime(System.currentTimeMillis());
|
||||
batchApiTestCaseMapper.updateByPrimaryKeySelective(caseWithBLOBs);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -388,8 +405,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);
|
||||
|
@ -579,6 +579,9 @@ public class TestPlanApiCaseService {
|
||||
|
||||
testPlanService.statusReset(request.getPlanId());
|
||||
sqlSession.flushStatements();
|
||||
if (sqlSession != null && sqlSessionFactory != null) {
|
||||
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
|
||||
}
|
||||
}
|
||||
|
||||
public void relevanceByTestIds(List<String> ids, String planId) {
|
||||
@ -634,6 +637,9 @@ public class TestPlanApiCaseService {
|
||||
}
|
||||
}
|
||||
sqlSession.flushStatements();
|
||||
if (sqlSession != null && sqlSessionFactory != null) {
|
||||
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -370,6 +370,9 @@ public class TestPlanScenarioCaseService {
|
||||
mapper.updateByPrimaryKeyWithBLOBs(testPlanApiScenario);
|
||||
}
|
||||
sqlSession.flushStatements();
|
||||
if (sqlSession != null && sqlSessionFactory != null) {
|
||||
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -727,6 +730,9 @@ public class TestPlanScenarioCaseService {
|
||||
}
|
||||
}
|
||||
sqlSession.flushStatements();
|
||||
if (sqlSession != null && sqlSessionFactory != null) {
|
||||
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user