Athrun框架详解:iOS自动化测试的利器

5星 · 超过95%的资源 需积分: 10 3 下载量 47 浏览量 更新于2024-07-22 收藏 1.61MB PPTX 举报
"arthrun-ios简介 - 一个自动化测试框架,专注于解决无线测试问题,支持Android和iOS设备,致力于让手机自动化运行。" 本文将详细介绍arthrun这一自动化测试框架在iOS平台上的应用和发展历程。arthrun的目标是通过自动化手段解决无线测试中的各种挑战,它被定位为一个无线自动化测试框架/平台。该框架不仅适用于Android系统,同样对iOS提供全面支持,其口号“让手机run起来!”体现了其核心理念。 在iOS平台上,arthrun的发展经历了多个阶段。起初,它采用了AthrunInstrumentDriver,这是一个基于Objective-C的框架,通过利用`didFinishLaunchingWithOptions`方法来构造控件树,并模拟触摸事件。这种方式的优点在于它能适应iOS的各个版本,且Objective-C语言与开发紧密相关,使得开发者更容易上手。然而,这种方案也存在一些困难,如需要修改开发代码,以及在运行下一个测试用例之前,需要手动回到应用首页。此外,Objective-C对于测试人员的学习成本也是一个挑战。 接下来,arthrun尝试了使用UIAutomation,这是一个内置于Xcode的工具,可以实现录制和非注入式的自动化测试。UIAutomation的优势在于其录制功能,但缺点也很明显,仅支持iOS 4.0以上版本,且操作稳定性欠佳。arthrun团队对UIAutomation进行了扩展,包括增加操作和校验功能,以及将日志转换为Hudson报告。尽管如此,UIAutomation仍然存在诸如难以维护的录制脚本、低级错误的高排错成本以及无法进行单步调试等问题。 为了解决这些困扰,arthrun进一步发展到InstrumentDriver阶段。InstrumentDriver是一个基于Java的解决方案,采用JUnit方式运行测试用例,提供了自动语法检查和智能感知功能,使得断点单步调试和变量查看变得更为便捷。此外,InstrumentDriver更便于持续集成和数据准备,极大地优化了测试流程。它的API设计面向UI对象,支持数组,并且与UIAutomation兼容,这意味着可以使用录制的脚本直接运行。例如,通过`UIATarget.localTarget().frontMostApp().mainWindow()`,我们可以获取到应用的主窗口进行进一步的操作。 在测试代码编写方面,arthrun提供了简洁的示例,如`@Test public void Demo1() throws Exception{ win... }`,这展示了如何在JUnit测试方法中调用并执行相关的自动化测试操作。 arthrun-iOS是一个强大的自动化测试框架,旨在提升iOS应用的测试效率和质量,通过不断迭代和优化,它提供了更高效、稳定的自动化测试环境,帮助开发者和测试人员克服在无线测试中遇到的各种难题。