2024史上最全的 iOS 各种测试工具集锦!

引言:

随着移动互联网的兴起,APP 测试的越来越被重视!Android 系统因为自己的开源性,测试工具和测试方法比较广为流传,但是 iOS 系统的私密性,导致很多测试的执行都有点麻烦。

为了帮助大家更好的执行 iOS APP 的测试,本文为大家收集了非常全面的 iOS 测试工具,涵盖各大领域,相信对大家会有所帮助!

01、自动化测试

1、UIAutomation

UIAutomation 是苹果提供的 UI 自动化测试框架,使用 JavaScript 编写。

基于 UIAutomation 有扩展型的工具框架和驱动型的框架。扩展型框架以 JavaScript 扩展库方法提供了很多好用 js 工具,注入式的框架通常会提供一些 Lib 或者是 Framework,要求测试人员在待测应用的代码工程中导入这些内容,框架可以通过他们完成对 app 的驱动。

驱动型 UI Automation 在自动化测试底层使用了 UI Automation 库,通过 TCP 通信的方式驱动 UI Automation 来完成自动化测试,通过这种方式,编辑脚本的语言不再局限于 JavaScript。

这个工具在 iOS UI 自动化测试中使用非常广泛。

2、XCTest

XCTest 是苹果在 iOS 7 和 Xcode5 引入的一个简单而强大的测试框架,集成在 Xcode 中,用来编写测试代码。它提供了各个层次的测试。

XCTest 测试编写起来非常简单,并且遵循 xUnit 风格。Xcode 在创建工程时,会默认使用 XCTest,并且默认创建了 Unit Test(单元测试)和 UI Test(界面测试)两个 Target;

  • 其中 Unit Test 主要用于测试代码的大部分基本功能,比如绝大多数 Model 的类和方法测试,业务逻辑测试,网络接口调用测试等等。

  • UI Test 一般会考虑到用户的交互流程,模拟用户的交互操作,利用 XCTest 的 UI 记录特性来获取界面上的一些列视图元素和操作事件,然后在测试方法中触发事件。

所以这是一个可以提供各个层次的测试的框架,比如单元测试,自动化测试,性能测试等。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

3、KIF

KIF 是 Keep It Functional 项目的缩写,是一款 iOS app 功能性测试框架,来自 Square,该测试框架只支持 iOS。

另外,所有测试使用 Objective-C 语言编写,对苹果开发者来说非常容易上手,更是一款开发者广为推荐的测试工具。

KIF 使用未公开的 Apple API(私有 API),这对于测试目的而言是安全的,基于第三方 iOS UI 的单元测试框架,所以可以做项目的单元测试,也可以做 UI 集成测试。但缺点是运行较慢。

4、Frank

Frank 是 iOS 开发环境下一款实现自动测试的工具,Xcode 环境下开发完成后,通过 Frank 实现结构化的测试用例,其底层语言为 Ruby,作为一款开源的 iOS 测试工具,在国外已经有广泛的应用。但是国内相关资料却比较少。其最大的优点是允许我们用熟悉的自然语言实现实际的操作逻辑。

提供了针对 iOS 平台的功能测试能力,可以模拟用户的操作对应用程序进行黑盒测试,并且使用 Cucumber 编写测试用例,使测试用例如同自然语言一样描述功能需求,让测试以“可执行的文档”的形式成为业务客户与交付团队之间的桥梁。

  • 优点: 测试场景是在 Cucumber 的帮助下,用可理解的英语句子写的,还有活跃的社区支持,以及不断扩大中的库

  • 缺点:对手势的支持有限,所以在设备上运行测试有点难

5、Calabash-iOS

Calabash 是一个适用于 iOS 和 Android 开发者的跨平台 app 测试框架,可用来测试屏幕截图、手势和实际功能代码。Calabash 开源免费并支持 Cucumber 语言,Cucumber 能让你用自然的英语语言表述 app 的行为,实现 BDD(Behavior Driven Development,行为驱动开发)。

而 Calabash-iOS 就是一个基于 Calabash 的 iOS 的功能、自动化测试框架。

优点:

  • 有大型社区支持;

  • 列表项简单,类似英语表述的测试语句支持在屏幕上的所有动作,如滑动,缩放,旋转,敲击等

缺点:

  • 测试步骤失败后,将跳过所有的后续步骤,这可能会导致错过更严重的产品问题

  • 测试耗费时间,因为它总是默认先安装 app,需要 Calabash 框架安装在 iOS 的 ipa 文件中, 因此测试人员必须要有 iOS 的 app 源码

  • 除了 Ruby,对其他语言不友好

6、Subliminal

