iOS自动化UI测试——KIF使用分享

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #78492a }
span.s1 { }

Test Like a User!

  • 演示自动化UI测试样例

演示秒到版,全流程一条线测试下来,注册--登录--实名认证--信用卡认证--添加收款器--刷卡收款

  • 介绍KIF

KIF的全称是Keep it functional。它是一个建立在XCTest的UI测试框架,通过accessibility来定位具体的控件,来操作UI。

  • 导入KIF

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #272ad8 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #ba2da2 }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { font: 14.0px "PingFang SC" }
span.s4 { color: #ba2da2 }
span.s5 { color: #272ad8 }

target ‘会员宝秒到版Tests‘ do

#    3.5.2

pod ‘KIF‘, :configurations => [‘Debug‘]

end

  • 写测试用例和讲解常用方法

UI组件给自己的accessibilityLabel属性赋值,例如:self.nameTextF.accessibilityLabel = @"nameTextF";

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #31595d }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; min-height: 16.0px }
span.s1 { color: #000000 }
span.s2 { color: #78492a }
span.s3 { }
span.s4 { color: #d12f1b }

[tester tapViewWithAccessibilityLabel:@"liJiZhuCeBtn"];

[tester enterText:@"19902030220" intoViewWithAccessibilityLabel:@"phoneNumField"];

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #31595d }
span.s1 { color: #000000 }
span.s2 { color: #78492a }
span.s3 { }
span.s4 { color: #d12f1b }
span.s5 { font: 14.0px "PingFang SC"; color: #d12f1b }

[tester clearTextFromAndThenEnterText:@"邓超界" intoViewWithAccessibilityLabel:@"jieSuanZhangHuText"];

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #31595d }
span.s1 { color: #000000 }
span.s2 { color: #78492a }
span.s3 { }
span.s4 { color: #272ad8 }
span.s5 { color: #008400 }
span.s6 { font: 14.0px "PingFang SC"; color: #008400 }

[tester waitForTimeInterval:15];// 手动输入验证码

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #31595d }
span.s1 { color: #000000 }
span.s2 { color: #78492a }
span.s3 { }
span.s4 { color: #d12f1b }

[tester waitForViewWithAccessibilityLabel:@"dengLuVC"];

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #31595d }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
span.s1 { color: #000000 }
span.s2 { color: #ba2da2 }
span.s3 { color: #78492a }
span.s4 { }
span.s5 { color: #d12f1b }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #31595d }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
span.s1 { color: #000000 }
span.s2 { color: #ba2da2 }
span.s3 { color: #78492a }
span.s4 { }
span.s5 { color: #d12f1b }

if ([tester tryFindingTappableViewWithAccessibilityLabel:@"jumpButton" error:nil]) {

[tester tapViewWithAccessibilityLabel:@"jumpButton"];

}

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #31595d }
span.s1 { color: #000000 }
span.s2 { color: #78492a }
span.s3 { }
span.s4 { color: #d12f1b }
span.s5 { color: #703daa }

[tester enterText:@"0119" intoViewWithAccessibilityLabel:@"carddateField" traits:UIAccessibilityTraitNone expectedResult:@"01/19"];

  • Tips

按钮的title、类的title,可以直接做为访问标签;textField的placeholder,可以做为访问标签,但不能改变值;

在屏幕是可以看到的,才可以访问。例如:注册按钮。

滚动视图,在屏幕不可视范围,可以响应点击。举例:实名认证中的提交审核按钮;

  • 遇到的坑

pod ‘KIF‘, :configurations => [‘Debug‘]
pod ‘KIF/IdentifierTests‘#此处错误;

造成Target Support Files和Headers文件夹内文件丢失;

  • 参考网址

http://www.cocoachina.com/ios/20170401/18995.html

http://www.oschina.net/translate/ios-ui-testing-with-kif

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #703daa }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #703daa }
span.s1 { color: #ba2da2 }
span.s2 { color: #000000 }
span.s3 { color: #4f8187 }
span.s4 { }
span.s5 { color: #d12f1b }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #703daa }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #703daa }
span.s1 { }

时间: 2024-10-06 21:25:05

iOS自动化UI测试——KIF使用分享的相关文章

EarlGrey iOS自动化UI测试(集成篇)

目前针对iOS开发,很少会有UI方面的自动化测试. 目前Xcode提供了UI Automation,UI Testing Bundle,两者的优势都是可以通过录制真实的模拟器或者真机操作自动生成测试代码.而且不需要额外环境,只是需要xcode即可.但是缺点也很明显,就是自动生成的code可执行性,和可维护性很差.页面上的细微改动,都会导致case无法正常work. EaryGrey是google提供的一套ios ui测试框架,基于Unit Testing Bundle,可以通过matcher和c

ios 性能优化之自动化UI测试

自动化UI测试 来源:http://www.cnblogs.com/chensheng12330/p/3947588.html 使用自动化工具来自动化用户界面测试你的iOS应用程序通过测试脚本编写. 这些脚本模拟用户操作通过调用UI自动化.一个JavaScript编程接口,指定要执行的动作在你的应用程序运行. 在测试过程中,系统日志信息返回给你. UI交互的自动化测试时,您免费其他工作的关键人员和资源. 这样你最小化程序错误,缩短开发产品更新所需的时间. 本章描述了如何使用仪器的自动化模板执行脚

自动化UI测试

本文翻译自:Automating User Interface Tests 水平有限自己感觉很多地方表达的并不到位,但找不到更好的表达方式,如果您觉着有更好的表达方式,帮助我改进! 自动化UI测试 UI测试可以让你确保你的App满足最基本的功能需求同时有一个高质量的标砖,这样就更容易被用户接受. 一种UI测试的方法是人工测试:一个测试人员对目标App进行一系列的操作来确保各个功能的正确性.然而,这种人工的方式是非常耗时间.单调乏味,并且很容易犯错误.更有效的方式是编写你的UI测试,比如:用户的所

Google推出iOS功能性UI测试框架EarlGrey

经过了一段时间的酝酿后,Google很高兴地宣布了EarlGrey,一款针对于iOS的功能性UI测试框架.诸如YouTube.Google Calendar.Google Photos.Google Translate.Google Play Music等多款Google应用都成功地采用了EarlGrey框架来满足其功能性测试之所需. EarlGre的特点 EarlGrey所提供的主要特性如下所示,这些特性使得应用的测试变得更加轻松,也更具效率: 强大的内建同步机制:测试会在与UI进行交互前自动

使用uiautomator做UI测试

转载~~~~~~~~~~~~~~~~~~~~~~~~ 若有侵权,请及时联系本博主,博主将第一时间撤销 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的.也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期.比如 登陆界面 分别输入正确和错误的用户名密码然后点击登陆按钮看看是否能否登陆以及是否有错误提示等. 功能性或者黑盒UI测试不需要测试人员了解程序如何实现的,只需要验证各种操作的结果是否符合预期即可.这样的

软件测试学习随笔(5) 编码的UI测试

自动化测试指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件. 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较.在此过程中,为了节省人力.时间或硬件资源,提高测试效率,便引入了自动化测试的概念. Visual Studio 2012中的自动化UI测试功能可以很轻松地测试应用程序的UI功能,利用它可以帮助你完成

编码的UI测试

Visual Studio 2012中的自动化UI测试功能可以很轻松地测试应用程序的UI功能,利用它可以帮助你完成编码的UI测试. 一.新建编码的UI测试项目 在visual studio 2012中,点击文件->新建->项目,在其他语言中选择C#,点击测试,选择编码的UI测试项目点击确定. 二.录制UI测试操作 新建测试项目之后,选则录制操作,出现编码的UI测试生成器: 之后进行录制: 点击“开始录制”,打开浏览器,这里打开的是http://channel9.msdn.com/Series/

[zhuan]使用uiautomator做UI测试

http://blog.chengyunfeng.com/?p=504 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的.也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期.比如 登陆界面 分别输入正确和错误的用户名密码然后点击登陆按钮看看是否能否登陆以及是否有错误提示等. 功能性或者黑盒UI测试不需要测试人员了解程序如何实现的,只需要验证各种操作的结果是否符合预期即可.这样的测试可以分离团队的开发人员和测

用visual studio ultimate 2013进行编码的UI测试

Visual Studio的自动化UI测试功能可以很轻松地测试应用程序的UI功能,利用它可以帮助你完成编码的UI测试. 步骤: 1.新建编码的UI测试项目. 点击文件->新建->项目,在其他语言中选择C#,点击测试,选择编码的UI测试项目点击确定. 2.录制UI测试操作 新建测试项目之后,选则录制操作,出现编码的UI测试生成器: 之后进行录制: 点击“开始录制”,然后对你想要测试的UI界面进行操作,UIMap就会录制你的操作:点击播放视频,再点击生产代码,对刚才的测试操作命名,就可以生成测试代