阿喵前言
给小程序补一条自动化测试,难道就得先把微信开发者工具搬进 CI?wxa-runner 把微信官方基础库带进普通浏览器,直接运行小程序编译产物,用 Playwright 测页面和请求,不用为了测试再维护一套 H5。阿喵觉得它最对路的地方,就是让小程序也能接上熟悉的浏览器调试和自动化流程。
资源介绍
wxa-runner 是免费开源的微信小程序浏览器运行工具,面向本地调试和端到端自动化测试。它使用微信官方基础库处理渲染、组件、setData 和生命周期,而不是把小程序重新实现成 H5;原生项目可直接启动,uni-app、Taro 则使用微信小程序编译产物。
它支持 Chrome DevTools 调试、保存后热更新,以及通过 setup 预置存储、模拟原生接口和拦截请求。接入 Playwright 后,可以检查页面路径、页面数据和请求内容,也适合放进 Linux CI。当前正式版为 v0.13.0,命令行包已发布到 npm。
截图


在线演示使用 mock 数据展示界面,画面中的账号、投票与帖子不是生产环境数据。
特色
- 不用另做 H5:直接运行原生小程序目录或框架生成的 mp-weixin 目录。
- 浏览器里调试:用 DevTools 打断点、看 DOM 和网络请求,修改后热更新。
- 测试不必遥控开发者工具:Playwright 直接操作浏览器,可在 CI 中无头运行。
- 绕开测试前置障碍:用 setup 配置测试登录态、接口应答和原生 API 模拟,不改业务代码。
- 直接定位页面:通过带路径与参数的地址打开目标页,少走重复导航。
注意
- 它是调试与测试工具,不代表所有行为都与真机完全等价。蓝牙等设备能力、云开发调用不支持;微信扫码预览、上传和真机调试仍要回到微信开发者工具。
- 登录、用户信息等开放接口默认返回假数据,支付和扫码默认失败;未实现的部分 API 可能返回成功,测试时应明确 mock 并检查运行时错误。
- 不装开发者工具的 Linux/CI 环境目前只支持 x86-64。Taro 可接入标准编译产物,但项目明确验证过的真实框架项目主要是 uni-app。
- 项目代码采用 MIT;内置微信官方基础库版权归腾讯,不适用本项目的 MIT 许可。
使用教程
- 先看演示。打开在线查看器,可先了解浏览器中的小程序界面;它展示的是配置好的示例,不需要导入自己的项目。
- 准备项目和环境。命令行工具需要 Node.js 18 及以上与 Chrome。原生项目找到 project.config.json 所在目录;uni-app 或 Taro 先完成微信小程序端编译。
- 启动浏览器调试。原生项目在上述目录执行:
npx wxa-runner dev . --openuni-app 常见编译目录可用:
npx wxa-runner dev ./dist/dev/mp-weixin --openHBuilderX 项目通常改为 unpackage/dist/dev/mp-weixin。框架的监听构建需继续运行。
- 处理测试所需条件。按setup 文档准备模拟接口和测试存储,再用 Chrome DevTools 查看业务代码。涉及真实登录时按需阅读专门文档,不要把默认假 code 当作真实授权。
- 接入自动化。按Playwright 教程添加测试包和配置。测试中的 test、expect 从 @open-wxa/wxa-runner-playwright 导入,再逐步加入页面路径、数据和请求断言。
若想把小程序打包成 .wxapack,再导出静态查看器分享给团队,需走查看器文档里的仓库构建流程;这一功能目前尚未发布到 npm,不能直接照搬为 npm 包已具备的命令。
资源获取
GitHub 开源仓库 · npm 命令行包 · 在线演示 · 中文文档

