KIF框架在IOS输入法测试中的应用

什么是KIF?

KIF,是一个开源的用户界面测试框架。使用KIF,并利用IOS中的辅助功能API,你将能够编写模拟用户输入,诸如点击,触摸和文本输入,这样的测试将给予你的应用自动化的,真实的用户界面操作。当然,它的作用不仅仅局限于UI测试这么简单,本文将介绍KIF框架的简单使用以及优缺点,不会介绍如何配置工程等内容,如果想深入了解,可访问https://github.com/kif-framework/KIF

如何通过KIF来进行测试?

  • 测试前的准备

首先我们需要创建一个测试类继承自KIFTestCase,

IOS单元测试经验的朋友应该熟悉XCTest框架,KIFTestCaseXCTestCase的一个子类. 那意味着你拥有了大部分的标准XCTest测试方法和机制可以使用。

  • 几个重要的方法

IOS中的辅助功能API

设置控件的可访问标签:通过设置accessibilityLabel属性利用系统API可以达到识别控件的目的,举个例子,比如说我们要点击一个button,那么要确保这个buttonisAccessibilityElement属性为YES,并且为buttonaccessibilityLabel设置参数。

KIFTestCase类(只介绍几种常用的方法):

BeforeAll:实际上只在所有testCase运行之前被调用一次的特殊方法. 你可以为你这里运行的测试设置初始化条件.

AfterAll:只在所有testCase运行之后被调用一次的特殊方法,你可以在这里为你的测试重置状态。

tapViewWithAccessibilityLabel:它通过可访问标签来识别控件,模拟在视图上的触击. 在大多数情况下,可访问标签都是匹配诸如按钮这种组件的可视的文本标签,获取的方法如下图所示;如果某个控件没有设置可访问标签,可通过上文提到的方式来获取。

一些控件,诸如 UISwitch,相较而言更加复杂. KIF 提供了一个特殊的

setOn:forSwitchWithAccessibilityLabel: 方法来改变一个切换的状态。

tapViewAtPoint:是KIF提供的UIView分类中的一个方法,使用它的前提是得到目标控件,它会点击控件的指定坐标点,如[button tapViewAtPoint:CGPointMake(x,x)]

  • 在输入法测试中的应用:

以测试细胞词库的下载为例:

点击词库:

[tester tapViewWithAccessibilityLabel

@“词库”]

点击细胞词库按钮:

[tester tapViewWithAccessibilityLabel

@“细胞词库,个性化定制你的词库”]

点击下载按钮:

[tester tapViewWithAccessibilityLabel

@“下载”]

完整的效果:

KIF的优缺点:

优点:

1、使用起来很简单,对于UI测试来说,可以大幅度提高测试效率;

2、我们在测试中很容易遇到一种情况:在测试某个函数时,外部依赖条件很难构造。这时候我们可以通过这种方法,使待测函数到达某个状态,然后进行后续的测试。对于代码中一些经常变动的部分,我们如果完全从白盒角度去编写单元测试case,可能会很容易失效且难以维护,这时候可以考虑使用这种方法。

缺点:

1、提供的可用API较少,且一些API的使用前提是利用IOS的辅助API,如果我们的待测程序中没有设置可访问标签的话,只能通过修改源码或添加category来实现。

考虑到KIF是一个开源的框架,我们完全可以分析它的实现源码,来封装适合我们测试一些API,在之后的文章中,会针对KIF的源码来分析它的实现方式。



原文链接

如需转载该篇文章,请注明来自“搜狗测试”


iOS集成测试框架kif-framework,源码kif-framework,KIF的全称是“Keep It Functional”,是一款iOS集成测试框架,来自square。KIF使用了苹果非公开的API,很多iOS测试框架都使用了非公开API,出于测试目的还是安全的,KIF并不使用非公开的API生成代码,所以苹果不会拒绝你的应用。 注意: KIF 2.0并不兼容KIF 1.0,并且使用了不同的测试执行机制。 功能: 1.KIF用Objective C写成,最大化集成代码的同时还可以最小化层级数目。 2.配置简单。KIF可直接集成进你的Xcode项目,无需运行额外的网络服务器或者安装任何额外的包。 3.OS覆盖范围广泛。KIF测试套件可以运行iOS 5.1以上系统,甚至更低Testing Framework的版本也能运行。 4.向用户一样进行测试KIF可以模仿用户的输入,点击事件等。 5.可自动集成Xcode 5测试工具。 KIF iOS Integration Testing Framework KIF, which stands for Keep It Functional, is an iOS integration test framework. It allows for easy automation of iOS apps by leveraging the accessibility attributes that the OS makes available for those with visual disabilities. KIF builds and performs the tests using a standard ocunit testing target. Testing is conducted synchronously in the main thread (running the run loop to force the passage of time) allowing for more complex logic and composition. This also allows KIF to take advantage of the Xcode 5 Test Navigator, command line build tools, and Bot test reports. Find out more about Xcode 5 features. KIF uses undocumented Apple APIs. This is true of most iOS testing frameworks, and is safe for testing purposes, but it is important that KIF does not make it into production code, as it will get your app submission denied by Apple. Follow the instructions below to ensure that KIF is configured correctly for your project. Note: KIF 2.0 is not API compatible with KIF 1.0 and uses a different test execution mechanism. KIF 1.0 can be found in the Releases section or on CocoaPods.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值