现在还能使用 appium 进行微信小程序的自动化测试吗

在testerhome看到思寒大佬2017年发的帖子:使用 appium 进行微信小程序的自动化测试 ,试了好久都无法成功。点开 chrome inspect 进入 DevTools 界面,小程序页面无法显示,是不是如今这个方法对小程序已经无效了?

可以的,前阵子我们刚培训过。


微信小程序自动化测试


微信小程序自动化测试方法

方式 技术栈 优点 缺点
原生自动化 uiautomator
appium
atx
简单
不依赖 webview 调试开关开启
不易维护
web 自动化 selenium
chromedriver
minitest
易维护 不适合混合开发
依赖 webview 调试开关开启
小程序不支持浏览器直接访问,此方法基本不可用
混合自动化 appium 易维护,通用 技术复杂
依赖 webview 调试开关开启

方法选型常见问题

  • 使用原生自动化测试方法
    • 个别微信版本可能会遇到 uiautomator2 的 bug 导致无法自动化
    • 定位符基本不可维护,需要研发配合
  • 使用 webview 自动化测试方法
    • 个别微信版本可能会遇到无法开启远程调试开关

基于 webview 自动化技术测试小程序

  • 上下文切换
    • 开启微信小程序的调试模式
    • 选对 chromedriver 版本
    • 修复 appium webview 与 xweb 的转换 bug
  • 窗口切换
  • 输入问题

谢谢大佬的回复,【开启微信小程序的调试模式】和【选对 chromedriver 版本】我都做好了,还是无法调试小程序,怀疑是【修复 appium webview 与 xweb 的转换 bug】没处理,这个有具体的操作教程吗

换了一台小米的测试机,可以了,原来使用的华为机器估计有兼容问题吧。。

华为手机也是可以的,可能跟鸿蒙系统有关,有一些控件识别bug。小米手机可以,是因为你比较幸运,环境没那么复杂,还没遇到我提到的那个问题。

所以我们现在其实已经实现了另外一种方式来做小程序的自动化测试,简单来说就是在 Appium 中自定义了一个 appium-wechat-driver 协议,然后自己实现了一个类似 WebDriverAgent 的服务,集成了小程序的自动化SDK miniprogram-automator,这样不仅可以对小程序的渲染层做自动化操作,也可以对逻辑层做操作,并且可以很好的处理并行测试需要多个微信账号的问题

1 个赞

这样做的目的是为了做多端用例复用,原来基于Appium写的App用例,可以很好的在小程序端进行复用了

如果你们有源代码,那用这个方式是不错的。之前我也想写个这样的服务。但是对于没有源代码的第三方小程序,就不太适用了吧。应该也有办法可以绕过的

是的,该方法需要有小程序的源码,是有绕过的方式