精致的五种ios开源自动化工具

时间:2017-04-18 14:27来源:成都达内 作者:达内杨老师 点击:

iOS是由苹果公司开发的移动操作系统 。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。iOS与苹果的Mac OS X操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010WWDC大会上宣布改名为iOS(iOS为美国Cisco公司网络设备操作系统注册商标,苹果改名已获得Cisco公司授权)。
2016年1月,随着9.2.1版本的发布,苹果修复了一个存在了3年的漏洞。该漏洞在iPhone或iPad用户在酒店或者机场等访问带强制门户的网络时,登录页面会通过未加密的HTTP连接显示网络使用条款。在用户接受条款后,即可正常上网,但嵌入浏览器会将未加密的Cookie分享给Safari浏览器。利用这种分享的资源,黑客可以创建自主的虚假强制门户,并将其关联至WiFi网络,从而窃取设备上保存的任何未加密Cookie。


自动化测试时下在产品测试上有着非常重要的作用。实现测试自动化有多种积极的方式,包括最大限度地减少测试执行时间;在关键的发布阶段,用更少的时间确保更大的覆盖范围;在产品开发阶段,可靠又重复性地运行以确保没有引进回归问题。最大限度地减少重复性回归测试循环时的人为错误和疏忽的风险。

在市场上有很多可用的工具,开源的或要付费的。虽然付费和开源工具各有利弊,但是后者在自动化测试社区得到了广泛的应用。根据项目需求来选择合适的自动化工具是非常棘手的。

下面介绍5个最佳的iOS和Android开源自动化工具。
1)Calabash(适用于Android和iOS)

Calabash是一个开源的验收测试框架,支持Android和iOS自动化。Calabash为Android和iOS自动化测试提供了一个单独的库。这是一个跨平台的框架,支持Cucumber,Cucumber能让你用自然的英语语言表述app的行为,实现BDD(BehaviorDrivenDevelopment,行为驱动开发)。

Calabash提供了一个桥梁,允许Cucumber测试对iOS和Android运行和验证。Cucumber测试使用一列语句写入,这些语句会形成很多测试场景。Cucumber中的所有语句使用Ruby定义。

在Calabash,Cucumber语句只能被定义一次,但可以在Cucumber脚本的不同场景中重复使用。

实际测试是用Gherkin写的,依靠Ruby代码的支持,并在Cucumber框架的上下文中运行。

优点

大型社区支持。
简单,类似英语表述的测试语句
支持在屏幕上的所有动作,如滑动,缩放,旋转,敲击等。
大型且热心的社区。
跨平台开发支持(同样的代码在Android和iOS设备中都适用)

缺点

测试步骤失败后,将跳过所有的后续步骤。这可能会导致错过更严重的产品问题。
需要时间来进行测试,因为它首先总是默认安装app。但是,这种设置可以通过在代码中配置一个钩子(hook)覆盖掉。
需要Calabash框架安装在ios的ipa文件中。
我们必须要有iOS的app代码。
除了Ruby,对其他语言不友好。

2)Appium(Android和iOS)

Appium是SauceLabs出品的一个开源的自动化测试框架,用于原生、混合和移动的webapp。框架内的Appium库函数调用Appium服务器是在操作连接设备的后台运行的。它在内部使用JSONWireProtocol,来与使用Selenium的WebDriver的iOS和Androidapp进行互动。

不像Calabash只支持Ruby开发,在框架中使用Appium时,你可以从Java、Python和Ruby,以及所有其他SeleniumWebDriver支持的语言中选择。

Appium服务器被托管在Node服务器上。你可以通过触发一组Node命令来启动Appium服务器。使用AppiumStandaloneApplication作为服务器(从Appium网站下载),Inspector工具可对app的所有定位器提供查找/识别/操作的能力。

优点

