澳门新葡亰信誉平台游戏iOS测试与集成工具总结

by admin on 2020年3月30日

最近 Google 在帮助开发者提升 App
可用性上可谓是动作频频,不只发布了无障碍技术指导方案,成立无障碍支援团队,近日还在博客上宣布开源 iOS 专用的自动化测试框架
GTXiLib ,以帮助开发者打造无障碍 App 。

Giovanni
Lodi是来自澳大利亚的一名iOS开发者,最近他总结了iOS平台上单元测试、验收测试的工具,分析了它们的优缺点,以及支持iOS
App的持续集成平台。

澳门新葡亰信誉平台游戏 1

GTXiLib 采用 Objective-C 编写,能与现存的 XCTest 测试框架整合,并在
XCTest 结束调用 tearDown 前,执行所有注册的可用性检查。当 GTXiLib
检测失败时,XCTest
的测试也会失败,两者相辅相成,能够更好地修补和发现问题。

苹果官方工具

向自己的应用中添加第三方库是一件需要谨慎而行的事情,因为也许在不久的将来,这些库可能会停止开发,那么到时,当使用这些库遇到问题,却没了任何支持,会是一件很悲催的事情。所以,这里向大家介绍的是,在iOS应用开发中最常使用,而又有信心会继续开发和支持很长一段时间的第三方库,希望能够对你的开发工作有所帮助。1.
CocoaPods是不是已经厌烦了将各种库拖拽到Xcode项目中?那么,CocoaPods的出现就帮你解决了这一问题。CocoaPods是Objective-C项目中最有名的类库管理工具,可以解决库与库之间的依赖关系,下载库的源码,供我们开发使用。最重要的是,大多的开源类库都支持它。所以,有了CocoaPods,你就可以很轻松地对项目进行扩展。2.
CrashlyticsCrashlytics是一款用于检测你开发的应用,何时在客户端设备上崩溃,并能找出其崩溃原因以及帮助开发者修复应用的工具。Crashlytics既免费又方便使用,另外,还内置一些基础的分析功能,让你无需总要依赖其他独立的分析工具。3.
AFNetworking/AlamofireAFNetworking和之前文章中提到的Alamofire一样,是一个网络库,不同的是,Alamofire是用于Swift中,而AFNetworking则是为Objective-C准备的。AFNetworking是建立在Foundation
URL Loading
System之上,拥有一个精心设计的模块化架构,以及功能丰富的API,使用起来很是方便。4.
Google
Analytics、Mixpanel、Localytics通常情况下,当需要分析用户使用应用的各方面数据时,会在Google
Analytics、Mixpanel和Localytics之间权衡。Google
Analytics可以用来跟踪和统计应用程序,如访问数、停留时间、跳出率等;Mixpanel则是为大家提供公式化和分类类报告,从而给出详细的数据分析;而Localytics提供的是实时地分析服务,帮助开发者更好的理解用户。至于选择哪一个,可以根据自己的需求来判定。5.
Urban Airship当需要向应用中添加推送通知时,Urban
Airship会是一个不错的选择,不过这个是在它还是免费的时候。所以,当你是在为自己或是小的客户端构建应用时,你可以使用Parse和Mixpanel来取代Urban
Airship。不过如果是为那些有能力出钱的大客户开发应用的话,Urban
Airship还是首选。6. New RelicNew
Relic的移动应用监控能够很好地跟踪应用的性能问题,而无需等到应用崩溃后,再去检查问题的来源。让用户从多角度、实时地发现应用的错误,并对此进行处理。7.
ZBarZBar是一个开源的软件套件,实现了识别和读取来自各种资源的条形码,比如视频流、图像文件等。它支持众多主流的条码,其中包括EAN-13/UPC-A、UPC-E、EAN-8、Code
128、Code 39、Interleaved 2 of 5和QR Code。8. Core PlotCore
Plot是一个开源的2D绘图框架,具有高度可定制性,和Apple的技术紧密的整合,比如
Core Animation、Core Data 和 Cocoa Bindings。
可以绘制柱状图、折线图、饼图等多种图形,提供Mac OS
X和iOS下的组件库,基本可以满足你大部分的绘图需求。

