百度/微信小程序自动化测试总结

小程序开发


浏览:967 次

目录:

1.小程序自动化方案

1.1小程序的基本组成

1.2用于本地组件定位的UiSelector

1.2.1用于本地组件定位的UiSelector

1.2.2 Web元素定位

1.3小程序自动化准备

1.3.1安装附件

1.3.2 adb工具的安装

1.3.3镀铬剂。exe版本

1.3.4开放移动开发者选项

1.3.5打开webview的调试模式

1.3.6上下文切换

1.3.7关于windowHandles

1.3.8常见问题

2.微信小程序自动化

2.1启用微信webview调试模式

2.2启动自动演示

2.2.1启动appium服务

2.2.2确认小程序的androidProcess参数

2.2.3爱奇艺视频小程序演示

3.百度小程序自动化

3.1安装百度智能小程序调试包

3.2确认androdProcess进程名称

3.3百度小程序演示

4.小程序自动化库

4.1百度小程序界面

4.2微信小程序界面

4.3常用Android操作界面设备

4.4命令行操作界面

4.5图像识别AirCv

1.小程序自动化方案

目前,小程序自动化有三种方案:

Appium框架

[官方网站]:

网易的空中测试框架

腾讯的快速自动测试

网易的Airtest在图像识别元素方面做得很好,但爱奇艺视频小程序的固定UI元素非常少,大部分是视频封面,app自动化程度有限。

腾讯的FAT是腾讯测试团队刚刚开放的框架。粗略查看代码后,它可能会更好地支持腾讯自己的APP,如微信、qq浏览器等,但如果你想测试其他小程序,如百度/支付宝,你可能需要修改源代码的成本。目前,社区并不活跃。就其实现效率而言,据说它比Appium更高,但是,我还没有编写一个演示来详细比较。具体性能数据未知。

最后,选择appium框架,并使用Airtest图像识别功能作为辅助测试。appium社区相对活跃,保持了团队的稳定性。

1.1小程序的基本组成

小程序融合了原生app和webapp的特点,属于混合app。以爱奇艺视频微信小程序为例。上面的TopActionBar和下面的Bottom Action Bar是本机组件,而中间部分由webview呈现,属于webapp。

图像.png

对于Android原生UI组件,我们可以直接使用UIAutomator查看元素属性,如下图所示

图像.png

1.2本地组件和Web元素的本地化

1.2.1用于本地组件定位的UiSelector

UiSelector对于各种本机组件属性具有以下四种匹配关系:

完美匹配

包括匹配项

常规匹配

初始匹配

每个本机组件都有许多属性,如资源id、文本、类和内容描述,这些都是常用的。还有以下属性

属性值类型描述

Index int Index:对等组件的下标;来自0

instance int接口中同一类型View的所有实例的下标;来自0

类String组件的类名,如android.widget.TextView

包字符串包名称

内容描述字符串描述

检查可检查布尔值是否可选。通常,它仅对单个选择或复选框有用。

选中选中的布尔单选或复选框

可点击布尔值

启用的布尔值是否可操作,例如按钮变灰且不可操作

可聚焦布尔值

焦点布尔值是否获得焦点

可滚动布尔值是否可以滚动,通常为列表

长可点击布尔值

密码布尔值

所选布尔值是否具有背景选择属性,例如单击按钮后背景更改

边界矩形坐标,例如,[366999][7081197]表示控件矩形区域的左上和右下坐标

findElementByAndroidUIAutomator可用于查找appium中的本地组件。下面将省略方法名称,并直接写入UiSelector

驾驶员FindElementByAndroidUIAutomator(“new UiSelector().text(“爱奇艺视频”)”)

ID属性资源ID位置

//ResourceId匹配所有

new UiSelector().resourceId(“com.baidu.searchbox.remotedebug:id/baidu_searchbox”)

//常规匹配baidu_搜索框结束

新的UiSelector().resourceIdMatches(“.*baidu_searchbox”)

//包含匹配和SearchTextInput组件

new UiSelector().resourceIdContains(“搜索文本输入”)

//初始匹配

new UiSelector().resourceIdStartsWith(“com.baidu.searchbox.remotedebug”)

文本属性文本定位

//按文本定位

驾驶员FindElementByAndroidUIAutomator(“new UiSelector().text(“爱奇艺视频”)”)

//常规匹配搜索未登录或我的

新建UiSelector()。text匹配(“未登录|我的”)