Subliminal 是另一款与 XCTest 集成的框架,也是个不错 iOS 集成测试框架。与 KIF 不同的是,它基于 UIAutomation 编写,对开发者隐藏 UIAutomation 中一些复杂的细节。可惜近几年没有更新了,若能支持 swift 就好了。

7、Kiwi

Kiwi 是对 XCTest 的一个完整替代,使用 xSpec 风格编写测试。Kiwi 带有自己的一套工具集,包括 expectations、mocks、stubs,甚至还支持异步测试。

它是一个适用于 iOS 开发的 Behavior Driven Development(BDD)库,有着非常漂亮的语法,优点在于其简洁的接口和可用性,易于设置和使用,可以写出结构性强易读测试,非常适合新手开发者。Kiwi 也是使用 Objective-C 语言编写,易于 iOS 开发人员上手。

8、Appium

Appium 是一个开源的、跨平台的自动化测试工具,支持 iOS、Android 和 FirefoxOS 平台。通过 Appium,开发者无需重新编译 app 或者做任何调整,就可以测试移动应用,可以使测试代码访问后端 API 和数据库。

图片

它是通过驱动苹果的 UIAutomation 框架来实现的 iOS 平台支持。开发者可以使用 WebDriver 兼容的任何语言编写测试脚本,如 Ruby,C#,Java, JS,OC, PHP,Python,Perl 和 Clojure 语言。

02、iOS 性能测试

1、Instruments

Instruments 是 Xcode 自带的,用来动态跟踪和分析 MacOS 和 iOS 代码的实用工具,以独立 APP 形式存在的工具集,包含了很多强大的检测功能:其中包括在真机和模拟器上的 APP 进行性能测试。

主要功能有:

  • 分析程序进程行为

  • 分析内存分配及释放细节

  • 查找 CPU 问题

  • 查找程序性能瓶颈

  • 检查设备相关的功能

    比如:Wi-Fi、蓝牙等

  • 查找 App 中的内存问题

    比如内存泄露(Leaked memory)、废弃内存(Abandoned memory)、僵尸(zombies)等

2、第三方 SDK

很多第三方的专门用于性能检测和用户行为、属性分析的 SDK,比如 Bugly,OneAPM,听云,Firebase Analytics,把它们接入项目可以短期内达成性能检测目标。

这些第三方的工具原理都是类似的,利用 swizzle 的方法进行 AOP(面向切面编程)处理,在关键函数之前和之后自动埋点记录上报。有的平台也支持上传符号表文件精确定位代码执行位置以及以埋点的方式手工添加日志记录。使用起来还是比较方便的,基本上引入 SDK 和相关库,在程序入口处启动检测即可。

然而使用第三方 SDK 的缺点也是非常明显的:

  • 首先是缺乏定制性,我们需要的一些指标的统计 SDK 没有,SDK 有的我们又不完全需要

  • 存在安全性问题,这些 SDK 涉及的统计数据都是 APP 的商业机密信息,对于有一定市场影响力的 APP 会有顾忌

  • 这类产品是收费的,平时自己开发个 demo 练手也不适合连这种 SDK

03、iOS 调试工具

  • Xcode

Xcode 是运行在操作系统 Mac OS X 上的集成开发工具(IDE),由 Apple Inc 开发。它是开发 macOS 和 iOS 应用程序的最快捷的方式。Xcode 具有统一的用户界面设计,编码、调试、测试,都在一个简单的窗口内完成。

另外,Xcode 也可以用来测试 APP 的时候获取 APP 的日志,分析 bug 和问题。

  • iTunes

iTunes 是苹果官方提供的一款工具,它在做 APP 测试的时候也可以提供手机 APP 日志的方法。

  • ITools

iTools 这个工具是一个第三方的 iOS 测试工具,它跟 iTune 功能类似,但是比 iTunes 工具简单一些,简单易用的界面,可以从 iTunes 的繁琐中解放。也可以提供安装、卸载、备份、获取日志等各种功能。

03、内测发布平台

  • fir.im

为开发者提供测试应用极速发布,应用崩溃实时分析、用户反馈收集等一系列开发测试效率工具服务,帮助开发者将更多精力放在产品的开发与应用的优化上。

  • 蒲公英

『蒲公英』是专为 iOS、Android 开发者提供的免费用应用内测、托管的平台,旨在解决开发者将应用分发给内测用户时的繁杂、低效的问题。

  • TestFlight

TestFlight 是苹果提供的应用测试工具,允许开发者邀请用户对应用的预发布版本进行测试,从而在应用正式发布至 App Store 前收集用户反馈。

