通常我发现几乎所有我最重要的iPhone开发测试用例都围绕UI测试而不是业务逻辑或数据测试.我不太熟悉XCode环境中的自动化UI测试.有人可以指点一个好的教程或书吗?

UPDATE
这个问题是几年前写的,UI测试从那以后已经走了很长的路.使用UI自动化仍然是一个选择,但KIF Framework是现在功能测试的更好的解决方案,IMO.

从KIF的github页面:

KIF,which stands for Keep It Functional,is an iOS integration test
framework. It allows for easy automation of iOS apps by Leveraging the
accessibility attributes that the OS makes available for those with
visual disabilities.

KIF builds and performs the tests using a standard XCTest testing
target. Testing is conducted synchronously in the main thread (running
the run loop to force the passage of time) allowing for more complex
logic and composition. This also allows KIF to take advantage of the
Xcode 5 Test Navigator,command line build tools,and Bot test
reports.

解决方法

您最好的选择是使用iOS 4.0发布的UI自动化仪器.这可以脚本来测试用户界面的许多方面.

苹果在WWDC 2010会议306的视频(“用仪器自动化用户界面测试”)中为该工具提供了一个很好的介绍.我演示了如何在视频中设置脚本并在我的高级iOS开发课程on iTunes U的“测试”会话中进行测试.我可以在here中找到我从该课程中介绍的UI Automation的注释,包括示例脚本.

此外,您可能需要查看James Turner的文章“How to use UIAutomation to create iPhone UI tests”和Alex Vollmer的“Working with UIAutomation”.

