当前没有专门针对微信小程序的自动化测试工具,实现微信小程序自动化测试的手段基本上都是套用针对 Hybrid App的,就是通过定位H5 App资源控件,并结合屏幕坐标的方式来操控小程序的页面元素,真正微信小程序的专项测试工具,要使用微信官方的开发调试工具来驱动。

今天我们准备上手的小程序是微信官方的测试Demo,类似Android Api Demos一样,官方小程序中展示的也是各种控件的使用方法及常用接口扩展能力。通过添加开发者微信账号后,扫描二维码既可以打开微信小程序。

一、小程序运行时分析;

1、首先,启动微信,查看一下微信都有哪些进程,再看一下当前显示微信画面的进程,从名字来看应该是com.tencent.mm。

2、接下来,看一下启动官方微信小程序demo之后的进程变化。

多了一个进程,com.tencent.mm:appbrand0,那微信小程序是在哪个进程运行的呢?

看一下top进程:当前top进程是9896,果然是com.tencent.mm:appbrand0。 可见,微信为了保证小程序的资源和独立性,为小程序单独开了进程。

3、微信小程序和微信里面打开一个网页,是同一个模块实现的吗? 微信里打开一个网页,然后查看一下进程情况: 进程没有变化,看看top进程: 网页居然是在com.tencent.mm:tools进程里面打开的,并且两者的Activity也不一样,小程序是.plugin.appbrand.ui.AppBrandUI,网页是.plugin.webview.ui.tools.WebViewUI。

看来微信小程序和单纯的一个网页还是有区别的。

二、小程序的画面构成, 使用UIAutomator分析一下构成微信小程序画面的组件;

通过UIAutomator分析画面,发现微信小程序Demo整体由3个部分组成,TopActionBar,中间是一个腾讯自己的WebView,用的应该是腾讯自研的X5内核,下面是一个Bottom ActionBar,在X5 WebView中展示了小程序的内容部分。

可见,微信小程序的页面展示使用了Android原生控件与WebView的H5混合显示方案,这相当于市面上相当常见的H5混合应用。

但是如果是针对微信小程序的兼容和性能指标监控,移动端自动化测试工具MR就能大显神通了。MR通过测试用例覆盖业务规则的测试,减少脚本设计的复杂度和脚本设计的简单性;校验点包括数据库校验、正则表达式校验,所有校验图形化方式填写的方式;

但对于需要验证码等身份验证的功能,是需要在自动化测试工具MR中进行屏蔽的。