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

目前针对iOS开发,很少会有UI方面的自动化测试.

目前Xcode提供了UI Automation,UI Testing Bundle,两者的优势都是可以通过录制真实的模拟器或者真机操作自动生成测试代码.而且不需要额外环境,只是需要xcode即可.但是缺点也很明显,就是自动生成的code可执行性,和可维护性很差.页面上的细微改动,都会导致case无法正常work.

EaryGrey是google提供的一套ios ui测试框架,基于Unit Testing Bundle,可以通过matcher和condition,matcher确保能够拿到页面元素,condition通过条件判断确保case执行成功.

EaryGrey集成有两种方式,一种是通过cocoapods,一种是github下载源码自己编译framework添加依赖

源码地址:https://github.com/google/EarlGrey

EaryGrey集成:

1.在已有需要测试的项目中新建测试target,选择"iOS Unit Testing Bundle".

2.新建Target导入EarlGrey.framework(本文使用自己编译的framework)

3.新建Target,Build Phases>Add New Copy File Phases(参考图片)

4.新建Scheme,Product>Scheme>New Scheme,target选择新建的test

5.编辑Scheme,Product>Scheme>Manager Schemes,刚才新建的scheme选择Shared

6.编辑原有Target Scheme

   Key: `DYLD_INSERT_LIBRARIES`
   Value:`@executable_path/EarlGrey.framework/EarlGrey`

7.测试target新建testcase

- (void)testExample {
 [[EarlGrey selectElementWithMatcher:grey_keyWindow()]
     assertWithMatcher:grey_sufficientlyVisible()];
}

8.Command+U执行测试

如何自动测试?

xcodebuild test -scheme xxx -project xxx.xcodeproj -configuration Debug -sdk iphonesimulator -destination ‘platform=iOS Simulator,name=iPhone 6,OS=9.3‘ > test_ios.log | tail -f test.log

xcodebuild终端命令执行unit test.这样就可以定时执行,并且统计输出日志.

EarlGrey是一套较为完整的UI自动测试解决方案,以前UI测试过于依赖人工.这种自动化测试方式将会会大大提高效率.

时间: 2024-08-01 10:44:48

EarlGrey iOS自动化UI测试(集成篇)的相关文章

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来定位具体的控件,来操作U

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进行交互前自动

iOS开发——UI精选OC篇&UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍

UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道,单例在应用程序的整个生命周期中只有一个对象). App的启动过程 打开程序之后-> 1:Main函数 2:UIapplicationMain函数 3:初始化UIApplication(创建) 4:设置UIApplication代理和相应的代理属性 5:开启事件循环,监听系统事件 6监测info.p

iOS开发——UI高级OC篇&自定义控件之调整按钮中子控件(图片和文字)的位置

自定义控件之调整按钮中子控件(图片和文字)的位置 其实还有一种是在storyBoard中实现的,只需要设置对应空间的左右间距: 这里实现前面两种自定义的方式 一:imageRectForContentRect/titleRectForContentRect 自定义一个按钮控件在系统自带的位置设置方法中实现对应子控件位置调整 1 /** 2 3 * 设置内部图标的frame 4 5 */ 6 7 - (CGRect)imageRectForContentRect:(CGRect)contentRe

iOS开发——UI高级Swift篇&swift简单总结tableView

swift简单总结tableView 今天来总结一个很简单的问题,真心说出来丢脸,但是由于本人在写swift项目的时候总是发现Xib不能加载,而且不止一次,所以就简单的总结一下! 一:简单的使用缓存池 1.设置StoryBoard中cell的ID 2.在控制器的Cell中就可以直接使用ID创建了 1 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UI

使用uiautomator做UI测试

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

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

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