perf(测试跟踪): 优化测试计划-接口用例-切换模块-模块树响应速度

--bug=1028792 --user=宋天阳 【测试跟踪】测试计划-接口用例-切换模块-模块树响应较慢
https://www.tapd.cn/55049933/s/1404854
This commit is contained in:
song-tianyang 2023-08-16 19:00:19 +08:00 committed by 建国
parent 4151f10024
commit f66f5c3f6c
5 changed files with 14 additions and 5 deletions

View File

@ -66,5 +66,7 @@ public interface ExtTestPlanApiCaseMapper {
List<String> selectResourcePoolIdByReportIds(@Param("ids") List<String> resourceIds); List<String> selectResourcePoolIdByReportIds(@Param("ids") List<String> resourceIds);
void updateStatusStop(@Param("ids") List<String> testIds); void updateStatusStop(@Param("ids") List<String> testIds);
List<String> getCaseProjectIdByPlanId(String planId);
} }

View File

@ -567,6 +567,13 @@
#{id} #{id}
</foreach> </foreach>
</select> </select>
<select id="getCaseProjectIdByPlanId" resultType="java.lang.String">
SELECT DISTINCT project_id
FROM api_test_case
WHERE id in (SELECT api_case_id
FROM test_plan_api_case
WHERE test_plan_id = #{0});
</select>
<update id="updateStatusStop" parameterType="java.util.List"> <update id="updateStatusStop" parameterType="java.util.List">
update test_plan_api_case set status="STOPPED" where id in update test_plan_api_case set status="STOPPED" where id in
<foreach collection="ids" item="value" separator="," open="(" close=")"> <foreach collection="ids" item="value" separator="," open="(" close=")">

View File

@ -185,7 +185,7 @@ public class TestPlanApiCaseController {
@PostMapping("/list/module/{planId}/{protocol}") @PostMapping("/list/module/{planId}/{protocol}")
public List<ApiModuleDTO> getNodeByPlanId(@PathVariable String planId, @PathVariable String protocol, @RequestBody List<String> projectIds) { public List<ApiModuleDTO> getNodeByPlanId(@PathVariable String planId, @PathVariable String protocol, @RequestBody List<String> projectIds) {
return testPlanApiCaseService.getNodeByPlanId(projectIds, planId, protocol); return testPlanApiCaseService.getNodeByPlanId(planId, protocol);
} }
@GetMapping("/run/{testId}/{reportId}") @GetMapping("/run/{testId}/{reportId}")

View File

@ -741,9 +741,10 @@ public class TestPlanApiCaseService {
return buildCases(extTestPlanApiCaseMapper.getFailureListByIds(planApiCaseIds, null)); return buildCases(extTestPlanApiCaseMapper.getFailureListByIds(planApiCaseIds, null));
} }
public List<ApiModuleDTO> getNodeByPlanId(List<String> projectIds, String planId, String protocol) { public List<ApiModuleDTO> getNodeByPlanId(String planId, String protocol) {
List<ApiModuleDTO> list = new ArrayList<>(); List<ApiModuleDTO> list = new ArrayList<>();
projectIds.forEach(id -> { List<String> apiCaseProjectId = extTestPlanApiCaseMapper.getCaseProjectIdByPlanId(planId);
apiCaseProjectId.forEach(id -> {
Project project = baseProjectService.getProjectById(id); Project project = baseProjectService.getProjectById(id);
String name = project.getName(); String name = project.getName();
List<ApiModuleDTO> nodeList = getNodeDTO(id, planId, protocol); List<ApiModuleDTO> nodeList = getNodeDTO(id, planId, protocol);

View File

@ -5,12 +5,12 @@ import io.metersphere.base.mapper.ProjectMapper;
import io.metersphere.base.mapper.TestPlanMapper; import io.metersphere.base.mapper.TestPlanMapper;
import io.metersphere.base.mapper.TestPlanProjectMapper; import io.metersphere.base.mapper.TestPlanProjectMapper;
import io.metersphere.plan.request.function.TestCaseRelevanceRequest; import io.metersphere.plan.request.function.TestCaseRelevanceRequest;
import jakarta.annotation.Resource;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import jakarta.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -58,7 +58,6 @@ public class TestPlanProjectService {
TestPlanExample testPlanExample = new TestPlanExample(); TestPlanExample testPlanExample = new TestPlanExample();
testPlanExample.createCriteria().andProjectIdEqualTo(projectId); testPlanExample.createCriteria().andProjectIdEqualTo(projectId);
List<TestPlan> testPlans = testPlanMapper.selectByExample(testPlanExample); List<TestPlan> testPlans = testPlanMapper.selectByExample(testPlanExample);
if (CollectionUtils.isEmpty(testPlans)) { if (CollectionUtils.isEmpty(testPlans)) {
return null; return null;
} }