三十二、【核心功能改造】數據驅動:重構儀表盤與關鍵指標可視化

三十二、【核心功能改造】數據驅動:重構儀表盤與關鍵指標可視化

    • 前言
      • 準備工作
      • 第一部分:后端實現 - 統計 API
        • 1. 創建 `DashboardStatsView`
        • 2. 注冊統計 API 路由
        • 3. 后端初步測試
      • 第二部分:前端實現 - 重構儀表盤頁面
        • 1. 創建 `api/dashboard.ts` API 服務
        • 2. 重構 `HomeView.vue` (儀表盤頁面)
      • 第三部分:全面測試與驗證
    • 總結

前言

儀表盤是用戶進入系統后最先看到的頁面,它應該能直觀地展示系統的核心狀態和關鍵指標。一個設計良好的儀表盤能幫助團隊快速把握項目進度、測試覆蓋情況和質量趨勢。

在這里插入圖片描述

本文目標:

重構儀表盤頁面,展示以下關鍵信息:

  • 概覽卡片: 項目總數、功能用例總數、接口用例總數。
  • 圖表統計:
    • 用例類型分布: 通過餅圖展示功能用例和接口用例的占比。
    • 按項目統計接口用例數: 通過柱狀圖展示每個項目的接口用例數量。
    • 按用戶統計用例創建數: 通過柱狀圖展示不同用戶創建的測試用例數量,了解團隊成員的貢獻度。

準備工作

  1. 前端項目就緒: test-platform/frontend 項目可以正常運行 (npm run dev)。
  2. 后端 API 運行中: Django 后端服務運行。
  3. Element Plus 集成完畢。
  4. vue-echarts 圖表庫已安裝: 在前端項目根目錄運行 npm install echarts vue-echarts --save
  5. 擁有一些測試數據: 創建多個項目、不同類型的測試用例(功能/接口),并由不同用戶創建,以便統計圖表能展示出多樣化的數據。

第一部分:后端實現 - 統計 API

新建一個 API 來提供儀表盤所需的所有統計數據,以避免前端多次請求。

1. 創建 DashboardStatsView

打開 test-platform/api/views.py,添加一個新的 APIView
在這里插入圖片描述
在這里插入圖片描述

# test-platform/api/views.py
from django.db.models import Count # 導入 Count
from rest_framework import viewsets, filters, generics, permissions, filters, pagination, status as http_status# ... (其他 ViewSet) ...class DashboardStatsView(APIView):"""提供儀表盤所需的統計數據GET /api/dashboard/stats/"""permission_classes = [permissions.IsAuthenticated] # 只有登錄用戶才能查看def get(self, request, *args, **kwargs):# 1. 概覽統計project_count = Project.objects.count()# 2. 按用例類型統計case_type_stats = TestCase.objects.values('case_type').annotate(count=Count('id'))# 3. 按項目統計接口用例數 (只統計接口用例)project_case_stats = TestCase.objects.filter(case_type='api') \.values('module__project__name') \.annotate(count=Count('id')) \.order_by('-count')# 4. 按用戶創建用例統計 (按 maintainer 字段)# 注意: maintainer 是 CharField,如果想按 User 對象統計,TestCase 模型需添加 creator 字段user_case_stats = TestCase.objects.exclude(maintainer__isnull=True).exclude(maintainer__exact='') \.values('maintainer') \.annotate(count=Count('id')) \.order_by('-count'

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914678.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914678.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914678.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

神經網絡與深度學習Python入門

