二十七、【測試執行篇】測試計劃:前端一鍵觸發測試 實時狀態追蹤

二十七、【測試執行篇】測試計劃:前端一鍵觸發測試 & 實時狀態追蹤

    • 前言
      • 準備工作
      • 第一部分:后端 API 確認
      • 第二部分:前端實現 - 觸發執行與狀態輪詢
      • 第三部分:后端 API 增強
      • 第四部分:全面測試
    • 總結

前言

一個完整的自動化測試流程,從測試用例的創建到報告的生成,最終都需要一個用戶友好的觸發機制。在后端已經實現了測試執行器和異步任務隊列(Celery)的基礎上,前端的執行按鈕及其后續的狀態跟蹤至關重要。

我們將主要在測試計劃列表頁面 (TestPlanListView.vue) 進行修改,讓用戶可以直接在這里觸發測試計劃的執行。

準備工作

  1. 前端項目就緒: test-platform/frontend 項目可以正常運行 (npm run dev)。
  2. 后端 API 運行中: Django 后端服務運行,特別是以下 API 端點:
    • POST /api/testplans/{pk}/run/:觸發測試計劃執行(返回 test_run_idcelery_task_id)。
    • GET /api/testruns/{test_run_id}/:獲取指定 TestRun 的狀態和詳情。
  3. 測試計劃數據: 確保你已經創建了一些測試計劃和關聯的測試用例,以便進行測試。
  4. Axios 和 API 服務已封裝。
  5. Element Plus 集成完畢。

第一部分:后端 API 確認

我們需要確保后端提供足夠的 API 來支持前端的輪詢和狀態顯示。

  1. 確認 TestPlanViewSet 中的 run action 返回 test_run_id
    在《【測試執行】異步與并發》中,我們已經將 run_test_plan action 修改為返回 test_run_idcelery_task_id,這是前端進行輪詢的關鍵信息。請再次確認 api/views.py 中該方法的返回結構。

    # api/views.py - TestPlanViewSet 中的 run_test_plan 方法
    # ...return Response({"message": "測試計劃執行任務已成功提交到后臺處理。","test_run_id": str(test_run.id), # UUID 字符串"celery_task_id": task_result.id # Celery 任務自身的 ID}, status=http_status.HTTP_202_ACCEPTED)
    
  2. 確認 TestRunViewSet 支持按 ID 獲取詳情:
    在《【測試報告】結果可視化》中,我們已經創建了 TestRunViewSetTestRunSerializer,用于獲取測試報告列表和詳情。確認 /api/testruns/{id}/ 端點可以返回單個 TestRun 的完整信息,特別是其 status 字段。

    # api/views.py - TestRunViewSet
    class TestRunViewSet(viewsets.ReadOnlyModelViewSet):queryset = TestRun.objects.all().order_by('-create_time')serializer_class = TestRunSerializer # 包含 status 字段
    # ...
    

第二部分:前端實現 - 觸發執行與狀態輪詢

我們將主要修改 TestPlanListView.vue

  1. 更新 api/testplan.ts,添加觸發執行的 API 調用:
    在這里插入圖片描述

    // test-platform/frontend/src/api/testplan.ts
    // ... (其他導入和類型定義) ...
    import type { AxiosResponse } from 'axios'; // 導入 AxiosResponse// 定義觸發執行 API 的響應類型
    export interface RunTestPlanResponse {message: string;test_run_id: string; // 后端返回的 TestRun IDcelery_task_id: string; // 后端返回的 Celery 任務 ID
    }// 觸發執行測試計劃的 API
    export function runTestPlan(testPlanId

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

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

相關文章

60天python訓練營打卡day52

學習目標: 60天python訓練營打卡 學習內容: DAY 52 神經網絡調參指南 知識點回顧: 1.隨機種子 2.內參的初始化 3.神經網絡調參指南 a.參數的分類 b.調參的順序 c.各部分參數的調整心得 作業:對于day’41的簡單cnn,看…

【Modern C++ Part3】Understand-decltype

條款三:理解decltype decltype是一個怪異的發明。給定一個變量名或者表達式,decltype會告訴你這個變量名或表達式的類型。decltype的返回的類型往往也是你期望的。然而有時候,它提供的結果會使開發者極度抓狂而不得參考其他文獻或者在線的Q&…

前端批量請求場景

文章目錄 一、批量請求1、Promise.allSettled2、返回值穿透 二、案例1、 批量任務2、緩存優化3、另一種實現方式 一般時候前端都是簡單的查詢任務,復雜的數據獲取都是后臺處理好再返回,如果遇到接口流程化處理、數據組裝,可以參考一下。 一、…

芊芊妙音:智能變聲,玩轉聲音魔法

在當今豐富多彩的社交和娛樂環境中,聲音的魅力正逐漸被更多人發現和利用。無論是線上社交、短視頻創作還是直播互動,一個獨特而有趣的聲音總能讓人眼前一亮,甚至成為個人風格的一部分。《芊芊妙音》正是這樣一款能夠幫助用戶輕松實現聲音變換…

安防監控視頻匯聚平臺EasyCVR v3.7.2版云端錄像無法在web端播放的原因排查和解決方法

有用戶反饋,在使用EasyCVR視頻匯聚平臺時,發現云端錄像無法在Web頁面正常播放。為幫助大家高效解決類似困擾,本文將詳細剖析排查思路與解決方案。 用戶軟件版本信息: 問題排查與解決步驟: 1)問題復現驗證…

