美文网首页
iOS UI自动化测试框架KIF简单使用

iOS UI自动化测试框架KIF简单使用

作者: 遗忘的黑鹰 | 来源:发表于2018-02-05 18:22 被阅读171次

    前言

    iOS自动化测试一直不如Android的方便,最近没事看简单看了下,分别基本使用了一下自动化框架QuickKIF,做一些简单的介绍。

    配置

    • 必须将Target设置为Unit Test,根据GitHub官方说明
    • 查看GitHub的ReadMe,使用Cocoapod进行安装,命令如下(在Debug模式下才生效):
    pod 'KIF', :configurations => ['Debug’]
    
    • 根据Github ReadMe直接跳到Final Test Target Configurations 进行设置即可,其实如果是创建工程的时候就勾选了单元测试或UI测试,这一步Xcode是帮我们设置好了的
    • 接着跳到Use with Swift, ReadMe说需要建立bridge header,来引入KIF.h,我的实践证明是可以直接import KIF的,相反使用bridge header反而找不到KIF库。
    • Swift使用KIF需要extension以使用tester和system常用函数,代码如下:
    extension XCTestCase {
        func tester(file : String = #file, _ line : Int = #line) -> KIFUITestActor {
            return KIFUITestActor(inFile: file, atLine: line, delegate: self)
        }
    
        func system(file : String = #file, _ line : Int = #line) -> KIFSystemTestActor {
            return KIFSystemTestActor(inFile: file, atLine: line, delegate: self)
        }
    }
    

    更多请其他的操作参考官方GitHub ReadMe

    accessibilityLabel设置

    • KIF是通过苹果的辅助功能,即accessibilityLabel进行的TabBarController中的TabBarItem设置accessibilityLabel就是他的Bar Item Title,如图:


      image.png
    • 其他的原生控件,如果是使用Storyboard或xib的Interface builder,则可以直接添加,如图:


      image.png
    • 某些控件在Interface Builder中并没有对应设置accessibilityLabel的地方,它可能是隐藏在了苹果辅助功能的API之下,如TableView,如果你要启用它的accessibilityLabel辅助功能,可以通过代码添加,代码如下:

    [self.tableView setAccessibilityLabel:@"History List"];
    [self.tableView setIsAccessibilityElement:YES];
    

    使用Tip

    • 注意测试方法以test命名开始,并按照指定排序进行,如test01 —> test02 … 非test开始的命名测试不会走,适合在自定义方法时使用

    • 对于专门为测试服务的accessibilityLabel设置,在代码中使用#ifdef DEBUG …  #endif来包裹,因为这些代码对你的APP正常运行没有直接管理,仅为了测试服务

    • 按钮的title、类的title,可以直接做为访问标签

    • 如果UI组件被键盘挡住了,需要先退掉键盘;如果UI组件不在屏幕范围内,不可以访问,但是滚动视图,可以访问,且会出现在可视范围。

    • 无法访问系统自己的弹窗。例如app想定位用户,不能自动点击允许;但是app自己的弹窗,可以操作的

    写在结尾

    对iOS自动化测试研究不深,平时也很少用到,希望能够有更好的测试框架和更简易的教程出来。
    Demo地址

    相关文章

      网友评论

          本文标题:iOS UI自动化测试框架KIF简单使用

          本文链接:https://www.haomeiwen.com/subject/qfyizxtx.html