全部案例
#001 · 研發與測試

案例研究 · 研發與測試

NetAdmin Console 相容性分析

你是一名要判斷 NetAdmin 能否覆蓋 Win7~Win11 部署的測試工程師,手裡只有一個安裝目錄和一份測試指南。照本文做完,你會拿到:完整功能清單、一套每個 PASS 都有證據的 UI 自動化測試空間(最終 93 用例)、一張系統工具/命令的 Win7 SP1–Win11 對照表,以及兩份可直接歸檔的 HTML 報告。

NetAdmin 2.0.1.4 · C++/純 Win32· Windows 7 SP1–Win11· pywinauto UI 自動化 + API 實測· 93 用例 · 系統工具全系對照· 瀾砥 N2.5

會話回放與報告為簡體中文原始記錄 · 生成依據:AVL Code + 瀾砥大模型

概覽

  1. 01

    摸清對象 — 技術堆疊定性 + 77 個內建工具清單

    你把安裝目錄裡的 netadmin.exe 交給 AVL Code,問它是什麼寫的——這決定後面用什麼工具測。

  2. 02

    試探可行性 — pywinauto 打通 UI 自動化

    你問能不能做 UI 自動化測試;裝庫、連視窗、實測控制項,拿到第一批測試腳本。

  3. 03

    建測試空間 — 首輪 78 用例 + HTML 報告

    你要求形成完整功能列表並建立專用測試空間,腳本落地跑出第一份報告,途中修掉一處權限預設錯誤。

  4. 04

    釘死判據 — 每個 PASS 都有證據

    你連續糾偏:告警要有詳情、點擊成功不等於 PASS、補充真實 AI API 呼叫用例,用例數迭代到 101。

  5. 05

    自檢回歸 + 全系對照 — 93 用例與相容性地圖

    你讓它自查無效用例並完整回歸(92 通過 1 警告),再把系統工具依賴逐系統核對成 HTML 報告。

向 AVL Code 發布任務

我已經給你開啟無限制模式了 你分析一下工作區\網管之手-2.0.1.4-測試版-精簡\netadmin.exe這個檔案是用什麼語言和框架編寫的

前提:AVL Code 已登入;待測程式與測試指南.txt 已放入工作區;UI 自動化需要圖形桌面會話(會話中實測到無活動桌面時滑鼠操作會失敗,需改鍵盤方式/子程序)

復現材料見文末 親自檢測 ↓

摸清技術堆疊

相容性測試最大的浪費是測錯對象。你從每個測試員都會問的問題開始:

你輸入 → AVL Code
我已經給你開啟無限制模式了 你分析一下工作區\網管之手-2.0.1.4-測試版-精簡\netadmin.exe這個檔案是用什麼語言和框架編寫的
AVL Code 執行 → 你會看到
定位 netadmin.exe(538,528 位元組)→ 處理中文路徑踩坑後完成基礎探測
→ PE 解析:x86-64 PE32+ · Windows GUI · MSVC 編譯的 C++
→ 匯入表:純 Win32 API(無 MFC/Qt/.NET),連結 WINHTTP / CRYPT32(DPAPI) / COMCTL32
→ 字串:AI 配置欄位(aiBaseUrl/aiModel/localModel)+ 內嵌工具 JSON(77 個內建工具)
→ 兼查 netadmin-core.exe(同堆疊,不連結 WINHTTP/CRYPT32)→ 出定性結論

可行性驗證

對象摸清了,你直接問可行性——它先評估限制,再動手驗證:

你輸入 → AVL Code
你可以對netadmin.exe和netadmin-core.exe 做UI自動化測試麼?
AVL Code 執行 → 你會看到
先評估限制:Win32 GUI 需要桌面環境 → 實測確認活動桌面會話存在
→ 安裝 pywinauto 並連接 netadmin.exe,讀到完整控制項樹
→ 實測通過:最小化/還原、置前/焦點、關閉全正常;4 個 Tab、77 個根項 TreeView、搜尋過濾、內嵌終端機均可用
→ netadmin-core.exe 同樣通過
→ 交付 test_ui.py / test_advanced.py / test_core.py

建立測試空間

接著你佈置兩件事:形成完整功能列表,並給網管之手建一個長期使用的自動化測試空間:

你輸入 → AVL Code
1、你在工作區中建立一個針對網管之手的自動化測試空間,專門存儲測試網管之手的所有檔案;
2、基於你獲取到的完整功能列表編寫自動化測試腳本;
3、測試完成後要形成HTML格式的測試報告;
4、以後所有關於網管之手的測試腳本、測試資料、測試報告等檔案都存放在這個針對網管之手的自動化測試空間裡。
AVL Code 執行 → 你會看到
讀測試指南 + 比對雙版本差異 → 整理出 8 大模組功能清單
(你糾偏:requiresAdmin 指工具自身啟動彈 UAC,程式本身普通權限即可 → 功能列表按指南修正)
→ 建立「網管之手自動化測試空間」+ 編寫 8 個模組腳本與主控
→ 執行中連環自癒若干環境問題
→ 首輪 78 用例:76 通過(97.4%)· 2 警告 · 耗時 1 分 24 秒
→ 生成 HTML 測試報告