vxe-upload vue 實現附件上傳、手動批量上傳附件的方式

vxe-upload vue 實現附件上傳、手動批量上傳附件的方式 查看官網:https://vxeui.com 安裝 npm install vxe-pc-ui4.6.47// ... import VxeUIAll from vxe-pc-ui import vxe-pc-ui/lib/style.css // ...createApp(App).use(VxeUIAll).mount(#app) // ...上傳附件支…

leaflet【十一】地圖瓦片路徑可視化

前言 在開發調試過程當中,如果引入的是公司內部的Gis地圖信息或者一些第三方定制來的Gis地圖數據,當某一些地圖塊數據缺失的時候,要打開F12去一個個找那些鏈接(去找對應的xy與layer)失效、那么你可能需要使用以下插件…

ES6從入門到精通:模塊化

ES6 模塊化基礎概念ES6 模塊化是 JavaScript 官方標準,通過 import 和 export 語法實現代碼拆分與復用。模塊化特點包括:每個文件是一個獨立模塊,作用域隔離。支持靜態分析,依賴關系在編譯時確定。輸出的是值的引用(動…

stm32 USART串口協議與外設——江協教程踩坑經驗分享

江協stm32學習:9-1~9-3 USART串口協議與外設 一、串口通信基礎知識 1、通信類型: 全雙工通信:通信雙方能夠同時進行雙向通信。一般有兩根通信線,如USART中的TX(發送)和RX(接收)線&am…

深度學習中的一些名詞

向前傳播 forward pass 在機器學習中,輸入的feature, 通過預測模型,輸出預測值,此過程稱之為向前傳播; 向后傳播 backward pass 為了將預測與真實值的產值減小,需要根據差值,更新模型中的參數,此…

鴻蒙系統(HarmonyOS)應用開發之手勢鎖屏密碼鎖(PatternLock)

項目概述 基于鴻蒙(OpenHarmony)平臺開發的手勢密碼鎖應用,旨在為用戶提供安全、便捷且具有良好交互體驗的身份驗證方式。通過手勢圖案輸入,用戶可以輕松設置和驗證密碼,提升設備的安全性和個性化體驗。 功能特點 手…

vue文本插值

好的,我們來詳細講解 Vue 中最基礎的數據展示方式:文本插值和在其內部使用的 JavaScript 表達式。 1. 文本插值 (Text Interpolation) 知識點: 文本插值是 Vue 中最基本的數據綁定形式。它使用“Mustache”語法(雙大括號 {{ }})…

Python:線性代數,向量內積諧音記憶。

目錄1 先說結論2 解釋3 歡迎糾錯4 論文寫作/Python 學習智能體------以下關于 Markdown 編輯器新的改變功能快捷鍵合理的創建標題,有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容居中、居左、…

小程序導航設置更多內容的實現方法

在小程序中實現導航欄設置更多內容,可以通過以下幾種方式實現: 1. 使用原生導航欄自定義按鈕 javascript // app.json 或頁面.json中配置 {"navigationBarTitleText": "首頁","navigationBarTextStyle": "black&q…

SpringBoot 解決配置文件有黃色波浪線

在application.properties配置文件中有黃色波浪線,是警告!! 原因:編碼格式不一致!! 解決:Settings| Editor | File Encodings | 選擇UTF-8

在 Vue 3 中全局使用 Suspense 組件

Suspense 是 Vue 3 引入的一個內置組件,不需要引用可以直接用。用于處理異步依賴的等待狀態。雖然 Suspense 主要用于異步組件,但你也可以全局地使用它來管理整個應用的加載狀態。 全局 Suspense 的基本用法 1. 在根組件中使用 Suspense // main.js 或…

筆記/計算機網絡

Content 計算機網絡部分核心概念十大網絡協議一覽 計算機網絡部分核心概念 1. 什么是計算機網絡?它最基本的功能是什么? 計算機網絡是指通過某種傳輸介質將多臺獨立的計算機或設備連接起來,實現數據交換和資源共享的系統。其最基本的功能是數…

時頻圖數據集更正程序,去除坐標軸白邊及調整對應的標簽值

當數據集是時頻圖時可能有一個尷尬的問題,就是數據集制作好后,發現有白邊。 其實這也不影響訓練模型,可能對模型訓練效果的影響也是微乎其微的,于是大多數情況我會選擇直接用整張圖片訓練模型。但是,有的情況下&#x…

mv重命名報錯:bash:未預期的符號 ‘(‘附近有語法錯誤

文章目錄 一、報錯背景二、解決方法2.1、方法一:文件名加引號2.2、方法二:特殊字符前加\進行轉義 一、報錯背景 在linux上對一文件執行重命名時報錯。原因是該文件名包含空格與括號。 文件名如下: aa (1).txt執行命令及報錯如下…

Unity-MMORPG內容筆記-其三

繼續之前的內容: 戰斗系統 無需多言,整個項目中最復雜的部分,也是代碼量最大的部分。 屬性系統 首先我們要定義一系列屬性,畢竟所謂的戰斗就是不斷地扣血對吧。 屬性系統是戰斗系統的核心模塊,負責管理角色的所有…