refactor(测试跟踪): 优化导出测试计划报告
--bug=1013577 --user=赵勇 【测试跟踪】测试计划报告页面 导出报告 导出报告时间过长 差不多10秒,建议优化下 https://www.tapd.cn/55049933/s/1179328
This commit is contained in:
parent
cc3bd51d70
commit
c5436d7713
|
@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import io.metersphere.api.dto.APIReportResult;
|
|
||||||
import io.metersphere.api.dto.EnvironmentType;
|
import io.metersphere.api.dto.EnvironmentType;
|
||||||
import io.metersphere.api.dto.automation.*;
|
import io.metersphere.api.dto.automation.*;
|
||||||
import io.metersphere.api.dto.datacount.request.ScheduleInfoRequest;
|
import io.metersphere.api.dto.datacount.request.ScheduleInfoRequest;
|
||||||
|
@ -41,7 +40,10 @@ import io.metersphere.track.domain.ReportComponent;
|
||||||
import io.metersphere.track.dto.*;
|
import io.metersphere.track.dto.*;
|
||||||
import io.metersphere.track.request.testcase.PlanCaseRelevanceRequest;
|
import io.metersphere.track.request.testcase.PlanCaseRelevanceRequest;
|
||||||
import io.metersphere.track.request.testcase.QueryTestPlanRequest;
|
import io.metersphere.track.request.testcase.QueryTestPlanRequest;
|
||||||
import io.metersphere.track.request.testplan.*;
|
import io.metersphere.track.request.testplan.AddTestPlanRequest;
|
||||||
|
import io.metersphere.track.request.testplan.LoadCaseReportRequest;
|
||||||
|
import io.metersphere.track.request.testplan.LoadCaseRequest;
|
||||||
|
import io.metersphere.track.request.testplan.TestplanRunRequest;
|
||||||
import io.metersphere.track.request.testplancase.QueryTestPlanCaseRequest;
|
import io.metersphere.track.request.testplancase.QueryTestPlanCaseRequest;
|
||||||
import io.metersphere.utils.LoggerUtil;
|
import io.metersphere.utils.LoggerUtil;
|
||||||
import org.apache.commons.beanutils.BeanMap;
|
import org.apache.commons.beanutils.BeanMap;
|
||||||
|
@ -71,7 +73,6 @@ import java.io.InputStreamReader;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
@ -179,6 +180,8 @@ public class TestPlanService {
|
||||||
private ProjectService projectService;
|
private ProjectService projectService;
|
||||||
@Resource
|
@Resource
|
||||||
private TestPlanExecutionQueueService testPlanExecutionQueueService;
|
private TestPlanExecutionQueueService testPlanExecutionQueueService;
|
||||||
|
@Resource
|
||||||
|
private ApiDefinitionExecResultMapper apiDefinitionExecResultMapper;
|
||||||
|
|
||||||
public synchronized TestPlan addTestPlan(AddTestPlanRequest testPlan) {
|
public synchronized TestPlan addTestPlan(AddTestPlanRequest testPlan) {
|
||||||
if (getTestPlanByName(testPlan.getName()).size() > 0) {
|
if (getTestPlanByName(testPlan.getName()).size() > 0) {
|
||||||
|
@ -1409,10 +1412,16 @@ public class TestPlanService {
|
||||||
|
|
||||||
public void buildApiResponse(List<TestPlanFailureApiDTO> cases) {
|
public void buildApiResponse(List<TestPlanFailureApiDTO> cases) {
|
||||||
if (!CollectionUtils.isEmpty(cases)) {
|
if (!CollectionUtils.isEmpty(cases)) {
|
||||||
|
List<String> reportIds = cases.stream().map(TestPlanFailureApiDTO::getReportId).collect(Collectors.toList());
|
||||||
|
ApiDefinitionExecResultExample example = new ApiDefinitionExecResultExample();
|
||||||
|
example.createCriteria().andIdIn(reportIds);
|
||||||
|
List<ApiDefinitionExecResult> results = apiDefinitionExecResultMapper.selectByExampleWithBLOBs(example);
|
||||||
|
// 格式化数据结果
|
||||||
|
Map<String, ApiDefinitionExecResult> resultMap = results.stream().collect(Collectors.toMap(ApiDefinitionExecResult::getId, item -> item, (k, v) -> k));
|
||||||
cases.forEach(item -> {
|
cases.forEach(item -> {
|
||||||
APIReportResult dbResult = apiDefinitionService.getDbResult(item.getId());
|
if (resultMap.get(item.getReportId()) != null &&
|
||||||
if (dbResult != null && StringUtils.isNotBlank(dbResult.getContent())) {
|
StringUtils.isNotBlank(resultMap.get(item.getReportId()).getContent())) {
|
||||||
item.setResponse(dbResult.getContent());
|
item.setResponse(resultMap.get(item.getReportId()).getContent());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue