当前位置:网站首页>UI遍历的初步尝试
UI遍历的初步尝试
2022-08-10 00:34:00 【51CTO】
对于测试人员,UI 遍历已经很普遍了,比如说 Monkey, UICrawler 等等,都可以进行 UI 遍历。那我们怎么按照顺序去遍历一个 app 呢。下面介绍一个360 开测平台上用 uiautomator 做的 UI 遍历。

实现步骤
需要的参数:包名、启动类名、遍历截止类名、遍历时间、遍历总步数、遍历中需要登录的账号、登录密码。
实现思路:
①. 启动当前的 apk
②. 添加界面变化监听
③. dump界面组件元素
④. 排列界面组件元素
⑤. 比对界面元素
⑥. 操作界面组件元素,截图绘制
⑦. 遍历结束,停止UI遍历
详细说明

NUM 1

初始化参数配置


NUM 2
监听界面变化,这里我们添加 AccessibilityService 进行界面变化的监听,主要监听界面的三个变化,
TYPE_WINDOW_STATE_CHANGED, TYPE_WINDOW_CONTENT_CHANGED, TYPE_VIEW_CLICKED 窗口变化, 窗口内容变化,点击事件变化监听。

我们做一些初始化的判断:
1、包名是否正确

2、类名是否获取成功

- 软件盘弹出来了,关掉软件盘输入


NUM 3-4
dump 界面组件元素,我们在这里只 dump 一些我们可以操作的界面元素,比如说可以点击的,可以滑动的界面元素。
在 dump 的过程中,我们可以按照一般的 app 出现的特殊情况进行一个排序,比如列表的话,我们只取在界面范围内的元素,ViewPage ,我们可以优先取出来:

判断列表在点钱界面有几个子界面可以 dump:

判断当前的控件是否显示在可见屏幕范围内:

保存数据:


NUM 5
比对界面元素,判断当前要操作的组件。

我们怎么比对当前界面操作的元素呢:这里分为两种比对方式
1、MD5 比对, 在存储的串中,当前操作的MD5是否和当前界面生成的MD5是否相同。

2、比对图片的相似度,每点击一次,比对一个图片相似度,如果存在相同的部分,直接抽取数据进行排列组合生成一个新的 list


NUM 6
操作界面元素


NUM 7
停止UI遍历
停止条件:遍历时间和设置时间相同, 遍历步数和设置的步数相同, 返回手机屏幕界面,遍历结束


效果
SCREENSHOT

边栏推荐
- openEuler 知:abi 检测
- 【报错】ModuleNotFoundError: No module named ‘scp‘
- MySQL最大连接数限制如何修改
- -红与黑-
- 365 days challenge LeetCode1000 questions - Day 052 Step by step summation to get the minimum value of positive numbers Greedy
- FITC标记生物素(FITC-生物素|CAS:134759-22-1)有哪些知识了?
- CMake 编译运行dpdk项目程序
- 【CAS:41994-02-9 |Biotinyl tyramide】生物素基酪氨酰胺价格
- assert利用蚁剑登录
- 03|Process Control
猜你喜欢

宝塔实测-搭建LightPicture开源图床系统

Quick responsiveness intelligent/smart responsiveness of polyethylene glycol type nano/reduction response hydrogels research and preparation

Web性能测试模型小结

y92.第六章 微服务、服务网格及Envoy实战 -- Envoy基础(三)

Biotin-Cy2 Conjugate, Biotin-Cy2 Conjugate_Cy2 Biotin Conjugate

【毕业设计】 基于Stm32的家庭智能监控系统 - 单片机 图像识别 人体检测 AI

XSS高级 svg 复现一个循环问题以及两个循环问题

DHCP——动态主机配置协议

【kali-密码攻击】(5.2.1)密码分析:Hash Identifier(哈希识别)

openEuler 知:abi 检测
随机推荐
由生物素参与的D-Biotinol,CAS号:53906-36-8具体特性说明
Characteristics of the (CAS:1527486-16-3TAMRA-azide-PEG3-Biotin) reaction in biotin azide!
How to add control panel to right click menu in win7
微信小程序tab切换时保存checkbox状态
CAS:851113-28-5 (生物素-ahx-ahx-酪胺)
【CAS:41994-02-9 |Biotinyl tyramide】Biotinyl tyramide price
3.9 - 正规表达式和正规集 3.10 - 有限自动机
地雷数量求解
[obs] obsqsv11 hard coding and comparison with metartc codec
-red and black-
eyb:Redis学习(4)
XSS详解及复现gallerycms字符长度限制短域名绕过
商业模式及其 SubDAO 深入研究
OSS-访问oss生成的url无法访问,直接下载问题
开发IM即时通讯容易吗?需要什么技术
JVM :运行时数据区-虚拟机栈
C language structure, function and pointer exercise (simple address book)
【ROS2原理10】Interface数据的规定
基于SSM实现手机销售商城系统
Mysql database ALTER basic operations