一、神經網絡基礎 1. 神經元模型 在神經網絡中,最基本的單元是神經元(Neuron),也稱為節點或單元。它模擬了生物神經系統中的神經元行為。一個典型的神經元模型包含多個輸入(x1,x2,…,xnx_1, x_2, \ldots, x_nx1?,x2?…

Android System WebView:Android生態的核心組件

在Android生態系統中,Android System WebView(簡稱WebView)扮演著至關重要的角色。它是Chrome瀏覽器的內核,為Android設備提供了強大的網頁瀏覽和Web內容展示功能。無論是日常瀏覽網頁、使用基于Web的應用程序,還是進行…

Element Plus和Ant Design Vue深度對比分析與選型指南

在 Vue3生態中,Element Plus和Ant Design Vue(以下簡稱 AntD Vue)是兩款最主流的 UI 組件庫。它們分別脫胎于 Element UI(Vue 2 版本)和 Ant Design(React 生態),經過多年迭代已成為…

AJAX 開發中的注意點

關鍵詞:AJAX、異步請求、前端開發、跨域、錯誤處理、安全、性能優化 ? 引言 在現代 Web 應用中,AJAX 是實現前后端數據交互的重要手段。然而,在實際開發過程中,如果不注意一些常見問題,可能會導致應用出現安全性漏洞…

類之間的縱向關系——繼承

繼承定義:被繼承的類叫做基類(父類),繼承的類叫派生類(子類),在派生類類名后面加: 繼承方式 基類class CFather{}; class CSon:public CFather{};父類(基類)與子類(派生類)之間的關系…

bytetrack漏檢補齊

bytetrack漏檢補齊1.人流慢速運動,跟蹤效果比較好,偶爾有漏檢,跟蹤可以自動補齊。2.快速運動,頻繁遮擋,效果可能不好*如果漏檢,倒著跟蹤,把丟失的檢測框拷貝出來,保留進行跟蹤。有時…

安裝Keycloak并啟動服務(macOS)

前提:電腦已經安裝Java 17 1、下載Keycloak 2、下載完后解壓縮,使用文本編輯器修改配置文件(keycloak/conf/keycloak.conf) # Basic settings for running in production. Change accordingly before deploying the server. # …

汽車動力轉向器落錘沖擊試驗臺

落錘沖擊試驗臺主要用于扣件減振量的測試,采用電動錨鏈提錘結構,控制精度高,定位準確。采用伺服電機減速機驅動,避免提錘加速和到位減速時的沖擊,具有多重安全保護功能,防止二次沖擊裝置。主機框架采用上下…

Linux系統集群部署模塊之Keepalived雙機熱備

目錄 概述 一、keepalived安裝 二、配置文件 三、 其他配置項說明 四、名詞解釋 五、高階使用 1、介紹 2、keepalived主要作用 3、工作在三層、四層和七層原理 4、健康狀態檢測方式 4.1 HTTP服務狀態檢測 4.2 TCP端口狀態檢測(使用TCP端口服務基本上都可…

TDengine 使用最佳實踐(1)

目錄 數據建模 單列模型 多列模型 分庫分表 邊界限制 資源規劃 CPU 主頻 CPU 核數 內存分類 內存計算 CPU 內存比例 磁盤 網絡 下一篇 TDengine 使用最佳實踐(1) 關于 TDengine TDengine 是一款專為物聯網、工業互聯網等場景設計并優化的大數據平臺&am…

Java行為型模式---責任鏈模式

責任鏈模式基礎概念責任鏈模式(Chain of Responsibility Pattern)是一種行為型設計模式,其核心思想是將請求的發送者和接收者解耦,使多個對象都有機會處理請求。這些對象連接成一條鏈,請求沿著鏈傳遞,直到有…

嵌入式學習筆記- 結構體名字被賦值時是整體內容賦值

結構體變量名被賦值時,?不是賦值的地址,而是執行對整個結構體內容的復制(值拷貝)?直接賦值是成員級復制? 當使用 s2 s1; 形式的賦值時(其中 s1 和 s2 是同類型結構體變量),系統會?逐成員復…

基于UDP/IP網絡游戲加速高級擁塞控制算法(示意:一)

/* ███████╗ 基于UDP/IP網絡游戲加速高級擁塞控制算法&#xff08;示意&#xff1a;一&#xff09; ███████╗ */#pragma once#include <iostream> #include <vector> #include <deque> #include <cmath> #include <algorithm> …

【YOLOv11-目標檢測】06-模型部署(C++)

上一節課,我們學習了模型的預測。那么,如何用C++部署呢? 克隆項目 進入cmd,進入自己的項目文件夾,然后git clone項目: git clone https://github.com/Geekgineer/YOLOs-CPP 進入到YOLOs-CPP文件夾: 配置環境 ONNX Runtime 后續構建項目的時候,會自動下載,因此,我…

【第零章編輯器開發與拓展】

前言&#xff1a;對編輯器拓展與開發可以節省很多時間&#xff0c;提高開發效率&#xff0c;比如技能編輯器&#xff0c;關卡編輯器這種。當然這只是編輯器開發的一些典型應用&#xff0c;它能做不止這些。學習完這個之后&#xff0c;我們可以開發項目需要的工具。我本意在編輯…

使用 mongoimport 導入本地 JSON 文件到 MongoDB 及數據查看指南

在項目中&#xff0c;我們經常需要將本地 JSON 文件批量導入 MongoDB 數據庫。本文以 Ubuntu 22.04 環境為例&#xff0c;詳細記錄了如何安裝 mongoimport 工具、正確導入多個 JSON 文件&#xff0c;以及查看導入后的數據。一、環境介紹操作系統&#xff1a;Ubuntu 22.04.5 LTS…

新手向:Python數據處理Excel報表自動化生成與分析

Python實現Excel報表自動化系統全流程指南本文將詳細介紹如何使用Python實現一個完整的Excel報表自動化系統&#xff0c;涵蓋從數據清洗、分析到可視化報表生成的全流程。本教程面向Python初學者&#xff0c;通過實際案例講解pandas和openpyxl庫的核心用法。系統概述Excel報表自…

【第六節】docker可視化工具portainer安裝

該文章參考了這篇文章https://zhuanlan.zhihu.com/p/27740131259portainer是一個基于網頁的docker可視化管理工具&#xff0c;試想一下我們怎么登錄路由器管理界面的&#xff0c;異曲同工。那么就需要在服務器的docker內安裝portainer&#xff0c;然后在我們的開發機或者說工作…

使用 Certbot 申請和自動續簽 Let’s Encrypt 的免費 SSL 證書

一. Let’s Encrypt 介紹 Let’s Encrypt 是當前最常用的免費 HTTPS 證書生成工具之一。該服務由非營利組織提供&#xff0c;致力于為全球范圍內的網站提供便捷的自動化證書頒發服務。雖然 Let’s Encrypt 證書的有效期只有90天&#xff0c;但是可以自動續期&#xff0c;這使得…

【kubernetes】--controller(DaemonSet)

Kubernetes DaemonSet 控制器詳解 它確保集群中所有(或部分)節點上都運行一個 Pod 的副本。當有新節點加入集群時&#xff0c;DaemonSet 會自動在新節點上創建 Pod&#xff1b;當節點從集群中移除時&#xff0c;這些 Pod 也會被垃圾回收。 DaemonSet 的核心特性 每個節點一個 P…