END今天的分享就到此结束了!点赞关注不迷路!

  • 17
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 史上最全的app通用测试用例可能会包括以下几个方面的测试用例: 1. 用户界面测试: - 应用的布局和界面是否符合设计要求; - 界面是否美观、易用; - 按钮、链接和其他互动元素是否正常响应。 2. 功能性测试: - 对应用的各项功能进行测试,例如登陆、注册、查看数据、上传文件等; - 确保功能的正常运行和响应速度; - 对不同的输入参数进行测试,确保应用能够正确处理各种情况。 3. 兼容性测试: - 测试应用在不同操作系统、不同设备上的兼容性; - 确保应用在不同的手机型号和尺寸上都能正常运行。 4. 安全性测试: - 检查应用的数据传输是否加密; - 检查应用是否有足够的防护措施,例如防止SQL注入、XSS攻击等; - 检查应用是否有足够的权限管理措施,例如用户权限分配、数据保护等。 5. 性能测试: - 对应用进行负载测试,测试在大量用户同时访问时的性能表现; - 测试应用的响应速度、资源占用情况等; - 测试应用是否能够处理大量数据,例如大文件的上传下载等。 6. 可靠性测试: - 对应用进行稳定性测试,测试在长时间运行时是否会出现崩溃或资源泄漏等问题; - 测试应用是否能够正确处理异常情况,例如网络中断、服务器宕机等。 7. 用户体验测试: - 进行用户调研,了解用户对应用的使用体验、反馈和建议; - 根据用户的反馈进行优化和改进。 请注意,以上只是对app通用测试用例的简要描述,具体的测试用例会根据应用类型、功能和需求等因素进行调整和补充。 ### 回答2: 通用的APP测试用例有很多,以下列举一些常用的用例: 1. 启动测试:测试APP是否能够成功启动,包括正常启动、快速启动、错误启动等情况。 2. 用户注册与登录:测试用户注册和登录功能,包括账号密码输入正确性验证、注册登录成功与失败的提示等。 3. 界面测试:测试APP的各个界面和页面的布局、样式、交互是否正确显示和正常工作。 4. 功能测试:测试APP的各个功能,包括各个按钮、菜单、链接等功能是否可以正常使用和操作,以及是否符合用户预期。 5. 数据输入输出测试:测试APP对于用户输入的数据能否正确保存和显示,以及对于外部数据的读取和操作是否正确。 6. 权限测试:测试APP的各个功能和页面对于用户权限的控制是否正确,包括对于不同用户身份的权限限制等。 7. 网络测试:测试APP在不同网络环境下的使用情况,包括网络连接断开后的处理、数据加载速度等。 8. 异常处理测试:测试APP对于各种异常情况的处理能力,包括用户输入错误、网络异常、系统异常等情况。 9. 兼容性测试:测试APP在不同操作系统版本、不同设备型号上的使用情况,以及与其他APP的兼容性。 10. 性能测试:测试APP在不同负载情况下的性能表现,包括响应速度、占用资源等指标。 以上只是一些通用的测试用例,实际中根据APP的具体功能和特点,还需要针对性地添加其他的测试用例。测试用例的目的是为了发现APP中的问题和漏洞,提高APP的品质和用户体验。正确编写和执行测试用例可以有效提高测试效率和测试准确性。 ### 回答3: 史上最全的app通用测试用例可以按照以下几个方面进行分类:界面测试用例、功能测试用例、性能测试用例和兼容性测试用例。 首先是界面测试用例。这些测试用例主要验证app的界面设计是否合理、易用和符合用户需求。例如,验证按钮和图标的位置、颜色和大小是否符合预期、文字是否显示正确等。 其次是功能测试用例。这些测试用例主要验证app的各项功能是否正常工作,包括登录注册、搜索、下单购买、支付等。例如,验证用户能否成功登录、测试搜索功能是否准确返回结果、验证订单是否能够正常生成和支付等。 第三是性能测试用例。这些测试用例主要验证app在不同负载下的性能表现,包括响应时间、吞吐量和稳定性等。例如,验证app在多种网络环境下的响应时间和加载速度、测试大数据量下的性能表现、验证app在长时间使用后是否会出现卡顿或崩溃等。 最后是兼容性测试用例。这些测试用例主要验证app在不同平台、不同版本和不同屏幕尺寸下的兼容性。例如,测试app在iOS和Android平台上是否能够正常运行、验证app在不同操作系统版本上的兼容性、测试app在不同屏幕尺寸上的显示效果等。 总结起来,史上最全的app通用测试用例应该包括界面测试用例、功能测试用例、性能测试用例和兼容性测试用例。在测试过程中,根据具体需求和特点,可以进一步细化和扩展这些测试用例,以确保app的质量和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值