iOS自动化UI测试——KIF使用小样

来源:互联网 发布:外汇模拟软件 编辑:程序博客网 时间:2024/05/18 03:09

KIF的神奇之处在于,它允许您从单元测试中驱动您的UI,并获得在测试过程中的所有优势。

 

代表Keep It功能的KIF是一个iOS集成测试框架。它可以通过利用操作系统为视觉障碍者提供的辅助功能属性轻松自动化iOS应用程序。

KIF使用标准XCTest测试目标构建并执行测试。测试在主线程中同步进行(运行运行循环以强制时间的流逝),从而允许更复杂的逻辑和组合。这也允许KIF利用Xcode Test Navigator,命令行构建工具和Bot测试报告。

KIF使用无证件的Apple API。大多数iOS测试框架都是如此,并且对于测试目的而言是安全的,但重要的是KIF不会将其转化为生产代码,因为它会让您的应用程序提交被Apple拒绝

特征

最小化间接

KIF的所有测试都写在Objective-C中。这允许与代码最大化集成,同时最小化您必须构建的层数。

轻松配置

KIF直接集成到您的Xcode项目中,因此无需运行其他Web服务器或安装任何其他软件包。

宽操作系统覆盖

KIF的测试套件已经针对iOS 8.1及以上版本运行,但较低版本可能会运行。

像用户一样测试

KIF试图模仿实际的用户输入。尽可能使用tap事件完成自动化。

自动集成Xcode测试工具

您可以轻松地使用Test Navigator进行单个KIF测试,或者使用Bots开始每晚的验收测试。

安装(与CocoaPods)

CocoaPods是使用KIF设置的最简单的方法。

您将要做的第一件事是设置您将用于KIF的测试目标。如果您选择自动创建单元测试,您可能已经有一个名为MyApplication_Tests的命令。如果你这样做,你可以继续使用它,如果你不使用它进行单元测试。否则,请按照以下说明创建新的。

在Xcode中选择您的项目,然后点击编辑器左下角的“添加目标”。选择iOS - >测试 - > iOS单元测试包。给它一个产品名称,如“验收测试”,“UI测试”,或表明您的测试过程的意图。

测试目标将添加一个标题和实现文件,可能“Acceptance_Tests.m / h”来匹配您的目标名称。删除那些。

设置测试目标后,将以下内容添加到您的Podfile文件中。根据需要使用您的目标名称。

终端 进入目录

  target 'ettAiXuePaiNextGen' do

    pod ...

  end

  target 'ettAiXuePaiNextGenTests' do

   pod 'KIF', '~> 3.0', :configurations => ['Debug']

  end

 

设计实现单个测试用例步骤如下:

  • a. 设置测试所需要的环境;
  • b. 测试用例的测试逻辑;
  • c. 恢复App至此次测试前状态。
1 设置标识


2.建立测试文件



  3.在大多数测试中测试者的行动已经由KIF框架中定义的,但-navigateToLoginPage-returnToLoggedOutHomeScreen没有。这些是您的应用程序特有的自定义操作的示例。添加这样的步骤很容易,并且使用KIFUITestActor类似于我们添加方案的类别的工厂方法来完成

@interface KIFUITestActor (EXAdditions)
- (void)navigateToLoginPage;
- (void)returnToLoggedOutHomeScreen;
@end


#import "KIFUITestActor+EXAdditions.h"

@implementation KIFUITestActor (EXAdditions)
- (void)navigateToLoginPage
{
    //首先清理内容
    [self enterText:@"" intoViewWithAccessibilityLabel:@"userNameTextField"];
    [self enterText:@"" intoViewWithAccessibilityLabel:@"passwordTextField"];
    //点击记住
    [self tapViewWithAccessibilityLabel:@"remberUserButton"];

}

- (void)returnToLoggedOutHomeScreen
{
    //点击一个元素
    [self tapViewWithAccessibilityLabel:@"remberUserButton"];
    [self tapViewWithAccessibilityLabel:@"loginButtonView"];

}
@end

       测试视频:https://pan.baidu.com/s/1c11LHc8


       https://github.com/kif-framework/KIF

       https://zhuanlan.zhihu.com/p/22283843

原创粉丝点击