一些技术比较牛逼的公司,移动端推出了深度遍历测试,比如百度的 MTC,东软易测云,手 Q 等,自己感觉如果能做到深度遍历测试,倒是一个很好的测试手段,可以作为稳定性、功能、专项测试的一个手段,但是遍历的技术都没有公开,怎么做到深度遍历,请教各位大牛指点下,自己研究了下 uiautomatorview,可以 dump 出当前可视部分布局,没有展示的怎么 dump 并且保证和上次 dump 内容不重合,按照什么样的方式遍历,遍历的越深,约难把控,发帖请教大家,也可以讨论下。
你可以搜索下 doctorq 的文章,我记得他好像做过……用深度优先算法?
简单来说:无论是 native 还是 webview 可以通过一些方法获取页面所有的元素然后取出来!
把页面解析的所有元素放到一个元素库里,然后逐一根据类型进行操作
每次获取当前 activity 所有的 view,然后每个 view 都有若干操作,例如点击 button,长按 button 可以分为两个操作。基于操作生成树状结构,进行遍历,每次执行一个操作后,update 当前 activity 的 view。
深度遍历测试,最后都会存在回环问题,解决这个问题挺麻烦的。目前 MTC 等的遍历测试效果并不好。
#3 楼 @heavennash MTC 的遍历测试存在什么缺点啊.
这个东西我尝试做过后来失败了,当时存在的问题如下:
(我是要遍历整个系统)
回环问题, 你很难知道新出现的界面是不是以前的界面,因为
A->B->C->D 四层界面,会存在 在 D 界面点击直接返回 A 界面的情况,最好的情况是你保存了 A 界面,然后通过匹配发现新界面和 A 界面一样,当然你的逻辑就乱不了了
但是实际过程中可能发生的情景是点击 D 界面的一个元素之后,返回到的 A 界面已经是更改过的界面。
我遇到比较多的是这种情况,系统 App 比较多。
后来项目转给印度研究所做了,看了他们做出来的效果也不太好,深度还是回环都有不少的问题
#4 楼 @seveniruby 正如 5 楼所说的,MTC 的遍历存在深度回环问题,实际使用的时候经常死循环。
#5 楼 @mdw66361100 我也做了一个, 改天放出来给大家用用
#7 楼 @seveniruby 放出来没
#8 楼 @huanzhijin 还在玩, 要等春节后了.
@seveniruby ,这个什么时候能够放出赖分享一下? 我们也在研究这个的实现,希望能够参考一下, 谢谢。
@seveniruby 我们也想尝试下这么做,希望能参考一下
@seveniruby 年后了,这个什么时候能够放出来分享一下?
我现在也在研究这个项目!遇到的阻塞问题正如五楼所说。
不知道你的这个工具在解决这个问题的思路上能否给明示下或者牵引下!不胜感激!