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的源码来分析它的实现方式。



原文链接

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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值