移动测试开发 一种通过云配置处理应用权限弹框的方案

opentest-oper@360.cn · 2020年10月15日 · 2185 次阅读

背景

在兼容性测试中,对于一个 app 进行兼容性测试,需要安装,冷启动,热启动,卸载四个步骤,在这四个步骤都正确的情况下,才确定 app 兼容这款手机。
在国内,Android 手机的型号,品牌有很多,各个品牌厂商封装代码不同,给兼容性测试带来了很大的影响,尤其在 Android6.0 以后,Android 为了用户安全引入权限弹框,Android8.0 以后 oppo,vivo 等手机需要用户输入账户,密码才可以安装,为确保兼容性测试的正确执行,需要引入一种辅助处理机制,点窗助手。
该 sdk 是基于 google 的 uiautomator 开发的,所以只适用于 Android 系统。
本方案采用云端拉取弹框数据,动态修改代码运行参数,完美的解决了兼容性测试中弹框导致的测试失败的问题。

核心技术与架构图

云配置是在云端拉取弹框配置数据,动态固化到本地,uiautomator 监听 OnAccessibilityEventListener,拉取固化本地数据,进行弹框处理。 架构图如下图所示:

整体方案主要分为四个部分:
1.数据更新固化机制:Android 终端通过 http 请求,拉取云端数据,固化到本地。
2.组件比对模型:uiautomator 监听 OnAccessibilityEventListener 事件回调,通过判断当前的界面是否弹窗,拉取本地数据,进行和弹窗比对。
3.比对成功后的处理:比对成功后,根据操作类型,去做相对应的操作。
4.异常机制预警:比对失败,或者操作失败,邮件预警。

技术优势

1.弹框匹配数据动态更新,无需停止服务
2.断网也可以处理弹框
3.组件比对速度快,弹窗定位精准
4.一个弹框,多操作
5.支持多种操作,操作结果成功率比较高
6.支持正则匹配查找
7.完美解决 AccessibilityNodeInfo 点击产生的问题

技术实现

1.启动心跳服务,拉取云端数据

2.数据固化

3.配置服务启动参数

4.监听 UiAntomation.OnAccessibilityEventListener

5.判定弹框

6.精确比对弹框是否匹配数据

7.组件操作:

8.异常预警

效果展示

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 0 条回复 时间 点赞
opentest-oper@360.cn 关闭了讨论 10月15日 15:39
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册