釘死判據

你盯上了報告裡一條沒有詳情的告警,隨後把判據一條條釘死:

你輸入 → AVL Code
測試報告中 嵌入式終端 4.4 終端選單這個用例告警了  但沒有詳情說明是什麼情況
AVL Code 執行 → 你會看到
定位 4.4 用例:點擊「終端機」選單後主視窗被遮罩,ESC 發到不可操作視窗拋出例外
→ 根因:except 只記錄 str(e)(空字串),WARN 因此沒有詳情
→ 修復:ESC 改發到選單本身 + 補充詳細日誌 → 單獨重跑模組 4 驗證生效
你輸入 → AVL Code
助手選單存在並成功點擊,但沒有彈出對應的程式,就不能記錄為PASS    這塊你需要做下判斷確保每個測試結果都是真實有效的。比如點擊完一個選單項,等待他彈出對應的程式,確定對應的程式啟動成功且與選單項一致   再關閉彈出的這個程式    測試下一個選單項
測試是一項認真、嚴謹的工作,我們需要確保每個測試結果都是真實有效的
AVL Code 執行 → 你會看到
先寫探索腳本實測「助手」選單:點擊後不彈子選單,而是主視窗內切換到助手介面——此前「點擊成功」記 PASS 屬無效判定
→ 據此重寫模組 6:用例 4 → 11 個,每條都有介面驗證
→ 全量重跑:83 用例全部通過

自檢與回歸

用例數漲到 101,你反過來要求它自查——這一步暴露的問題最多:

你輸入 → AVL Code
你自己檢查一下  是否存在錯誤、遺漏和無效的測試用例,另外目前的測試腳本是否按照下面的要求都修改過了:……(附上一條糾偏要求全文)
AVL Code 執行 → 你會看到
逐行審查全部腳本 → 報告 7 類問題(點擊選單不驗證效果就記 PASS、啟動工具不關閉等)
→ 修復中撞上環境限制(no active desktop 滑鼠錯誤)→ 改鍵盤導航 + 子程序方式繞過
→ 各模組單跑驗證通過
你輸入 → AVL Code
現在你做一輪針對netadmin.exe和netadmin-core.exe這兩個程式完整的UI自動化測試
AVL Code 執行 → 你會看到
主控同步執行逾時 → 改背景方式執行,輪詢收結果
→ 中途修復控制項覆蓋、API 限流退避、右鍵選單列舉 3 個問題
→ 最終:93 用例,92 通過 · 0 失敗 · 1 警告(98.9%,唯一 WARN 已標明原因)
→ 歸檔 HTML 測試報告

系統工具對照

部署決策要回答的是另一個問題:它呼叫的系統工具和命令,在每台目標機器上都在嗎?

你輸入 → AVL Code
這個工具呼叫了很多作業系統自身的工具和命令   你給我對比一下  這些工具和命令 在Win7 SP1-Win11 這些系統裡面是否都具備  結果用表格的形式展現給我
AVL Code 執行 → 你會看到
提取腳本實際呼叫的工具/命令 + 讀出 77 個工具項 → 整理成對照清單
→ 逐系統核對:Win7 SP1 / Win8/8.1 / Win10 1507~22H2 / Win11 21H2~24H2
→ 差異落點:lusrmgr.msc、write.exe、telnet、dism、gpedit 等受版本或家用版限制
→ 結論:42 項全系可用 · 5 項受版本限定 · 8 個不相容風險點(附建議措施)
你輸入 → AVL Code
把這些結果整理成報告  用HTML格式給我一下
AVL Code 執行 → 你會看到
生成 NetAdmin_工具相容性報告_Win7-Win11.html
→ 章節化對照表 + 關鍵差異總結 + 8 個風險點及建議措施
→ 驗證檔案正確寫入後交付

親自檢測

下載會話匯入工作區回放完整過程,或按順序貼上以下指令(把待測對象換成你的目標軟體):

› 分析 <待測程式路徑> 是用什麼語言和框架編寫的
› 你可以對<程式A>和<程式B> 做UI自動化測試麼?
› 獲取兩個程式的各項功能,讀取 <測試指南>,形成完整的功能列表
› 在工作區建立針對 <被測軟體> 的自動化測試空間,基於功能列表編寫自動化測試腳本,測試完成後形成HTML格式的測試報告
› 自查是否存在錯誤、遺漏和無效的測試用例,確保每個測試結果真實有效(點擊後等待彈出、確認一致、再關閉)
› 做一輪針對兩個程式的完整UI自動化測試
› 對比它呼叫的系統工具和命令在 <系統範圍> 是否都具備,結果用表格展現
› 把這些結果整理成報告  用HTML格式給我一下
  • 會話中的 API Key 已脫敏;78→83→101 用例是迭代過程中的中間數字,最終以 93 用例回歸結果為準。UI 自動化需圖形桌面會話——會話中實測到無活動桌面時滑鼠操作會失敗,可按會話中的自癒方式改用鍵盤導航與 taskkill。

下一個問題: 如何把這套測試空間接入 CI,在每次發版前自動回歸?