支持多种语言。
不需要访问源代码。
跨平台脚本开发。
大型社区支持。
支持Mac上的脚本记录。
使用AppiumServer应用程序的Inspector工具提取标识符。
通过AppiumServer的桌面应用程序对Selendroid内置支持。
它还使用供应商提供的框架:适用于iOS的UIAutomation,分别适用于Android4.2+和2.3+的UIAutomator和Selendroid。
支持物理设备与仿真器。
支持原生,混合和移动的web自动化应用程序。

缺点

AppiumServer桌面应用程序的发布常常不稳定。
脚本记录不适用于Application服务器对于WindowsOS的桌面应用程序。

3)Robotium(Android)

Robotium是一个开源的测试框架,用于开发功能性,系统,和验收测试场景。它与Selenium非常相似,除了Robotium只适用于Android。它注册在ApacheLicense2.0下。

因为它不但简单,而且又具有创建强大又可靠的自动化场景的能力,因而它在自动化测试社区广泛流行。

它采用运行时绑定到GUI组件。它安装了一个测试用例套件作为在Android设备或仿真器上的应用程序,并提供用于执行测试的真实环境。

优点

容易在最短的时间内编写测试脚本。
预装自动化app是可能的。
自动跟随当前activity。
由于运行时绑定到GUI组件,所以相比Appium,它的测试执行更快,更强大。
不访问代码或不知道app实现,也可以工作。
支持Activities、Dialogs、Toasts、Menus、ContextMenus和其他AndroidSDK控件。

缺点

不能处理flash和web组件。
支持Java开发。
在旧设备上会变得很慢。
由于不支持iOS设备,当自动化测试同时覆盖android与iOS的情况时,测试会被中断。
没有内置的记录和回放功能.使用记录功能需要TestDroid和RobotiumRecorder这样收费工具。

4)Frank(iOS)

Frank是一个iOSapp的自动化框架,允许使用Cucumber编写结构化英语句子的测试场景。

Frank要求测试时在应用程序内部编译,这意味着对源代码的改变是强制性的。这是一个使用Cucumber和JSON组合命令的工具,命令发送到在本地应用程序内部运行的服务器上,并利用UISpec运行命令。

优点

测试场景是在Cucumber的帮助下,用可理解的英语句子写的。
Symbiote——包含实时检查工具。
如果团队有关于webselenium和cucumber自动化框架的经验,也有效。
活跃的社区支持。
不断扩大中的库。

缺点

对手势的支持有限。
在设备上运行测试有点难。
修改配置文件需要在实际设备上运行。
记录功能不可用。

5)UIAutomator(Android)

UIAutomator是由谷歌提供的测试框架,它提供了原生Androidapp和游戏的高级UI测试。这是一个包含API的Java库,用来创建功能性UI测试,还有运行测试的执行引擎。该库自带AndroidSDK。有很多教程可供初学者上手。优点是它在运行访问不同的进程时,会给JUnit测试案例特权。虽然这对本地自动化app既好又更简单,但是它对web自动化视图非常有限或几乎没有任何支持。它仅支持使用APIlevel16及以上的设备,不过这也不算什么很大的因素,因为现在大多数的app支持APIlevel19及以上。

优点

简单易学的教程。
库由谷歌社区支持和维护。
第三方支付集成了基于云计算的测试管理。

缺点

仅支持android4.1及以上。
不支持脚本记录。
支持的重点是Java。
你不能获得当前活动或仪表化。
目前不支持web视图,因此是混合app。
库支持使用Java,因此如果有人想和使用Ruby的cucumber混合,会很困难。不过Java有它自己的BDD框架,虽然在实践中用到的也不多。

成都it培训哪家好,当然是成都达内培训,成都达内是一家专业的程序员培训机构,专注于成都java培训,成都ios培训,成都android培训,成都C++培训,成都PHP培训,成都IT培训,成都编程培训等IT培训,专业的成都软件培训机构,专业师资授课,真实项目实战、零首付、低押金、名企就业

(责任编辑:成都达内)

CopyRight © 2002-2016 成都达内科技职业技能培训学校 (www.cdtedu.com) 版权所有 成都达内 川公网安备 51019002000307号 网站地图