fix(测试计划): 测试计划关联接口用例增加协议
This commit is contained in:
parent
043776f9b7
commit
f66600db11
|
@ -10,7 +10,6 @@ import io.metersphere.project.dto.ModuleCountDTO;
|
|||
import io.metersphere.project.dto.NodeSortQueryParam;
|
||||
import io.metersphere.request.AssociateOtherCaseRequest;
|
||||
import io.metersphere.request.TestCasePageProviderRequest;
|
||||
import io.metersphere.sdk.dto.AssociateCaseDTO;
|
||||
import io.metersphere.system.dto.sdk.BaseTreeNode;
|
||||
import io.metersphere.system.dto.sdk.OptionDTO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
@ -103,11 +102,11 @@ public interface ExtApiTestCaseMapper {
|
|||
|
||||
ApiTestCase getCaseByReportId(String resourceId);
|
||||
|
||||
List<ApiTestCase> selectAllApiCase(@Param("isRepeat") boolean isRepeat, @Param("projectId") String projectId, @Param("testPlanId") String testPlanId);
|
||||
List<ApiTestCase> selectAllApiCase(@Param("isRepeat") boolean isRepeat, @Param("projectId") String projectId, @Param("testPlanId") String testPlanId, @Param("protocols") List<String> protocols);
|
||||
|
||||
List<ApiTestCase> getListBySelectModules(@Param("isRepeat") boolean isRepeat, @Param("projectId") String projectId, @Param("moduleIds") List<String> moduleIds, @Param("testPlanId") String testPlanId);
|
||||
List<ApiTestCase> getListBySelectModules(@Param("isRepeat") boolean isRepeat, @Param("projectId") String projectId, @Param("moduleIds") List<String> moduleIds, @Param("testPlanId") String testPlanId, @Param("protocols") List<String> protocols);
|
||||
|
||||
List<ApiTestCase> getListBySelectIds(@Param("projectId") String projectId, @Param("ids") List<String> ids, @Param("testPlanId") String testPlanId);
|
||||
List<ApiTestCase> getListBySelectIds(@Param("projectId") String projectId, @Param("ids") List<String> ids, @Param("testPlanId") String testPlanId, @Param("protocols") List<String> protocols);
|
||||
|
||||
List<ApiTestCase> getCaseListBySelectIds(@Param("projectId") String projectId, @Param("ids") List<String> ids, @Param("testPlanId") String testPlanId);
|
||||
List<ApiTestCase> getCaseListBySelectIds(@Param("projectId") String projectId, @Param("ids") List<String> ids, @Param("testPlanId") String testPlanId, @Param("protocols") List<String> protocols);
|
||||
}
|
|
@ -624,8 +624,15 @@
|
|||
api_test_case.create_user,
|
||||
api_test_case.environment_id
|
||||
from api_test_case
|
||||
INNER JOIN api_definition ON api_test_case.api_definition_id = api_definition.id
|
||||
where api_test_case.deleted = false
|
||||
and api_test_case.project_id = #{projectId}
|
||||
<if test="protocols != null and protocols.size() > 0">
|
||||
and api_definition.protocol in
|
||||
<foreach collection="protocols" item="protocol" separator="," open="(" close=")">
|
||||
#{protocol}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="!isRepeat">
|
||||
AND api_test_case.id not in (
|
||||
select test_plan_api_case.api_case_id from test_plan_api_case where test_plan_api_case.test_plan_id = #{testPlanId}
|
||||
|
@ -649,6 +656,12 @@
|
|||
<foreach collection="moduleIds" item="moduleId" open="(" separator="," close=")">
|
||||
#{moduleId}
|
||||
</foreach>
|
||||
<if test="protocols != null and protocols.size() > 0">
|
||||
and api_definition.protocol in
|
||||
<foreach collection="protocols" item="protocol" separator="," open="(" close=")">
|
||||
#{protocol}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="!isRepeat">
|
||||
AND api_test_case.id not in (
|
||||
select api_case_id from test_plan_api_case where test_plan_id = #{testPlanId}
|
||||
|
@ -670,6 +683,12 @@
|
|||
<foreach collection="ids" item="id" separator="," open="(" close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
<if test="protocols != null and protocols.size() > 0">
|
||||
and api_definition.protocol in
|
||||
<foreach collection="protocols" item="protocol" separator="," open="(" close=")">
|
||||
#{protocol}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
|
@ -687,6 +706,12 @@
|
|||
<foreach collection="ids" item="id" separator="," open="(" close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
<if test="protocols != null and protocols.size() > 0">
|
||||
and api_definition.protocol in
|
||||
<foreach collection="protocols" item="protocol" separator="," open="(" close=")">
|
||||
#{protocol}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
@ -40,5 +40,8 @@ public class TestPlanCollectionAssociateDTO implements Serializable {
|
|||
@Schema(description = "场景计划集id")
|
||||
private String apiScenarioCollectionId;
|
||||
|
||||
@Schema(description = "协议")
|
||||
private List<String> protocols;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -589,20 +589,20 @@ public class TestPlanApiCaseService extends TestPlanResourceService {
|
|||
moduleMaps.remove(MODULE_ALL);
|
||||
if (selectAllModule) {
|
||||
// 选择了全部模块
|
||||
List<ApiTestCase> apiTestCaseList = extApiTestCaseMapper.selectAllApiCase(isRepeat, apiCase.getModules().getProjectId(), testPlan.getId());
|
||||
List<ApiTestCase> apiTestCaseList = extApiTestCaseMapper.selectAllApiCase(isRepeat, apiCase.getModules().getProjectId(), testPlan.getId(), apiCase.getModules().getProtocols());
|
||||
buildTestPlanApiCaseDTO(apiCase.getCollectionId(), apiTestCaseList, testPlan, user, testPlanApiCaseList);
|
||||
} else {
|
||||
AssociateCaseDTO dto = super.getCaseIds(moduleMaps);
|
||||
List<ApiTestCase> apiTestCaseList = new ArrayList<>();
|
||||
//获取全选的模块数据
|
||||
if (CollectionUtils.isNotEmpty(dto.getModuleIds())) {
|
||||
apiTestCaseList = extApiTestCaseMapper.getListBySelectModules(isRepeat, apiCase.getModules().getProjectId(), dto.getModuleIds(), testPlan.getId());
|
||||
apiTestCaseList = extApiTestCaseMapper.getListBySelectModules(isRepeat, apiCase.getModules().getProjectId(), dto.getModuleIds(), testPlan.getId(), apiCase.getModules().getProtocols());
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(dto.getSelectIds())) {
|
||||
CollectionUtils.removeAll(dto.getSelectIds(), apiTestCaseList.stream().map(ApiTestCase::getId).toList());
|
||||
//获取选中的ids数据
|
||||
List<ApiTestCase> selectIdList = extApiTestCaseMapper.getListBySelectIds(apiCase.getModules().getProjectId(), dto.getSelectIds(), testPlan.getId());
|
||||
List<ApiTestCase> selectIdList = extApiTestCaseMapper.getListBySelectIds(apiCase.getModules().getProjectId(), dto.getSelectIds(), testPlan.getId(), apiCase.getModules().getProtocols());
|
||||
apiTestCaseList.addAll(selectIdList);
|
||||
}
|
||||
|
||||
|
@ -631,20 +631,20 @@ public class TestPlanApiCaseService extends TestPlanResourceService {
|
|||
Map<String, ModuleSelectDTO> moduleMaps = apiCase.getModules().getModuleMaps();
|
||||
if (selectAllModule) {
|
||||
// 选择了全部模块
|
||||
List<ApiTestCase> apiTestCaseList = extApiTestCaseMapper.selectAllApiCase(isRepeat, apiCase.getModules().getProjectId(), testPlan.getId());
|
||||
List<ApiTestCase> apiTestCaseList = extApiTestCaseMapper.selectAllApiCase(isRepeat, apiCase.getModules().getProjectId(), testPlan.getId(), apiCase.getModules().getProtocols());
|
||||
buildTestPlanApiCaseDTO(apiCase.getCollectionId(), apiTestCaseList, testPlan, user, testPlanApiCaseList);
|
||||
} else {
|
||||
AssociateCaseDTO dto = super.getCaseIds(moduleMaps);
|
||||
List<ApiTestCase> apiTestCaseList = new ArrayList<>();
|
||||
//获取全选的模块数据
|
||||
if (CollectionUtils.isNotEmpty(dto.getModuleIds())) {
|
||||
apiTestCaseList = extApiTestCaseMapper.getListBySelectModules(isRepeat, apiCase.getModules().getProjectId(), dto.getModuleIds(), testPlan.getId());
|
||||
apiTestCaseList = extApiTestCaseMapper.getListBySelectModules(isRepeat, apiCase.getModules().getProjectId(), dto.getModuleIds(), testPlan.getId(), apiCase.getModules().getProtocols());
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(dto.getSelectIds())) {
|
||||
CollectionUtils.removeAll(dto.getSelectIds(), apiTestCaseList.stream().map(ApiTestCase::getId).toList());
|
||||
//获取选中的ids数据
|
||||
List<ApiTestCase> selectIdList = extApiTestCaseMapper.getCaseListBySelectIds(apiCase.getModules().getProjectId(), dto.getSelectIds(), testPlan.getId());
|
||||
List<ApiTestCase> selectIdList = extApiTestCaseMapper.getCaseListBySelectIds(apiCase.getModules().getProjectId(), dto.getSelectIds(), testPlan.getId(), apiCase.getModules().getProtocols());
|
||||
apiTestCaseList.addAll(selectIdList);
|
||||
}
|
||||
|
||||
|
|
|
@ -303,6 +303,7 @@ public class TestPlanApiCaseControllerTests extends BaseTest {
|
|||
associateDTO.setAssociateType(type);
|
||||
associateDTO.setProjectId("wxx_1234");
|
||||
associateDTO.setModuleMaps(buildModuleMap());
|
||||
associateDTO.setProtocols(List.of("HTTP"));
|
||||
return associateDTO;
|
||||
}
|
||||
|
||||
|
@ -320,6 +321,7 @@ public class TestPlanApiCaseControllerTests extends BaseTest {
|
|||
associateDTO.setSelectAllModule(true);
|
||||
associateDTO.setAssociateType(type);
|
||||
associateDTO.setProjectId("wxx_1234");
|
||||
associateDTO.setProtocols(List.of("HTTP"));
|
||||
|
||||
Map<String, ModuleSelectDTO> moduleMap = new HashMap<>();
|
||||
ModuleSelectDTO moduleSelectDTO = new ModuleSelectDTO();
|
||||
|
|
Loading…
Reference in New Issue