Web系统全要素测试流程
适用场景
对一个纯标准库 Web 系统(http.server + sqlite3)做开发 / 设计 / 功能 / 安全 / 使用五维全流程测试,输出改进建议,且要覆盖权限矩阵、边界 / 越权 / XSS / 路径穿越 / 导出注入、数据完整性时触发。偏「找问题给建议」,而非单纯断言通过。
操作步骤
- 源码静态扫描:
py_compile三文件全过;Grep 裸except: pass(统一改成except Exception as e: logutil.warn(...))、模板%占位符与参数数量不匹配(漏同步 → 运行时 TypeError → HTTP 000)。 - 关键路由并发遍历:78 份制度页并发请求(约 1.7s 全过,单页 0.15s),确认全 200 且正文非空。
- 三角色权限矩阵:owner 全通过 / life 可增改不可删 / guest 不可碰财务不可删,逐角色复测。
- 边界实测:伪造会话被拒、路径穿越被拦、XSS 转义正确、导出 xlsx 用 inlineStr 无
<f>公式(无注入风险)。 - 数据完整性:WAL 并发正常(
WAL + synchronous=NORMAL + busy_timeout=5000)。 - 吞异常统一治理:静默
except全改logutil.warn(where, exc, note)写 stderr + 本机日志(2MB 轮转)。
注意边界
- 并发压测别压真库:大批量写用后台线程池,视图零改动下沉。
- 本地 localhost 测法:urllib 受代理影响报 502 → 用
http.client直连,或 curl 加--noproxy '*'。 - HTTP 000 多为处理线程异常(非网络),查后台 stderr。
反例避雷
- 模板
%拼接漏占位符 → HTTP 000:改文案漏同步% (...)→ 运行时 TypeError 让处理线程抛异常、连接直接断。改完必跑全路由冒烟。 - 后台线程抛异常 → HTTP 000:HTTP 000 多为处理线程异常,查后台 stderr。
- 只测功能不测安全 → 越权 / XSS 漏网,上线即事故。
关联笔记
- [[技能|全页面回归冒烟法]]
- [[技能|Web端点性能剖面定位法]]
- [[技能|Web显示美学体检与修复法]]
- [[技能|吞噬异常统一留痕治理法]]
实战战绩
2026-09-28 首跑:对 HFMS 做五维体检,18 处静默 except 全改 logutil.warn 留痕;路由并发全 200;三角色权限矩阵按预期通过 / 拒绝;XSS / 路径穿越 / 伪造会话均被拦;输出含「已修复 / 未修复 / 通过项」三类结构化测试报告。
版本记录
| 版本 | 日期 | 变更 |
|---|---|---|
| v1.0.0 | 2026-09-28 | 首版实战固化:静态扫描→路由并发→三角色矩阵→边界实测→数据完整性→吞异常治理 |
| v1.1.0 | 2026-10-03 | 补录进 程序技能库 05 测试(此前仅存于个人技能库第三批目录,未迁移) |