ios – 有可可触摸自动UI测试的好教程吗?的更多相关文章

  1. ios – 超时等待120秒的模拟器启动

    看起来像Teamcity代理(TC版本是9.0EAP)不能通过测试shell脚本运行iOS模拟器.我正在使用BuildStep:命令行,它运行自定义脚本并将参数传递给它.通过使用shell脚本../bin/mac.launchd.sh,在MacOSXYosemite10.10上启动了Teamcity代理.构建日志错误:我的shell脚本进行测试:我也试过从这个question的解决方案,但没有帮助

  2. 只需20行代码就可以写出CSS覆盖率测试脚本

    短短20行代码,就可以写一个CSS覆盖率测试脚本,需要的朋友参考下

  3. windows – 如何在运行批处理文件时防止程序(.exe)失败的错误弹出消息框

    ..ClickonOKtoterminatetheprogramClickonCANCELtodebugtheprogram结果是已知的–脚本执行阻止,直到某人按下“确定”按钮.当我们谈论可能在某些无头虚拟机中自动运行的自动脚本时,可能会出现问题.有没有一种简单的方法来防止这种行为,只是让应用程序退出失败代码–而不更改程序本身的代码?当DLL丢失时,这并不能解决问题,但这种情况非常罕见,这对我来说已经足够了.

  4. windows – 如何打破某人进行测试?

    好.我们的产品有效.Beta测试人员实际上正在完成他们的工作.下一次迭代的时间.但如何保证质量?我们需要一个测试员!我如何让新鲜的人在街上开始测试?我不知道如何自己做!你为什么要找“街上的人”?对我来说,这听起来有点像“我想聘请一位新程序员,如何让某人离开街头让他加快编程我的软件?”.你为什么要这样做,而不是雇用一个已经是程序员的人呢?

  5. windows – Jenkins:运行远程测试脚本和报告结果

    你们所有人的指示?

  6. php-cli输出而不是执行

    我使用Debian测试,我已经安装PHP-cli,当我尝试执行一个PHP脚本时,输出源代码而不是执行它.例:任何想法如何解决这个问题,我尝试重新安装和清除没有结果.在PHP.ini文件中找到以下行:short_open_tag=关闭并将其更改为:short_open_tag=开

  7. php – 有人可以给我一些基本的XSS和sql注入脚本吗? (不是什么似乎)

    我正在测试我的脚本,看看他们是否会阻止xss和sql注入.有人可以为我提供一些基本但是很好的脚本,这些脚本会“骇客”到我的程序中.我想在我的脚本上线之前测试我的脚本.编辑:感谢所有这些链接,它们包含负载和负载信息.但是对于初学者来说,安全性是否有推荐的网站呢?

  8. 为什么使用PHPUnit比创建自己的测试脚本更好?

    PHPUnit有2MB的文件,其中包含大量的类.此外,PHPUnit只从命令行运行:(不创建我自己的脚本是一个更好的主意吗?PHPUnit是一个野兽.它很大,有时候反直觉,它有它的缺点.您的代码–自然–直观,完美无缺,满足您的直接要求.我也经常思考,如果编写自己的测试框架不是一个进步,但是……

  9. windows-server-2003 – 寻找在服务器上安装和配置SNMP的自动方法

    我有一个拥有30台Windows服务器的环境.我们现在正在研究监控解决方案,但我们需要首先考虑的是安装SNMP并配置每台服务器.我希望有一种方法可以让我们远程进行集中管理,所以如果我们以后更改社区字符串或服务器来发送陷阱,那么这可能是一个简单的改变.您对我如何能够进行此过程有什么建议吗?我可以申请GPO来实现这一目标吗?

  10. Windows:复制正在编写的文件?

    会复制抛出错误吗?

随机推荐

  1. iOS实现拖拽View跟随手指浮动效果

    这篇文章主要为大家详细介绍了iOS实现拖拽View跟随手指浮动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. iOS – genstrings:无法连接到输出目录en.lproj

    使用我桌面上的项目文件夹,我启动终端输入:cd然后将我的项目文件夹拖到终端,它给了我路径.然后我将这行代码粘贴到终端中找.-name*.m|xargsgenstrings-oen.lproj我在终端中收到此错误消息:genstrings:无法连接到输出目录en.lproj它多次打印这行,然后说我的项目是一个目录的路径?没有.strings文件.对我做错了什么的想法?

  3. iOS 7 UIButtonBarItem图像没有色调

    如何确保按钮图标采用全局色调?解决方法只是想将其转换为根注释,以便为“回答”复选标记提供更好的上下文,并提供更好的格式.我能想出这个!

  4. ios – 在自定义相机层的AVFoundation中自动对焦和自动曝光

    为AVFoundation定制图层相机创建精确的自动对焦和曝光的最佳方法是什么?

  5. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  6. ios – 在没有iPhone6s或更新的情况下测试ARKit

    我在决定下载Xcode9之前.我想玩新的框架–ARKit.我知道要用ARKit运行app我需要一个带有A9芯片或更新版本的设备.不幸的是我有一个较旧的.我的问题是已经下载了新Xcode的人.在我的情况下有可能运行ARKit应用程序吗?那个或其他任何模拟器?任何想法或我将不得不购买新设备?解决方法任何iOS11设备都可以使用ARKit,但是具有高质量AR体验的全球跟踪功能需要使用A9或更高版本处理器的设备.使用iOS11测试版更新您的设备是必要的.

  7. 将iOS应用移植到Android

    我们制作了一个具有2000个目标c类的退出大型iOS应用程序.我想知道有一个最佳实践指南将其移植到Android?此外,由于我们的应用程序大量使用UINavigation和UIView控制器,我想知道在Android上有类似的模型和实现.谢谢到目前为止,guenter解决方法老实说,我认为你正在计划的只是制作难以维护的糟糕代码.我意识到这听起来像很多工作,但从长远来看它会更容易,我只是将应用程序的概念“移植”到android并从头开始编写.

  8. ios – 在Swift中覆盖Objective C类方法

    我是Swift的初学者,我正在尝试在Swift项目中使用JSONModel.我想从JSONModel覆盖方法keyMapper,但我没有找到如何覆盖模型类中的Objective-C类方法.该方法的签名是:我怎样才能做到这一点?解决方法您可以像覆盖实例方法一样执行此操作,但使用class关键字除外:

  9. ios – 在WKWebView中获取链接URL

    我想在WKWebView中获取tapped链接的url.链接采用自定义格式,可触发应用中的某些操作.例如HTTP://我的网站/帮助#深层链接对讲.我这样使用KVO:这在第一次点击链接时效果很好.但是,如果我连续两次点击相同的链接,它将不报告链接点击.是否有解决方法来解决这个问题,以便我可以检测每个点击并获取链接?任何关于这个的指针都会很棒!解决方法像这样更改addobserver在observeValue函数中,您可以获得两个值

  10. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

返回
顶部