移动端 App UI 自动化测试浅谈

很多做测试的同学对UI自动化充满着向往,但又充满畏惧,经常不知道如何入手。一方面是因为技术薄弱,觉得自动化测试比较难,另一方面可能对自动化测试持怀疑态度。那到底什么是UI自动化测试,它能给我们带来什么样的价值呢?下面我们探讨下移动端的UI自动化方法。

什么是UI自动化?
首先,我们引用来自Monkey大神对的定义:UI自动化包括界面层面(控件,元素,位置,显示等的识别)以及功能交互层面(往往是通过代码或者测试框架来模拟真实用户的操作)
从个人的理解来看,UI自动化是通过工具或者脚本语言将测试过程模拟出来,并重复执行,用以验证功能是否正确的过程。
为什么要做UI自动化测试?
对于移动app而言,很多公司都采用敏捷开发的模式,因此测试也必须敏捷测试,每个迭代的周期非常短,经常要对原有功能进行回归测试,增加大量重复人力成本。引入UI自动化测试可以用来快速回归测试app原有功能,测试人员只需要关注新功能的测试。
移动端App的测试用例大部分是功能验证相关的用例,通过UI操作即可验证,这就为UI自动化提供了便利条件。
测试重复度高,执行效率低,通过UI自动化可以快速重复执行,达到提高测试效率的目的。
常用UI自动化测试工具
这几年,移动端技术发展非常迅速,测试手段也同样发展迅速,出现了大量用于对移动端app进行自动化测试的工具,下面简单列举下:

Monkey 是 Google 开发的UI/应用测试工具,也是命令行工具,主要针对压力测试。你可以在任意的模拟器示例或者设备上运行。Monkey 发送一个用户事件的 pseudo-random 流给系统,作为你开发应用的压力测试。
IOS UI Automation,基于IOS instrument。
MonkeyTalk 通过在App中加入client自动化为 iOS 和 Android 应用进行真实的,功能性交互测试。有成熟的集成开发环境,有API支持和持续集成解决方案,且方便二次开发,目前不开源,属于功能强大但没有被很好推广的测试框架。
Robolectric 是一款Android单元测试框架,使用 Android SDK jar,所以你可以使用测试驱动开发 Android 应用。
Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。
uiautomator 测试框架提高用户界面(UI)的测试效率,通过自动创建功能 UI 测试示例,可以在一个或者多个设备上运行你的应用。
Selendroid 使用 Selenium 2 客户端 API 编写。可以在模拟器和实际设备上使用,也可以集成网格节点作为缩放和并行测试。
Appium是一个开源的、跨平台的自动化测试工具,适用于测试原生或混合型移动App,支持iOS、Android和FirefoxOS平台。
Calabash是一款适用于iOS和Android平台的跨平台应用测试框架,支持Cucumber,开源且免费,隶属于Xamarin公司。
套用网上一位测试朋友的话,“自动化测试听起来很神秘,学起来很简单,用起来很麻烦”。UI自动化的优点很多,但要考虑适用场景,否则适得其反。同样,我们也要选好一个适合的自动化框架,这样才能提高效率。总而言之,想搞好自动化测试,还需要测试人员不断地提高测试理解力,分析能力和代码水平。

原文地址:https://www.cnblogs.com/icexu/p/13324387.html