Android手机自动化测试工具有哪些?

 

1、Espresso是Google的开源自动化测试框架。相对于Robotium和UIAutomator,它的特点是规模更小、更简洁,API更加精确,编写测试代码简单,容易快速上手。因为是基于Instrumentation的,所以不能跨App。

2、Selendroid:也是基于Instrumentation的测试框架,可以测试Native App、Hybird App、Web App,但是网上资料较少,社区活跃度也不大。

3、Robotium也是基于Instrumentation的测试框架,目前国内外用的比较多,资料比较多,社区也比较活跃。缺点是对测试人员来说要有一定的Java基础,了解Android基本组件,不能跨App。

4、Athrun是淘宝出的一个移动测试框架/平台,同时支持iOS和Android。Android部分也是基于Instrumentation,在Android原有的ActivityInstrumentationTestCase2类基础上进行了扩展,提供一整套面向对象的API。

5、Appium是最近比较热门的框架,社区也很活跃。这个框架应该是是功能最强大的,

它的优点:

o 开源;

o 支持Native App、Hybird App、Web App;

o 支持Android、iOS、Firefox OS;

o Server也是跨平台的,你可以使用Mac OS X、Windows或者Linux;

它的哲理是:

o 用Appium自动化测试不需要重新编译App;

o 支持很多语言来编写测试脚本,Java、Javascript、PHP、Python、C#、Ruby等主流语言;

o 不需要为了自动化测试来重造轮子,因为扩展了WebDriver。(WebDriver是测试WebApps的一种简单、快速的自动化测试框架,所以有Web自动化测试经验的测试人员可以直接上手);

o 移动端自动化测试应该是开源的;

它的设计理念:

o Client/Server架构,运行的时候Server端会监听Client端发过来的命令,翻译这些命令发送给移动设备或模拟器,然后移动设备或模拟器做出响应的反应。正是因为这种架构,所以Client可以使用Appium client libraries多种语言的测试脚本,而且Server端完全可以部署在服务器上,甚至云服务器。

o Session,每个Client连接到Server以后都会有一个Session ID,而且Client发送命令到Server端都需要这个Session ID,因为这个seesion id代表了你所打开的浏览器或者是移动设备的模拟器。所以你甚至可以打开N个Session,同时测试不同的设备或模拟器。

o Desired Capabilities,其实就是一个键值对,设置一些测试的相关信息来告诉Server端,我们需要测试iOS、还是Android,或者换是WebApp等信息。

o Appium Server是Node.js写的,所以可以直接用NPM来进行安装。

o Appium Clients,Mac OS和Win下提供GUI,不需要装Node.js,方便测试人员操作。

相关限制:

o 如果你在Windows使用Appium,你没法使用预编译专用于OS X的.app文件,因为Appium依赖OS X专用的库来支持iOS测试,所以在Windows平台你不能测试iOS Apps。这意味着你只能通过在Mac上来运行iOS测试。

总结:

o 在iOS部分是封装了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就说Appium同时封装了UiAutomator和Instrumentation。所以Appium拥有了以上几大框架的所有优点:跨App,支持Native App、Hybird App、Web App,还支持N种语言来编写你的测试脚本。

6、TestWriter是上海博为峰结合多年为企业做测试服务的经验所研发的一款具有自主知识产权的自动化测试工具。

优点:

a、完全零编码

TestWriter引入对象库,支持对页面元素的智能分析,自动生成操作对象库,或通过简单的点击生成操作对象库;

b、图形化界面

通过图形化界面,对测试对象、测试步骤、用例等层层封装映射,清晰理清业务关系;

业务变动、界面调整时仅需修改相应业务库内容;

c、简单易操作

支持分布式测试,通过拟定计划,自动匹配测试环境并分配执行机器,无需测试人员干预,轻松实现自动定期回归;

d、结果更直观

实时查看执行情况,自动记录测试结果,并对错误步骤进行问题分析及错误时UI截图。