大多数浏览器和
Developer App 均支持流媒体播放。
-
使用 Xcode 测试报告更快修复故障
探索如何使用 Xcode 和 Xcode Cloud 中的测试报告更快地查找、调试和修复测试故障。了解 Xcode 如何识别故障模式,帮你找到开始排查的正确位置。我们还将向你展示如何使用 UI 自动化资源管理器和视频记录来了解导致你的 UI 测试失败的事件。
章节
- 0:00 - Introduction
- 1:06 - Test structure, configurations, and run destinations
- 4:33 - Xcode Cloud build overview
- 5:53 - Test summary
- 7:28 - Insights
- 8:07 - Unit test details
- 9:02 - UI test details
- 10:54 - Automation explorer
- 12:15 - Wrap-up
资源
相关视频
WWDC23
-
下载
♪ ♪
Sonu:大家好 我叫 Sonu 是一名 使用 Xcode 工作的人机交互设计师 我很高兴为你介绍 Xcode 15 中的新测试报告 测试报告 是你查看测试运行结果的地方 你可查看在本地、Xcode Cloud 或其他机器上运行的测试结果 测试运行范围小到你在 编写一段代码时运行的单个测试 大到在 CI 中 运行的上千个测试的整个套件 测试报告将你的测试结果进行组织 帮你了解你的项目健康状况 查明问题所在 并最终更快地修复故障 在我们开始探索新的测试报告之前 我想先后退一步 首先定义与 Xcode 测试 相关的一些关键术语和概念 了解你的测试结构背后的组织概念 是很有用的 在我向你介绍基础知识之后 我们将查看测试报告 并探索它能如何帮助你 让我们从测试方法开始 测试方法是 验证你的源代码并生成测试结果的 单个测试或方法 接着 是测试类 测试类是测试方法的分组 通常基于正在测试的区域进行分组 之后 是测试包 测试包由一个或多个测试类组成 每个包都只包含单个类型的测试 即单元测试或 UI 测试 单元测试有助于验证单个代码片段 通常是一个函数 单元测试简短、简单 运行非常快 UI 测试 观察你的 App 面向用户的行为 这些测试确保你的 App 确实按照你的期望工作 根据我们的目的 假设说 我们的测试包中包含 UI 测试 在最高层级 还有测试计划 测试计划包含一个或多个测试包 这意味着测试计划 可包含单元测试和 UI 测试 通过测试计划 你可设置配置 以在多种条件下高效运行测试 配置是测试计划的一个重要方面 配置会告诉 Xcode 如何为你的测试设置运行环境 比如 你可用不同的语言 在不同的地点测试你的 App 以确保你的 App 在世界各地每个地方都能正常工作 你可测试代码覆盖率 以便在继续开发时追踪你的代码质量 和覆盖范围 你甚至可以设置多次运行你的测试 这可以确保你的 App 的所有元素都能可靠地工作 无论用户是首次使用 亦或是使用过上百次 除了配置之外 还有运行目的地 运行目的地 是指你要运行测试的设备 在 Xcode 的 IDE 中运行测试时 你可选择单个运行目的地 使用 Xcode Cloud 和 xcodebuild 命令 你的测试可有多个运行目的地 现在我们已经介绍了基础知识 让我们看看测试、配置 和运行目的地如何协同工作 比方说 我们使用 与我之前所述相同的测试计划 最近 我一直在 为我的 App 支持多语言而工作 为确保我的 App 按预期方式工作 我为我想要支持的语言创建了配置 第一个是英语 此外 假设说我在 三个运行目的地上运行此测试计划 在每个设备上运行一次测试计划 并启用配置 每个方法会返回一个测试结果状态 通过、失败、跳过或预期的故障 针对我的 App 我还在努力支持更多语言 并为每种语言做了测试计划配置 这意味着 Xcode 会为每个配置和运行目的地 运行完整的测试计划 从而产生一个填满结果的矩阵 放大矩阵 可看到每个测试方法 配置和运行目的地 组合产生的一个结果 此单独实例 被称为一个测试方法运行
测试运行范围小到你在 编写一段代码时运行的单个测试 大到在多个配置和目的地上 运行的上千个测试的整个套件 这与我之前的示例相类似 无论测试数量如何 新的测试报告为你提供了工具 帮你了解你的测试运行 为此 新的测试报告提供了 关于你的测试运行的高级摘要 以便你在深入了解细节之前 先了解测试运行的整体情况 该报告会凸显重要的故障模式 因此你可快速知道 该从哪里开始排查故障 报告还为你提供了单独的页面 供你在此查看测试活动、 故障信息、截屏等等 最后 我们改进了 我们的 UI 测试调试工具 为你提供更丰富的故障信息 好了 我们已介绍了 关于测试的大量概念 和测试报告的益处 现在让我们看看其实际应用 我正在为我的 iOS App Backyard Birds 开发一个新功能 与我之前的示例相类似 我正在努力使 Backyard Birds 支持多语言 当我对其添加更多的语言支持时 我一直在本地 和 Xcode Cloud 中进行测试 以确保我没有破坏任何东西 让我们看看我的一些 CI 运行 我在 Xcode Cloud 中设置了一个 工作流程 以便我在进行拉取请求时 自动运行少量单元测试 在构建概览中 我可以快速了解 我的工作流程是由什么开始 有哪些代码修改 以及这个构建的工作流程 我还可了解此构建中 我的操作的执行情况 呜呼 我的一些测试失败了 让我们来看看其情况
在查看测试操作时 我看到了新的测试报告 具体来说 我找到了测试摘要 测试摘要让我全面了解了 此测试运行中发生的情况
我可以快速了解我的测试环境 我还可使用 Insights 查看我的测试结果中 发现的任何值得注意的模式 Insights 是 Xcode 在分析结果时 跨所有配置和运行目的地 得出的故障模式 并根据某些标准对结果进行分组 目前 我们有两种类型的 Insights: 常见故障模式和最长测试运行时间 常见故障模式 insight 会根据类似的故障信息 对测试进行分组 而“最长测试运行时间” 则让你了解测试包中有哪些测试 比其他测试花费更长时间 在测试部分中 我可了解 我的测试在此次运行中的表现 还可获取 有关我的测试计划的更多详细信息 我可了解我的测试计划有哪些特性 比如测试重复次数或性能指标 当使用 许多运行目的地和配置进行测试时 很难了解每个运行的表现如何 有了这个热图 我可快速了解我的测试 在每个设备和配置上的表现 颜色和测试结果计数 可帮我了解与其他运行相比 此次运行的表现如何 如果我有任何测试故障 我可在测试摘要中 快速查看故障信息 如果某特定故障信息 引起了我的注意 我可使用此部分开始排查 谈到引人注意的故障 当我早些时候检查 insight 时 第一个 insight 令我印象深刻 它提到我有三个测试都失败了 且故障信息相似 让我们找出这些测试失败的原因 选择特定的 insight 后 我可以使用此视图 进一步了解更多信息 我可以找到 所有测试中发现的故障信息 还可以看到失败的测试 此外 我可以了解哪些配置 和运行目的地 导致了这些单元测试失败 有了这些信息 我可以得到一个信号 了解为何这些测试失败 且故障信息非常相似 为了继续排查 让我们查看 其中一个测试方法的运行 选择一个测试方法的运行后 我找到了 testGardenSupplies() 的测试详细信息视图 测试详细信息视图 创建了一个专门的空间 专注于单个测试方法的结果 我可在此 找到测试详细信息和故障信息 以便开始调试 我可使用标题 获取所有配置和运行目的地 所发生的完整情况 在运行视图中 我可查看该方法在每个配置 和运行目的地上的表现 我还可找到所选测试方法运行的 故障信息和调用栈 故障信息和调用栈 是用于调试的重要工具 是帮助确定故障源的关键部分 调用栈还为我 提供了回到源代码的入口点 我可在此继续排查故障 除了单元测试之外 我还在本地运行了大量 UI 测试 以确保 Backyard Birds 能满足客户预期 并能在不同平台和设备上正常运行 让我们回顾一下 先前的一个本地测试运行 针对此测试运行 我仍可使用测试摘要 来了解发生了什么 我的顶部有显示 环境详细信息 下面是 Insights 底部则是测试部分 测试部分中的 第一个故障引起了我的注意 故障信息 提示测试无法定位其中一个按钮 让我们来看看吧 选择故障后 我找到了 testClickTabsAfterSearch() 的测试详细信息视图 因为我正在查看一个 UI 测试 查看测试详细信息 会定位到活动标签页 测试报告中有大量令人惊叹的新功能 可帮我了解和解决故障 活动标签页包含三个主要部分: 测试活动、 自动化资源管理器和滑动条
测试活动 以时间轴形式呈现我的测试 其中最上面一行是测试开始 最下面一行是测试结束 中间的每一行 都是测试中发生的事件 还有自动化资源管理器 我可在此找到所选测试活动 相关的瞬间视频回放 这使我可看到我的测试的完整回放 最后还有滑动条 可线性表示我的测试运行 我可使用滑动条来定位测试事件 比如轻点、轻扫和点击 滑动条甚至会凸显 被测设备何时改变了方向 滑动条上方的故障图标 指示测试中故障发生的位置 我可使用这些指示器 快速找到测试运行中的有趣瞬间 确保 App 中的交互按预期工作 有了这些新的组件 测试报告 就有了交互式的测试调试体验 让我们看看其如何帮我解决该错误 在“活动”窗口中点击一个事件 就会用视频回放中的相应帧 来更新自动化资源管理器 这样我就可直观地 了解测试的每一瞬间发生了什么 滑动条也被移动到相应位置 这样我就能知道整个测试运行相关的 事件发生的位置 当我调试故障时 我会想查看导致故障的瞬间
我可观看我的测试运行 看看是否发生了任何意外情况 可能导致错误 看完视频回放后 一切看来良好
根据该故障信息 在 UI 中 似乎未找到“我的账户”按钮 自动化资源管理器 向我展示了故障发生时 设备上正在发生的事情 “我的账户”按钮 可见且有一个边界框 点击边界框 会给我更多 此特定 UI 元素的相关信息 我可在此找到与该元素相关的标识符 和层次信息 根据此处的信息 似乎我在我的 App 中 错误标记了“我的账户”按钮 从这里 我可定位到 我的项目源代码并修复错误 新的测试报告 使我非常容易理解我的测试运行 在短短几分钟内 我就能找到哪些测试失败了 找到解决方案并修复故障 故障可能会在本地和 CI 中发生 最佳做法是在这两处都进行测试 我很高兴告诉大家 测试报告在 Xcode 和 Xcode Cloud 中都可用 时间对所有人都是宝贵的 测试报告新增的功能 将帮你快速了解测试运行情况 查明问题所在 并最终更快地修复故障 非常感谢你的收看 希望你喜欢 WWDC 的其余内容 ♪ ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。