软件测试|UI遍历的初步尝试

举报
霍格沃兹测试开发 发表于 2023/01/03 17:41:18 2023/01/03
【摘要】 对于测试人员,UI 遍历已经很普遍了,比如说 Monkey, UICrawler 等等,都可以进行 UI 遍历。那我们怎么按照顺序去遍历一个 app 呢。下面介绍一个360 开测平台上用 uiautomator 做的 UI 遍历。实现步骤需要的参数:包名、启动类名、遍历截止类名、遍历时间、遍历总步数、遍历中需要登录的账号、登录密码。实现思路:①. 启动当前的 apk②. 添加界面变化监听③....

对于测试人员,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、类名是否获取成功

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

NUM 3-4

dump 界面组件元素,我们在这里只 dump 一些我们可以操作的界面元素,比如说可以点击的,可以滑动的界面元素。

在 dump 的过程中,我们可以按照一般的 app 出现的特殊情况进行一个排序,比如列表的话,我们只取在界面范围内的元素,ViewPage ,我们可以优先取出来:

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

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

保存数据:

NUM 5

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

我们怎么比对当前界面操作的元素呢:这里分为两种比对方式

1、MD5 比对, 在存储的串中,当前操作的MD5是否和当前界面生成的MD5是否相同。

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

NUM 6

操作界面元素

NUM 7

停止UI遍历

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。