GTXiLib 可用于:

XCTest是苹果在iOS
7和Xcode5引入的一个简单而强大的测试框架,它的测试编写起来非常简单,并且遵循xUnit风格。XCTest的优点是与Xcode深度集成,有专门的Test导航栏,但因为受限于官方测试API,因此功能不是很丰富。

  • 重用测试: GTXiLib
    集成整合到现有的功能测试流程中,能大幅提升现有测试价值。

  • 增量可访问性测试: GTXiLib
    可安装在单一测试用例、测试类或测试的特定子集上,以允许灵活地增加可访问性测试。

  • 编写属于自己的检查: GTXiLib 有一个简单的 API
    来根据你的应用的特定需求创建自定义检查。比如,可以检测应用中的每一个按钮是否都具备
    accessibilityHint 属性。

UIAutomation是苹果提供的UI自动化测试框架。测试使用Javascript编写,但是使用起来有些乏味。

Google 还表示,为了改进 GTXiLib ,该框架会收集一些使用数据上传至 Google
Analytics ,像是测试应用通过或失败的状态,以及应用绑定 ID的 MD5
哈希值,这些信息会让 Google 知道 GTXiLib
的使用情况。若是用户不愿意,则可以选择添加代码片段来停用 Google
Analytics 。

苹果对持续集成的支持,则体现在Xcode
Bots上。我们能配置Xcode
Bots来设置触发器,来替我们运行测试或自动将代码上传到服务器上。

(文/开源中国)    

单元测试的开源库

在开源社区里,大家对新事物接受得很快,一些好的东西也经常病毒性的扩散。iOS开源社区也是这样,比如,它的测试编写趋势是使用xSpec风格,这是从Ruby测试库RSpec借鉴而来的。

Kiwi是对XCTest的一个完整替代,使用xSpec风格编写测试。Kiwi带有自己的一套工具集,包括expectations、mocks、stubs,甚至还支持异步测试。

Specta与Kiwi功能相似,但在架构上非常不同。Kiwi注重功能的整合,而Specta则注重模块化。它本身只专注于运行测试,而将模拟、匹配等功能交给第三方。下面这些一些开源测试组件,它们能与Specta和Kiwi框架搭配使用:

Expecta:匹配程序框架。

OCHamcrest:匹配程序框架。

OCMock:模拟测试框架。

OCMockito:模拟测试框架。

OHTTPStubs:模拟网络请求的库,基于block的语法来匹配URL。

Nocilla:模拟网络请求的库,使用链式API。

Quick是一个使用Swift开发的新测试框架,对测试使用Swift编写的App非常友好。它还有一个Nimble库用于编写匹配模式。

验收测试的开源库

KIF(Keep
It Functional)是用Objective-C编写的用户界面测试框架。KIF
tester使用了私有API来了解App中的视图层级。缺点是运行较慢。

Subliminal是另一款与XCTest集成的框架。与KIF不同的是,它基于UIAutomation编写,旨在对开发者隐藏UIAutomation中一些复杂的细节。不过它最后更新日期是2014年2月,可能已停止更新。

Calabash是跨平台开发工具Xamarin推出的一款测试工具。它使用BDD风格来编写验收测试。它的优点是支持跨平台(需使用不同的库),声明式的测试风格非常易于读写。缺点是不够稳定并且运行速度慢。

持续集成平台

这里列出的持续集成工具都是基于云平台的,因为自己搭建类似Jenkins这样的持续集成环境代价高昂。

下面的列表是目前支持iOS的主流CI平台。

Travis CI

Ship.io

Sauce Labs

Bitrise

Testdroid

它们间的不同在于价格、配置工作,以及上手难易程度。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图