测试计划列表显示完善

This commit is contained in:
pfl
2025-04-27 19:14:55 +08:00
parent 354a65938a
commit b680339e6a
3 changed files with 239 additions and 6 deletions

View File

@@ -22,6 +22,36 @@ public class TestPlanListVO extends BaseEntity {
@Excel(name = "测试计划名称") @Excel(name = "测试计划名称")
private String name; private String name;
/** 0 冒烟测试 */
private String smokeTest;
/** 1 功能测试 */
private String functionTest;
/** 2 回归测试 */
private String regressionTest;
/** 3 准生产测试 */
private String preProductionTest;
/** 4 生产测试 */
private String productionTest;
/** 冒烟测试通过数 */
private String smokeTestPassNum;
/** 功能测试通过数 */
private String functionTestPassNum;
/** 回归测试通过数 */
private String regressionTestPassNum;
/** 准生产测试通过数 */
private String preProductionTestPassNum;
/** 生产测试通过数 */
private String productionTestPassNum;
/** 状态(0,未开始,1,进行中,2,已完成,3,已终止) */ /** 状态(0,未开始,1,进行中,2,已完成,3,已终止) */
@Excel(name = "状态(0,未开始,1,进行中,2,已完成,3,已终止)") @Excel(name = "状态(0,未开始,1,进行中,2,已完成,3,已终止)")
private String status; private String status;

View File

@@ -87,6 +87,81 @@
su.user_name AS manager, su.user_name AS manager,
tp.start_time AS startTime, tp.start_time AS startTime,
tp.end_time AS endTime, tp.end_time AS endTime,
(
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.execute_result = '1'
AND tpc.type = '0') /
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '0') * 100
) AS smokeTest,
(
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.execute_result = '1'
AND tpc.type = '1') /
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '1') * 100
) AS functionTest,
(
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.execute_result = '1'
AND tpc.type = '2') /
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '2') * 100
) AS regressionTest,
(
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.execute_result = '1'
AND tpc.type = '3') /
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '3') * 100
) AS preProductionTest,
(
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.execute_result = '1'
AND tpc.type = '4') /
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '4') * 100
) AS productionTest,
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '0') AS smokeTestPassNum,
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '1') AS functionTestPassNum,
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '2') AS regressionTestPassNum,
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '3') AS preProductionTestPassNum,
(SELECT COUNT(1) FROM test_plan_case tpc
WHERE tpc.plan_id = tp.id
AND tpc.del_flag = '0'
AND tpc.type = '4') AS productionTestPassNum,
tp.version, tp.version,
( (
SELECT COUNT(1) FROM test_plan_defect tpd SELECT COUNT(1) FROM test_plan_defect tpd

View File

@@ -93,34 +93,143 @@
<el-popover <el-popover
placement="top-start" placement="top-start"
trigger="hover" trigger="hover"
content="暂无关联用例"
> >
<el-progress slot="reference" :percentage="80" :show-text="false"></el-progress> <span v-if="scope.row.smokeTest === null">暂无关联用例</span>
<div v-else class="custom-content">
<el-row :gutter="10">
<el-col :span="8">
<el-row>
<span style="color: #67C23A;">
<i class="el-icon-success"></i> 通过
</span>
</el-row>
</el-col>
<el-col :span="6">
<span>{{ scope.row.smokeTestPassNum }}</span>
</el-col>
<el-col :span="10">
<span>{{ Number(scope.row.smokeTest).toFixed(0) + '%' }}</span>
</el-col>
</el-row>
</div>
<el-progress slot="reference" :percentage="Number(scope.row.smokeTest)" :show-text="false"></el-progress>
</el-popover> </el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10" class="label-progress"> <el-row :gutter="10" class="label-progress">
<el-col :span="10" class="label-text">功能测试</el-col> <el-col :span="10" class="label-text">功能测试</el-col>
<el-col :span="14"> <el-col :span="14">
<el-progress :percentage="scope.row.functionalTestProgress" :show-text="false"></el-progress> <el-popover
placement="top-start"
trigger="hover"
>
<span v-if="scope.row.smokeTest === null">暂无关联用例</span>
<div v-else class="custom-content">
<el-row :gutter="10">
<el-col :span="8">
<el-row>
<span style="color: #67C23A;">
<i class="el-icon-success"></i> 通过
</span>
</el-row>
</el-col>
<el-col :span="6">
<span>{{ scope.row.functionTestPassNum }}</span>
</el-col>
<el-col :span="10">
<span>{{ Number(scope.row.functionTest).toFixed(0) + '%' }}</span>
</el-col>
</el-row>
</div>
<el-progress slot="reference" :percentage="Number(scope.row.functionTest)" :show-text="false"></el-progress>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10" class="label-progress"> <el-row :gutter="10" class="label-progress">
<el-col :span="10" class="label-text">回归测试</el-col> <el-col :span="10" class="label-text">回归测试</el-col>
<el-col :span="14"> <el-col :span="14">
<el-progress :percentage="scope.row.regressionTestProgress" :show-text="false"></el-progress> <el-popover
placement="top-start"
trigger="hover"
>
<span v-if="scope.row.smokeTest === null">暂无关联用例</span>
<div v-else class="custom-content">
<el-row :gutter="10">
<el-col :span="8">
<el-row>
<span style="color: #67C23A;">
<i class="el-icon-success"></i> 通过
</span>
</el-row>
</el-col>
<el-col :span="6">
<span>{{ scope.row.regressionTestPassNum }}</span>
</el-col>
<el-col :span="10">
<span>{{ Number(scope.row.regressionTest).toFixed(0) + '%' }}</span>
</el-col>
</el-row>
</div>
<el-progress slot="reference" :percentage="Number(scope.row.regressionTest)" :show-text="false"></el-progress>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10" class="label-progress"> <el-row :gutter="10" class="label-progress">
<el-col :span="10" class="label-text">准生产验证</el-col> <el-col :span="10" class="label-text">准生产验证</el-col>
<el-col :span="14"> <el-col :span="14">
<el-progress :percentage="scope.row.preProductionValidationProgress" :show-text="false"></el-progress> <el-popover
placement="top-start"
trigger="hover"
>
<span v-if="scope.row.smokeTest === null">暂无关联用例</span>
<div v-else class="custom-content">
<el-row :gutter="10">
<el-col :span="8">
<el-row>
<span style="color: #67C23A;">
<i class="el-icon-success"></i> 通过
</span>
</el-row>
</el-col>
<el-col :span="6">
<span>{{ scope.row.preProductionTestPassNum }}</span>
</el-col>
<el-col :span="10">
<span>{{ Number(scope.row.preProductionTest).toFixed(0) + '%' }}</span>
</el-col>
</el-row>
</div>
<el-progress slot="reference" :percentage="Number(scope.row.preProductionTest)" :show-text="false"></el-progress>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10" class="label-progress"> <el-row :gutter="10" class="label-progress">
<el-col :span="10" class="label-text">生产验证</el-col> <el-col :span="10" class="label-text">生产验证</el-col>
<el-col :span="14"> <el-col :span="14">
<el-progress :percentage="scope.row.productionValidationProgress" :show-text="false"></el-progress> <el-popover
placement="top-start"
trigger="hover"
>
<span v-if="scope.row.smokeTest === null">暂无关联用例</span>
<div v-else class="custom-content">
<el-row :gutter="10">
<el-col :span="8">
<el-row>
<span style="color: #67C23A;">
<i class="el-icon-success"></i> 通过
</span>
</el-row>
</el-col>
<el-col :span="6">
<span>{{ scope.row.productionTestPassNum }}</span>
</el-col>
<el-col :span="10">
<span>{{ Number(scope.row.productionTest).toFixed(0) + '%' }}</span>
</el-col>
</el-row>
</div>
<el-progress slot="reference" :percentage="Number(scope.row.productionTest)" :show-text="false"></el-progress>
</el-popover>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
@@ -457,4 +566,23 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.custom-content {
width: 200px;
padding: 10px;
.el-row {
align-items: center;
}
.el-col {
display: flex;
align-items: center;
}
.el-icon-check {
color: #67C23A;
margin-right: 5px;
}
span {
font-size: 14px;
}
}
</style> </style>