feat(测试计划): 测试计划增加性能测试用例
This commit is contained in:
parent
87a074310f
commit
657d800536
|
@ -1,5 +1,6 @@
|
||||||
package io.metersphere.base.mapper.ext;
|
package io.metersphere.base.mapper.ext;
|
||||||
|
|
||||||
|
import io.metersphere.track.dto.TestPlanLoadCaseDTO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -7,4 +8,5 @@ import java.util.List;
|
||||||
public interface ExtTestPlanLoadCaseMapper {
|
public interface ExtTestPlanLoadCaseMapper {
|
||||||
|
|
||||||
List<String> selectIdsNotInPlan(@Param("projectId") String projectId, @Param("planId") String planId);
|
List<String> selectIdsNotInPlan(@Param("projectId") String projectId, @Param("planId") String planId);
|
||||||
|
List<TestPlanLoadCaseDTO> selectTestPlanLoadCaseList(@Param("planId") String planId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,4 +10,12 @@
|
||||||
select tplc.load_case_id from test_plan_load_case tplc where tplc.test_plan_id = #{planId}
|
select tplc.load_case_id from test_plan_load_case tplc where tplc.test_plan_id = #{planId}
|
||||||
)
|
)
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectTestPlanLoadCaseList" resultType="io.metersphere.track.dto.TestPlanLoadCaseDTO">
|
||||||
|
select tplc.id, u.name as userName, tplc.create_time, tplc.update_time, tplc.test_plan_id, tplc.load_case_id,
|
||||||
|
lt.status, lt.name as caseName
|
||||||
|
from test_plan_load_case tplc
|
||||||
|
inner join load_test lt on tplc.load_case_id = lt.id
|
||||||
|
inner join user u on lt.user_id = u.id
|
||||||
|
where tplc.test_plan_id = #{planId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
|
@ -5,6 +5,7 @@ import com.github.pagehelper.PageHelper;
|
||||||
import io.metersphere.base.domain.LoadTest;
|
import io.metersphere.base.domain.LoadTest;
|
||||||
import io.metersphere.commons.utils.PageUtils;
|
import io.metersphere.commons.utils.PageUtils;
|
||||||
import io.metersphere.commons.utils.Pager;
|
import io.metersphere.commons.utils.Pager;
|
||||||
|
import io.metersphere.track.dto.TestPlanLoadCaseDTO;
|
||||||
import io.metersphere.track.request.testplan.LoadCaseRequest;
|
import io.metersphere.track.request.testplan.LoadCaseRequest;
|
||||||
import io.metersphere.track.service.TestPlanLoadCaseService;
|
import io.metersphere.track.service.TestPlanLoadCaseService;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
@ -30,7 +31,7 @@ public class TestPlanLoadCaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/list/{goPage}/{pageSize}")
|
@PostMapping("/list/{goPage}/{pageSize}")
|
||||||
public Pager<List<LoadTest>> list(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody LoadCaseRequest request) {
|
public Pager<List<TestPlanLoadCaseDTO>> list(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody LoadCaseRequest request) {
|
||||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||||
return PageUtils.setPageInfo(page, testPlanLoadCaseService.list(request));
|
return PageUtils.setPageInfo(page, testPlanLoadCaseService.list(request));
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
package io.metersphere.track.dto;
|
||||||
|
|
||||||
|
import io.metersphere.base.domain.TestPlanLoadCase;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class TestPlanLoadCaseDTO extends TestPlanLoadCase {
|
||||||
|
private String userName;
|
||||||
|
private String caseName;
|
||||||
|
}
|
|
@ -1,28 +1,24 @@
|
||||||
package io.metersphere.track.service;
|
package io.metersphere.track.service;
|
||||||
|
|
||||||
import io.metersphere.base.domain.LoadTest;
|
import io.metersphere.base.domain.LoadTest;
|
||||||
import io.metersphere.base.domain.TestPlanApiCase;
|
|
||||||
import io.metersphere.base.domain.TestPlanLoadCase;
|
import io.metersphere.base.domain.TestPlanLoadCase;
|
||||||
import io.metersphere.base.domain.TestPlanLoadCaseExample;
|
import io.metersphere.base.domain.TestPlanLoadCaseExample;
|
||||||
import io.metersphere.base.mapper.TestPlanLoadCaseMapper;
|
import io.metersphere.base.mapper.TestPlanLoadCaseMapper;
|
||||||
import io.metersphere.base.mapper.ext.ExtTestPlanApiCaseMapper;
|
|
||||||
import io.metersphere.base.mapper.ext.ExtTestPlanLoadCaseMapper;
|
import io.metersphere.base.mapper.ext.ExtTestPlanLoadCaseMapper;
|
||||||
import io.metersphere.performance.service.PerformanceTestService;
|
import io.metersphere.performance.service.PerformanceTestService;
|
||||||
|
import io.metersphere.track.dto.TestPlanLoadCaseDTO;
|
||||||
import io.metersphere.track.request.testplan.LoadCaseRequest;
|
import io.metersphere.track.request.testplan.LoadCaseRequest;
|
||||||
import org.apache.ibatis.session.ExecutorType;
|
import org.apache.ibatis.session.ExecutorType;
|
||||||
import org.apache.ibatis.session.SqlSession;
|
import org.apache.ibatis.session.SqlSession;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.python.antlr.op.Load;
|
|
||||||
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 org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@ -45,12 +41,8 @@ public class TestPlanLoadCaseService {
|
||||||
return performanceTestService.getLoadTestListByIds(ids);
|
return performanceTestService.getLoadTestListByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<LoadTest> list(LoadCaseRequest request) {
|
public List<TestPlanLoadCaseDTO> list(LoadCaseRequest request) {
|
||||||
TestPlanLoadCaseExample testPlanLoadCaseExample = new TestPlanLoadCaseExample();
|
return extTestPlanLoadCaseMapper.selectTestPlanLoadCaseList(request.getTestPlanId());
|
||||||
testPlanLoadCaseExample.createCriteria().andTestPlanIdEqualTo(request.getTestPlanId());
|
|
||||||
List<TestPlanLoadCase> testPlanLoadCases = testPlanLoadCaseMapper.selectByExample(testPlanLoadCaseExample);
|
|
||||||
List<String> ids = testPlanLoadCases.stream().map(TestPlanLoadCase::getLoadCaseId).collect(Collectors.toList());
|
|
||||||
return performanceTestService.getLoadTestListByIds(ids);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void relevanceCase(LoadCaseRequest request) {
|
public void relevanceCase(LoadCaseRequest request) {
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS `test_plan_load_case`
|
||||||
|
(
|
||||||
|
`id` varchar(50) NOT NULL COMMENT 'ID',
|
||||||
|
`test_plan_id` varchar(50) NOT NULL COMMENT 'Test plan ID',
|
||||||
|
`load_case_id` varchar(50) NOT NULL COMMENT 'Load test case ID',
|
||||||
|
`status` varchar(50) DEFAULT NULL COMMENT 'Load case status',
|
||||||
|
`create_time` bigint(13) NOT NULL COMMENT 'Create timestamp',
|
||||||
|
`update_time` bigint(13) NOT NULL COMMENT 'Update timestamp',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `plan_load_case_id` (`test_plan_id`, `load_case_id`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
DEFAULT CHARSET = utf8mb4;
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<!-- <el-table-column prop="num" label="ID" show-overflow-tooltip/>-->
|
<!-- <el-table-column prop="num" label="ID" show-overflow-tooltip/>-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="name"
|
prop="caseName"
|
||||||
:label="$t('commons.name')"
|
:label="$t('commons.name')"
|
||||||
show-overflow-tooltip>
|
show-overflow-tooltip>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -190,12 +190,11 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
handleDelete(loadCase) {
|
handleDelete(loadCase) {
|
||||||
console.log(loadCase)
|
this.$get('/test/plan/load/case/delete/' + loadCase.id, () => {
|
||||||
// this.$get('/test/plan/load/case/delete/' + loadCase.id, () => {
|
this.$success(this.$t('test_track.cancel_relevance_success'));
|
||||||
// this.$success(this.$t('test_track.cancel_relevance_success'));
|
this.$emit('refresh');
|
||||||
// this.$emit('refresh');
|
this.initTable();
|
||||||
// this.initTable();
|
});
|
||||||
// });
|
|
||||||
},
|
},
|
||||||
sort(column) {
|
sort(column) {
|
||||||
// 每次只对一个字段排序
|
// 每次只对一个字段排序
|
||||||
|
|
Loading…
Reference in New Issue