@@ -173,23 +44,21 @@
-
-
diff --git a/frontend/src/views/api-test/report/locale/en-US.ts b/frontend/src/views/api-test/report/locale/en-US.ts
index 2e74383797..fd3ae41e66 100644
--- a/frontend/src/views/api-test/report/locale/en-US.ts
+++ b/frontend/src/views/api-test/report/locale/en-US.ts
@@ -28,8 +28,11 @@ export default {
'report.detail.api.stepAnalysis': 'step Analysis',
'report.detail.api.content': 'content',
'report.detail.api.assertStatus': 'status',
- 'report.detail.api.totalTime': 'total time',
+ 'report.detail.api.totalTime': 'Total report time',
'report.detail.api.requestTotalTime': 'req total time',
+ 'report.detail.api.totalTimeTip':
+ 'The total time spent executing testing tasks, including waiting and processing times during the task execution process',
+ 'report.detail.api.requestTotalTimeTip': 'The total response time of all requests',
'report.detail.api.assertPass': 'Assert pass',
'report.detail.api.executionRate': 'Req execution Rate',
'report.detail.api.requestAnalysis': 'Request analysis',
diff --git a/frontend/src/views/api-test/report/locale/zh-CN.ts b/frontend/src/views/api-test/report/locale/zh-CN.ts
index c4b28fa54d..4727ef3b07 100644
--- a/frontend/src/views/api-test/report/locale/zh-CN.ts
+++ b/frontend/src/views/api-test/report/locale/zh-CN.ts
@@ -27,8 +27,10 @@ export default {
'report.detail.api.stepAnalysis': '步骤分析',
'report.detail.api.content': '内容',
'report.detail.api.assertStatus': '状态',
- 'report.detail.api.totalTime': '总耗时',
+ 'report.detail.api.totalTime': '报告总耗时',
+ 'report.detail.api.totalTimeTip': '执行测试任务的总耗时,包含任务执行过程的等待时间和处理时间',
'report.detail.api.requestTotalTime': '请求总耗时',
+ 'report.detail.api.requestTotalTimeTip': '全部请求的响应时间总和',
'report.detail.api.assertPass': '断言通过率',
'report.detail.api.executionRate': '请求执行率',
'report.detail.api.requestAnalysis': '请求分析',
diff --git a/frontend/src/views/test-plan/report/detail/component/ReportMetricsItem.vue b/frontend/src/views/test-plan/report/detail/component/ReportMetricsItem.vue
new file mode 100644
index 0000000000..2eccdaedbe
--- /dev/null
+++ b/frontend/src/views/test-plan/report/detail/component/ReportMetricsItem.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
{{ props.itemInfo.name }}
+
+
+
+
+ {{ props.itemInfo.runMode }}
+
+
+
+ {{ props.itemInfo.value }}
+ ({{ props.itemInfo.unit }})
+
+
+
+
+
+
+
diff --git a/frontend/src/views/test-plan/report/detail/component/planDetail.vue b/frontend/src/views/test-plan/report/detail/component/planDetail.vue
index 162979d4c4..1afd76c875 100644
--- a/frontend/src/views/test-plan/report/detail/component/planDetail.vue
+++ b/frontend/src/views/test-plan/report/detail/component/planDetail.vue
@@ -14,48 +14,11 @@
{{ t('report.detail.api.requestAnalysis') }}
-
- -
-
-
- {{ t('report.detail.threshold') }}
-
-
- {{ detail.passThreshold }}
- (%)
-
-
- -
-
-
- {{ t('report.detail.reportPassRate') }}
-
-
- {{ detail.passRate }}
- (%)
-
-
- -
-
-
- {{ t('report.detail.performCompletion') }}
-
-
- {{ detail.executeRate }}
- (%)
-
-
- -
-
-
- {{ t('report.detail.totalDefects') }}
-
-
- {{ addCommasToNumber(detail.bugCount) }}
- ({{ t('report.detail.number') }})
-
-
-
+
{{ t('report.detail.executionAnalysis') }}
@@ -144,6 +107,7 @@
import MsRichText from '@/components/pure/ms-rich-text/MsRichText.vue';
import MsTab from '@/components/pure/ms-tab/index.vue';
import PlanDetailHeaderRight from './planDetailHeaderRight.vue';
+ import ReportMetricsItem from './ReportMetricsItem.vue';
import SetReportChart from '@/views/api-test/report/component/case/setReportChart.vue';
import SingleStatusProgress from '@/views/test-plan/report/component/singleStatusProgress.vue';
import BugTable from '@/views/test-plan/report/detail/component/bugTable.vue';
@@ -157,7 +121,7 @@
import { hasAnyPermission } from '@/utils/permission';
import type { LegendData } from '@/models/apiTest/report';
- import type { PlanReportDetail, StatusListType } from '@/models/testPlan/testPlanReport';
+ import type { PlanReportDetail, ReportMetricsItemModel, StatusListType } from '@/models/testPlan/testPlanReport';
import { getIndicators } from '@/views/api-test/report/utils';
@@ -361,6 +325,33 @@
showButton.value = false;
}
+ const reportAnalysisList = computed
(() => [
+ {
+ name: t('report.detail.threshold'),
+ value: detail.value.passThreshold,
+ unit: '%',
+ icon: 'threshold',
+ },
+ {
+ name: t('report.detail.reportPassRate'),
+ value: detail.value.passRate,
+ unit: '%',
+ icon: 'passRate',
+ },
+ {
+ name: t('report.detail.performCompletion'),
+ value: detail.value.executeRate,
+ unit: '%',
+ icon: 'passRate',
+ },
+ {
+ name: t('report.detail.totalDefects'),
+ value: addCommasToNumber(detail.value.bugCount),
+ unit: t('report.detail.number'),
+ icon: 'bugTotal',
+ },
+ ]);
+
const functionCasePassRate = computed(() => {
const { functionalCount } = detail.value;
const { success, error, pending, block } = functionalCount;
@@ -409,26 +400,6 @@
height: 250px;
box-shadow: 0 0 10px rgba(120 56 135/ 5%);
@apply flex-1 rounded-xl bg-white;
- .report-analysis {
- .report-analysis-item {
- padding: 4px 8px;
- border-radius: 4px;
- background-color: var(--color-text-n9);
- @apply mb-3 flex items-center justify-between;
- .report-analysis-item-icon {
- @apply flex items-center;
- }
- .report-analysis-item-number {
- font-size: 16px;
- @apply font-medium;
- }
- .report-analysis-item-unit {
- font-size: 12px;
- color: var(--color-text-4);
- @apply ml-1 font-medium;
- }
- }
- }
.charts {
top: 36%;
right: 0;