目录
作为一个安卓整机测试工程师,我不用 robotium 的理由是:
接着说说,为什么是 UiAutomator 与 shell 结合?
前言:
在开发应用程序时,我们需要对其进行各种测试,以确保其稳定性和可靠性。其中,UI 自动化测试是一种常用的测试方法,它可以通过自动化操作来测试应用程序的功能和性能。在 UI 自动化测试中,我们可以选择不同的测试框架,如 UiAutomator、Appium 等。
作为一个安卓整机测试工程师,我不用 robotium 的理由是:
- 跨应用交互功能较弱,而我们有很多交互的自动化测试用例;
- 需要重新签名应用,我做整机测试,是几十个应用需要测试,在现在敏捷开发正流行的当下,两周左右即出一新版本,我需要对它们都重新签名,额,想想都觉着累。(那现 在想想,却也并非完全如此,我们可以通过 md5 值,来对比应用在设备前一版与后一版有无更新,只要针对有更新的应用重新签名即可,这个可以减少任务,同时亦可将测试重点放在那些有更新的应用上,可谓一举双得)。
对比之下,UiAutomator 就比较适合做整机的测试,
- 跨应用很容易;
- 不需要重新签名;
- 新版本出来以后,用例重用率高,同一应用,不同屏幕大小的设备亦可重用。
当我掌握了 UiAutomator 的时候,听说 Appium,既可做安卓,亦可做 iOS,也想学着来。另一原因是想用它来做一些网页的自动化,因为 UiAutomator 本身对一些网页上的控件,查不到它的属性,据查 Appium 是可以的,便想学着来试试。在安卓上搞了一条用例后,便弃之不用了,不想用这个,着实不便。
- 需要连着 usb 线,或局域网,万一我跑到开关 WiFi 的用例,咋整?我这边执行 UiAutomator 全用 shell,跑起来以后,都是连着 AC charge(AC 就是充电头) 的,不需要开着一台电脑陪着手机一直运行着,从节能角度来说,一年下来,却也是要省不少钱哩(虽然咱大公司,不差钱);
- 用例中有诸多设置,限制了设备 ID,平台 ID 等等,换台手机跑?我要写了 800 条,难道一条一条更新?
接着说说,为什么是 UiAutomator 与 shell 结合?
其实,我们做自动化黑盒测试,我们最主要的目的是什么呢?
- 节省资源,这资源又分为:人力资源,物质资源(比如我们现在测试的智能手机,据说其运算能力,已超六,七十年代,老外将卫星送上天所用的那些个计算机了,其本身已够强大,却还要一台 pc 陪跑,我感觉就挺事儿的,虽然有时是技术要求或限制啦)
- 保证产品稳定性,发现问题。这个是自然的事,不消多说的。
围绕这两个主要的目的,那工具的选择上面,自然是越简单实用,效率越高越好。无论是 UiAutomator,还是 Appium 或其他什么工具,在最后的最后,都是要来那一下子,点击嘛,不操作哪里有什么测试可言?点击的啥呢?还不是坐标?而我们拿到了这个控件的坐标后,只消点击对应的坐标即可。哪个工具速度快,通用性好,才是首选。从这点来说,以上的工具各有利弊。我们使用 uiautomator dump 来获取 xml 档,从 xml 档中过滤出控件的坐标值来,使用 shell 脚本来执行,速度是非常快的。这个比 UiAutomator 本身要快的多。快多少?这点需要具体的用例来说明了,这是后话。
作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。
(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)
相信能使你更好的进步!
点击下方小卡片