wxa-runner:在浏览器里运行微信小程序,用 Playwright 做自动化测试

发布于
1

阿喵前言

给小程序补一条自动化测试,难道就得先把微信开发者工具搬进 CI?wxa-runner 把微信官方基础库带进普通浏览器,直接运行小程序编译产物,用 Playwright 测页面和请求,不用为了测试再维护一套 H5。阿喵觉得它最对路的地方,就是让小程序也能接上熟悉的浏览器调试和自动化流程。

资源介绍

wxa-runner 是免费开源的微信小程序浏览器运行工具,面向本地调试和端到端自动化测试。它使用微信官方基础库处理渲染、组件、setData 和生命周期,而不是把小程序重新实现成 H5;原生项目可直接启动,uni-app、Taro 则使用微信小程序编译产物。

它支持 Chrome DevTools 调试、保存后热更新,以及通过 setup 预置存储、模拟原生接口和拦截请求。接入 Playwright 后,可以检查页面路径、页面数据和请求内容,也适合放进 Linux CI。当前正式版为 v0.13.0,命令行包已发布到 npm。

截图

wxa-runner在线查看器的小程序首页与setup配置面板
在线查看器:小程序首页与 setup 配置面板。
wxa-runner官方示例的小程序帖子详情页
官方示例:小程序帖子详情页。

在线演示使用 mock 数据展示界面,画面中的账号、投票与帖子不是生产环境数据。

特色

  • 不用另做 H5:直接运行原生小程序目录或框架生成的 mp-weixin 目录。
  • 浏览器里调试:用 DevTools 打断点、看 DOM 和网络请求,修改后热更新。
  • 测试不必遥控开发者工具:Playwright 直接操作浏览器,可在 CI 中无头运行。
  • 绕开测试前置障碍:用 setup 配置测试登录态、接口应答和原生 API 模拟,不改业务代码。
  • 直接定位页面:通过带路径与参数的地址打开目标页,少走重复导航。

注意

  • 它是调试与测试工具,不代表所有行为都与真机完全等价。蓝牙等设备能力、云开发调用不支持;微信扫码预览、上传和真机调试仍要回到微信开发者工具。
  • 登录、用户信息等开放接口默认返回假数据,支付和扫码默认失败;未实现的部分 API 可能返回成功,测试时应明确 mock 并检查运行时错误。
  • 不装开发者工具的 Linux/CI 环境目前只支持 x86-64。Taro 可接入标准编译产物,但项目明确验证过的真实框架项目主要是 uni-app。
  • 项目代码采用 MIT;内置微信官方基础库版权归腾讯,不适用本项目的 MIT 许可。

使用教程

  1. 先看演示。打开在线查看器,可先了解浏览器中的小程序界面;它展示的是配置好的示例,不需要导入自己的项目。
  2. 准备项目和环境。命令行工具需要 Node.js 18 及以上与 Chrome。原生项目找到 project.config.json 所在目录;uni-app 或 Taro 先完成微信小程序端编译。
  3. 启动浏览器调试。原生项目在上述目录执行:
    npx wxa-runner dev . --open

    uni-app 常见编译目录可用:

    npx wxa-runner dev ./dist/dev/mp-weixin --open

    HBuilderX 项目通常改为 unpackage/dist/dev/mp-weixin。框架的监听构建需继续运行。

  4. 处理测试所需条件。按setup 文档准备模拟接口和测试存储,再用 Chrome DevTools 查看业务代码。涉及真实登录时按需阅读专门文档,不要把默认假 code 当作真实授权。
  5. 接入自动化。按Playwright 教程添加测试包和配置。测试中的 test、expect 从 @open-wxa/wxa-runner-playwright 导入,再逐步加入页面路径、数据和请求断言。

若想把小程序打包成 .wxapack,再导出静态查看器分享给团队,需走查看器文档里的仓库构建流程;这一功能目前尚未发布到 npm,不能直接照搬为 npm 包已具备的命令。

资源获取

GitHub 开源仓库 · npm 命令行包 · 在线演示 · 中文文档

0 / 600
0 讨论
热门最新
总结
暂无总结

正在发生

最新事件奖励滚动播报

LIVE0
正在读取最新事件