html静态页面自动化测试需分层验证:htmlhint检查语法合法性,lychee检测死链,playwright验证渲染与交互,缺一不可。

静态HTML页面的自动化测试不是“跑个浏览器脚本”就完事,而是要分层验证:语法是否合法、链接是否有效、结构是否符合预期、渲染是否可访问。漏掉任何一层,上线后都可能出问题。
用 HTMLHint 做静态语法检查
HTMLHint 能捕获标签未闭合、属性缺失、DOCTYPE 错误等基础问题,适合在 CI 的早期阶段运行,失败即中断后续流程。
- 在项目根目录加
.htmlhintrc,明确启用关键规则:"attr-no-duplication"、"attr-req-value"、"id-unique" - CI 中执行:
npx htmlhint ./src/**/*.html --config .htmlhintrc - 注意:默认不校验自定义属性(如
data-*),需手动加"attr-custom"规则,否则 Vue/React 模板里大量报错 - 常见错误现象:
ERROR: src/index.html:12:5: Attribute "class" is not allowed on element "div"——其实是规则配置太严,不是代码真错
用 link-checker 扫描死链
本地开发时能点开的链接,部署后很可能 404,尤其相对路径、锚点、外部资源引用。必须在构建产物上运行检测。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 推荐
lychee(Rust 写的,快且支持并发):lychee --timeout 5000 --max-retries 1 ./dist/ - 务必在
publish_dir(如./dist)上运行,而不是源码目录——因为路径解析依赖最终生成结构 - CI 中需设置
fail_on_error: true,否则即使发现 404 也继续部署 - 容易踩的坑:CI 环境 DNS 不稳定,导致偶发超时;建议加
--retry-wait 1000避免误报
用 Playwright 做轻量级渲染与交互验证
不是所有静态页都需要 E2E,但关键路径(如表单提交按钮、跳转链接、无障碍标签)必须确认真实浏览器中可操作。
- 写一个最小用例:
test/homepage.spec.ts,只测三件事:标题存在、主按钮可点击、aria-label有值 - CI 中启动无头 Chromium:
npx playwright test --browser chromium --workers 1 - 避免用
page.goto("http://localhost:3000")——静态页没服务,直接page.goto("file:///home/runner/work/my-site/my-site/dist/index.html") - 性能影响:Playwright 启动慢,建议只在
on: pull_request时运行,on: push可跳过
真正难的不是写测试,而是判断哪些该测、哪些不该测。一个纯展示页,花 2 分钟写 HTMLHint + lychee 就够了;如果含表单或 JS 交互,才值得加 Playwright。别让测试成为部署瓶颈。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










