diff --git a/README.md b/README.md
index b187c2dcdd..245a2a28ca 100755
--- a/README.md
+++ b/README.md
@@ -189,9 +189,9 @@ v1.1.0 是 v1.0.0 之后的功能版本。
## 致谢
-- [BlazeMeter](https://www.blazemeter.com/):感谢 BlazeMeter 提供的设计思路
-- [JMeter](https://jmeter.apache.org/):MeterSphere 使用了 JMeter 作为测试引擎
-- [Element](https://element.eleme.cn/#/):感谢 Element 提供的优秀组件库
+- [BlazeMeter](https://www.blazemeter.com/):感谢 BlazeMeter 提供的设计思路
+- [JMeter](https://jmeter.apache.org/):MeterSphere 使用了 JMeter 作为测试引擎
+- [Element](https://element.eleme.cn/#/):感谢 Element 提供的优秀组件库
## 加入 MeterSphere 团队
diff --git a/backend/src/main/java/io/metersphere/track/domain/ReportResultComponent.java b/backend/src/main/java/io/metersphere/track/domain/ReportResultComponent.java
index 5f24e1a3b7..28c69361a3 100644
--- a/backend/src/main/java/io/metersphere/track/domain/ReportResultComponent.java
+++ b/backend/src/main/java/io/metersphere/track/domain/ReportResultComponent.java
@@ -86,12 +86,32 @@ public class ReportResultComponent extends ReportComponent {
moduleResult.setCaseCount(0);
moduleResult.setPassCount(0);
moduleResult.setIssuesCount(0);
+ moduleResult.setFailureCount(0);
+ moduleResult.setBlockingCount(0);
+ moduleResult.setPrepareCount(0);
+ moduleResult.setSkipCount(0);
+ moduleResult.setUnderwayCount(0);
moduleResult.setModuleId(rootNodeId);
}
moduleResult.setCaseCount(moduleResult.getCaseCount() + 1);
if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Pass.name())) {
moduleResult.setPassCount(moduleResult.getPassCount() + 1);
}
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Prepare.name())) {
+ moduleResult.setPrepareCount(moduleResult.getPrepareCount() + 1);
+ }
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Underway.name())) {
+ moduleResult.setUnderwayCount(moduleResult.getUnderwayCount() + 1);
+ }
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Failure.name())) {
+ moduleResult.setFailureCount(moduleResult.getFailureCount() + 1);
+ }
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Skip.name())) {
+ moduleResult.setSkipCount(moduleResult.getSkipCount() + 1);
+ }
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Blocking.name())) {
+ moduleResult.setBlockingCount(moduleResult.getBlockingCount() + 1);
+ }
if (StringUtils.isNotBlank(testCase.getIssues())) {
if (JSON.parseObject(testCase.getIssues()).getBoolean("hasIssues")) {
moduleResult.setIssuesCount(moduleResult.getIssuesCount() + 1);
diff --git a/backend/src/main/java/io/metersphere/track/dto/TestCaseReportModuleResultDTO.java b/backend/src/main/java/io/metersphere/track/dto/TestCaseReportModuleResultDTO.java
index 59b82f0c50..00e05f9486 100644
--- a/backend/src/main/java/io/metersphere/track/dto/TestCaseReportModuleResultDTO.java
+++ b/backend/src/main/java/io/metersphere/track/dto/TestCaseReportModuleResultDTO.java
@@ -12,4 +12,9 @@ public class TestCaseReportModuleResultDTO {
private Integer passCount;
private Double passRate;
private Integer issuesCount;
+ private Integer prepareCount;
+ private Integer skipCount;
+ private Integer failureCount;
+ private Integer blockingCount;
+ private Integer underwayCount;
}
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/DefectListComponent.vue b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/DefectListComponent.vue
new file mode 100644
index 0000000000..d04a69d014
--- /dev/null
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/DefectListComponent.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TemplateComponent.vue b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TemplateComponent.vue
index 911bddafe9..20f1782041 100644
--- a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TemplateComponent.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TemplateComponent.vue
@@ -7,6 +7,7 @@
+
@@ -16,6 +17,7 @@
+
@@ -28,10 +30,11 @@
import TestResultChartComponent from "./TestResultChartComponent";
import RichTextComponent from "./RichTextComponent";
import FailureResultComponent from "./FailureResultComponent";
+ import DefectListComponent from "./DefectListComponent";
export default {
name: "TemplateComponent",
components: {
- FailureResultComponent,
+ FailureResultComponent,DefectListComponent,
RichTextComponent, TestResultChartComponent, TestResultComponent, BaseInfoComponent},
props: {
preview: {
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TestResultComponent.vue b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TestResultComponent.vue
index c65c738aa5..8bca789386 100644
--- a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TestResultComponent.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TestResultComponent.vue
@@ -18,6 +18,36 @@
:label="$t('test_track.plan_view.case_count')"
width="180">
+
+
+
+
+
+
+
+
+
+
+
+
@@ -50,19 +80,37 @@
moduleName: this.$t('test_track.module.module') + '1',
caseCount: '14',
passRate: 10.8,
- issuesCount: 3
+ issuesCount: 3,
+ passCount:0,
+ failureCount:0,
+ blockingCount:0,
+ skipCount:0,
+ underwayCount:0,
+ prepareCount:0
},
{
- moduleName: this.$t('test_track.module.module') + '2',
- caseCount: '24',
- passRate: 40,
- issuesCount: 6
+ moduleName: this.$t('test_track.module.module') + '1',
+ caseCount: '14',
+ passRate: 10.8,
+ issuesCount: 3,
+ passCount:0,
+ failureCount:0,
+ blockingCount:0,
+ skipCount:0,
+ underwayCount:0,
+ prepareCount:0
},
{
- moduleName: this.$t('test_track.module.module') + '3',
- caseCount: '50',
- passRate: 76.9,
- issuesCount: 8
+ moduleName: this.$t('test_track.module.module') + '1',
+ caseCount: '14',
+ passRate: 10.8,
+ issuesCount: 3,
+ passCount:0,
+ failureCount:0,
+ blockingCount:0,
+ skipCount:0,
+ underwayCount:0,
+ prepareCount:0
}
]
}
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportTemplateEdit.vue b/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportTemplateEdit.vue
index 87a24f035b..d5a022954b 100644
--- a/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportTemplateEdit.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportTemplateEdit.vue
@@ -77,10 +77,11 @@
[2, { name: this.$t('test_track.plan_view.test_result'), id: 2 , type: 'system'}],
[3, { name: this.$t('test_track.plan_view.result_distribution'), id: 3 ,type: 'system'}],
[4, { name: this.$t('test_track.plan_view.failure_case'), id: 4 ,type: 'system'}],
- [5, { name: this.$t('test_track.plan_view.custom_component'), id: 5 ,type: 'custom'}]
+ [5, { name: this.$t('test_track.plan_view.defect_list'), id: 5 ,type: 'system'}],
+ [6, { name: this.$t('test_track.plan_view.custom_component'), id:6,type: 'custom'}]
]
),
- components: [5],
+ components: [6],
previews: [],
template: {},
isReport: false
@@ -109,12 +110,12 @@
this.template = {
name: '',
content: {
- components: [1,2,3,4,5],
+ components: [1,2,3,4,5,6],
customComponent: new Map()
}
};
this.previews = [];
- this.components = [5];
+ this.components = [6];
if (id) {
this.type = 'edit';
this.getTemplateById(id);
@@ -144,6 +145,7 @@
}
}
});
+
},
handleClose() {
window.removeEventListener('popstate', this.goBack, false);
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportView.vue b/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportView.vue
index a9f7514615..47e43d6537 100644
--- a/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportView.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportView.vue
@@ -69,7 +69,8 @@
[2, { name: this.$t('test_track.plan_view.test_result'), id: 2 , type: 'system'}],
[3, { name: this.$t('test_track.plan_view.result_distribution'), id: 3 ,type: 'system'}],
[4, { name: this.$t('test_track.plan_view.failure_case'), id: 4 ,type: 'system'}],
- [5, { name: this.$t('test_track.plan_view.custom_component'), id: 5 ,type: 'custom'}]
+ [5, { name: this.$t('test_track.plan_view.defect_list'), id: 5 ,type: 'system'}],
+ [6, { name: this.$t('test_track.plan_view.custom_component'), id: 6 ,type: 'custom'}]
]
),
isTestManagerOrTestUser: false
@@ -175,6 +176,9 @@
if (!this.metric.moduleExecuteResult) {
this.metric.moduleExecuteResult = [];
}
+ /*缺陷列表*/
+ this.metric.defectList = [];
+
if (this.report.startTime) {
this.metric.startTime = new Date(this.report.startTime);
}
diff --git a/frontend/src/i18n/en-US.js b/frontend/src/i18n/en-US.js
index eac216b9dd..cc729162d0 100644
--- a/frontend/src/i18n/en-US.js
+++ b/frontend/src/i18n/en-US.js
@@ -610,6 +610,11 @@ export default {
delete_confirm: "Confirm delete module:",
delete_all_resource: "and all submodules and test cases under the module",
module: "Module",
+ title: "Title",
+ describe: "Describe",
+ status: "Status",
+ current_owner: "Current Owner",
+ creation_time: "Creation time"
},
home: {
recent_test: "Recent test",
@@ -649,6 +654,7 @@ export default {
result_distribution: "Result distribution",
custom_component: "Custom",
create_report: "Create report",
+ defect_list:"Defect list",
view_report: "View report",
component_library: "Component library",
component_library_tip: "Drag and drop the component from the component library, add to the right, preview the report effect, only one can be added per system component.",
diff --git a/frontend/src/i18n/zh-CN.js b/frontend/src/i18n/zh-CN.js
index 8834497980..a6b945d397 100644
--- a/frontend/src/i18n/zh-CN.js
+++ b/frontend/src/i18n/zh-CN.js
@@ -615,6 +615,11 @@ export default {
delete_confirm: "确认删除模块: ",
delete_all_resource: "以及模块下所有子模块和测试用例",
module: "模块",
+ title: "标题",
+ status: "状态",
+ describe: "描述",
+ current_owner: "处理人",
+ creation_time: "创建时间"
},
home: {
recent_test: "最近测试",
@@ -653,6 +658,7 @@ export default {
test_result: "测试结果",
result_distribution: "测试结果分布",
custom_component: "自定义模块",
+ defect_list:"缺陷列表",
create_report: "创建测试报告",
view_report: "查看测试报告",
component_library: "组件库",
diff --git a/frontend/src/i18n/zh-TW.js b/frontend/src/i18n/zh-TW.js
index 4b25792273..733f94a58d 100644
--- a/frontend/src/i18n/zh-TW.js
+++ b/frontend/src/i18n/zh-TW.js
@@ -610,6 +610,11 @@ export default {
delete_confirm: "確認刪除模塊: ",
delete_all_resource: "以及模塊下所有子模塊和測試用例",
module: "模塊",
+ title: "標題",
+ status: "狀態",
+ describe: "描述",
+ current_owner: "處理人",
+ creation_time: "創建時間"
},
home: {
recent_test: "最近測試",
@@ -649,6 +654,7 @@ export default {
result_distribution: "測試結果分布",
custom_component: "自定義模塊",
create_report: "創建測試報告",
+ defect_list:"缺陷清單",
view_report: "查看測試報告",
component_library: "組件庫",
component_library_tip: "拖拽組件庫中組件,添加至右側,預覽報告效果,每個系統組件只能添加壹個。",