案例研究 · 研发与测试
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
概览
- 01
摸清对象 — 技术栈定性 + 77 个内置工具清单
你把安装目录里的 netadmin.exe 交给 AVL Code,问它是什么写的——这决定后面用什么工具测。
- 02
试探可行性 — pywinauto 打通 UI 自动化
你问能不能做 UI 自动化测试;装库、连窗口、实测控件,拿到第一批测试脚本。
- 03
建测试空间 — 首轮 78 用例 + HTML 报告
你要求形成完整功能列表并建立专用测试空间,脚本落地跑出第一份报告,途中修掉一处权限预设错误。
- 04
钉死判据 — 每个 PASS 都有证据
你连续纠偏:告警要有详情、点击成功不等于 PASS、补充真实 AI API 调用用例,用例数迭代到 101。
- 05
自检回归 + 全系对照 — 93 用例与兼容性地图
你让它自查无效用例并完整回归(92 通过 1 警告),再把系统工具依赖逐系统核对成 HTML 报告。
向 AVL Code 发布任务
我已经给你开启无限制模式了 你分析一下工作区\网管之手-2.0.1.4-测试版-精简\netadmin.exe这个文件是用什么语言和框架编写的 前提:AVL Code 已登录;待测程序与测试指南.txt 已放入工作区;UI 自动化需要图形桌面会话(会话中实测到无活动桌面时鼠标操作会失败,需改键盘方式/子进程)
复现材料见文末 亲自检测 ↓
摸清技术栈
兼容性测试最大的浪费是测错对象。你从每个测试员都会问的问题开始:
我已经给你开启无限制模式了 你分析一下工作区\网管之手-2.0.1.4-测试版-精简\netadmin.exe这个文件是用什么语言和框架编写的定位 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)→ 出定性结论可行性验证
对象摸清了,你直接问可行性——它先评估限制,再动手验证:
你可以对netadmin.exe和netadmin-core.exe 做UI自动化测试么?先评估限制:Win32 GUI 需要桌面环境 → 实测确认活动桌面会话存在
→ 安装 pywinauto 并连接 netadmin.exe,读到完整控件树
→ 实测通过:最小化/还原、置前/焦点、关闭全正常;4 个 Tab、77 个根项 TreeView、搜索过滤、内嵌终端均可用
→ netadmin-core.exe 同样通过
→ 交付 test_ui.py / test_advanced.py / test_core.py建立测试空间
接着你布置两件事:形成完整功能列表,并给网管之手建一个长期使用的自动化测试空间:
1、你在工作区中创建一个针对网管之手的自动化测试空间,专门存储测试网管之手的所有文件;
2、基于你获取到的完整功能列表编写自动化测试脚本;
3、测试完成后要形成HTML格式的测试报告;
4、以后所有关于网管之手的测试脚本、测试数据、测试报告等文件都存放在这个针对网管之手的自动化测试空间里。读测试指南 + 比对双版本差异 → 整理出 8 大模块功能清单
(你纠偏:requiresAdmin 指工具自身启动弹 UAC,程序本身普通权限即可 → 功能列表按指南修正)
→ 创建"网管之手自动化测试空间" + 编写 8 个模块脚本与主控
→ 运行中连环自愈若干环境问题
→ 首轮 78 用例:76 通过(97.4%)· 2 警告 · 耗时 1 分 24 秒
→ 生成 HTML 测试报告钉死判据
你盯上了报告里一条没有详情的告警,随后把判据一条条钉死:
测试报告中 嵌入式终端 4.4 终端菜单这个用例告警了 但没有详情说明是什么情况定位 4.4 用例:点击"终端"菜单后主窗口被遮罩,ESC 发到不可操作窗口抛异常
→ 根因:except 只记录 str(e)(空字符串),WARN 因此没有详情
→ 修复:ESC 改发到菜单本身 + 补充详细日志 → 单独重跑模块 4 验证生效助手菜单存在并成功点击,但没有弹出对应的程序,就不能记录为PASS 这块你需要做下判断确保每个测试结果都是真实有效的。比如点击完一个菜单项,等待他弹出对应的程序,确定对应的程序启动成功且与菜单项一致 再关闭弹出的这个程序 测试下一个菜单项
测试是一项认真、严谨的工作,我们需要确保每个测试结果都是真实有效的先写探索脚本实测"助手"菜单:点击后不弹子菜单,而是主窗口内切换到助手界面——此前"点击成功"记 PASS 属无效判定
→ 据此重写模块 6:用例 4 → 11 个,每条都有界面验证
→ 全量重跑:83 用例全部通过自检与回归
用例数涨到 101,你反过来要求它自查——这一步暴露的问题最多:
你自己检查一下 是否存在错误、遗漏和无效的测试用例,另外目前的测试脚本是否按照下面的要求都修改过了:……(附上一条纠偏要求全文)逐行审查全部脚本 → 报告 7 类问题(点击菜单不验证效果就记 PASS、启动工具不关闭等)
→ 修复中撞上环境限制(no active desktop 鼠标错误)→ 改键盘导航 + 子进程方式绕过
→ 各模块单跑验证通过现在你做一轮针对netadmin.exe和netadmin-core.exe这两个程序完整的UI自动化测试主控同步执行超时 → 改后台方式运行,轮询收结果
→ 中途修复控件覆盖、API 限流退避、右键菜单枚举 3 个问题
→ 最终:93 用例,92 通过 · 0 失败 · 1 警告(98.9%,唯一 WARN 已标明原因)
→ 归档 HTML 测试报告系统工具对照
部署决策要回答的是另一个问题:它调用的系统工具和命令,在每台目标机器上都在吗?
这个工具调用了很多操作系统自身的工具和命令 你给我对比一下 这些工具和命令 在Win7 SP1-Win11 这些系统里面是否都具备 结果用表格的形式展现给我提取脚本实际调用的工具/命令 + 读出 77 个工具项 → 整理成对照清单
→ 逐系统核对:Win7 SP1 / Win8/8.1 / Win10 1507~22H2 / Win11 21H2~24H2
→ 差异落点:lusrmgr.msc、write.exe、telnet、dism、gpedit 等受版本或家庭版限制
→ 结论:42 项全系可用 · 5 项受版本限定 · 8 个不兼容风险点(附建议措施)把这些结果整理成报告 用HTML格式给我一下生成 NetAdmin_工具兼容性报告_Win7-Win11.html
→ 章节化对照表 + 关键差异总结 + 8 个风险点及建议措施
→ 验证文件正确写入后交付亲自检测
下载会话导入工作区回放完整过程,或按顺序粘贴以下指令(把待测对象换成你的目标软件):
› 分析 <待测程序路径> 是用什么语言和框架编写的 › 你可以对<程序A>和<程序B> 做UI自动化测试么? › 获取两个程序的各项功能,读取 <测试指南>,形成完整的功能列表 › 在工作区创建针对 <被测软件> 的自动化测试空间,基于功能列表编写自动化测试脚本,测试完成后形成HTML格式的测试报告 › 自查是否存在错误、遗漏和无效的测试用例,确保每个测试结果真实有效(点击后等待弹出、确认一致、再关闭) › 做一轮针对两个程序的完整UI自动化测试 › 对比它调用的系统工具和命令在 <系统范围> 是否都具备,结果用表格展现 › 把这些结果整理成报告 用HTML格式给我一下 - 会话中的 API Key 已脱敏;78→83→101 用例是迭代过程中的中间数字,最终以 93 用例回归结果为准。UI 自动化需图形桌面会话——会话中实测到无活动桌面时鼠标操作会失败,可按会话中的自愈方式改用键盘导航与 taskkill。
下一个问题: 如何把这套测试空间接入 CI,在每次发版前自动回归?
