WWDC19:XCTest的测试计划入门

哈Ha! 我向您介绍Shashikant Jagtap撰写的文章“ WWDC19:XCTest测试计划入门”的翻译。

图片

在上一届WWDC会议上,Apple向开发人员展示了很酷的新功能。 Xcode 11还添加了一些很棒的功能。 您可以在发行说明中了解它们。 今年宣布的最重要的工具之一是XCTest和Xcode UI测试的测试计划。 在本文中,我们将详细检查Test Plan的功能如何与XCTest一起使用。 如果您想了解更多详细信息,请观看“在Xcode上测试”会话视频

Xcode测试计划


在Xcode 11之前,测试配置是Xcode模式的一部分。 如果开发人员想要针对不同条件配置不同的测试套件,则他们可以创建新电路或编辑现有电路以满足特定测试需求。 测试配置与Xcode方案密切相关,因此我必须在测试期间针对不同任务创建许多方案。
Xcode 11中的新功能使开发人员和QA工程师可以自定义测试以满足他们的需求。 测试计划可让您确定:

  • 装配中要进行哪些测试;
  • 如何进行这些测试(例如,以随机或字母顺序);
  • 如何管理测试工件(例如,附件和屏幕截图);
  • 如何在测试中使用运行时工具。

使用Xcode测试计划,您可以独立于Xcode模式配置测试套件。 这是对测试技术的重大改进,可以使您的测试再上一个台阶。 现在,让我们看看实际的Xcode测试计划。

剧本


假设我们为功能测试创建了一个测试计划,并具有以下要求:

  • 功能测试应包括烟熏和回归测试套件;
  • 烟雾测试应在伦敦(英国)进行,回归测试应在旧金山(美国)进行;
  • 冒烟测试应按字母顺序运行,回归测试应按随机顺序运行,以发现测试之间的问题。

我们将为各种Apple平台的Xcode创建此测试计划。

在Xcode中创建测试计划


Xcode 11允许我们在测试计划中定义这些要求。 Xcode允许您从当前架构配置创建测试计划。 当您编辑电路并继续执行当前的测试步骤时,Xcode将显示一个用于创建测试计划的选项。 您可以使用以下设置创建测试计划:

  • 空白测试计划 :创建一个空模板,并允许您制定自己的计划;
  • 计划中的测试计划 :进行电路配置并创建测试计划;
  • 选择测试计划 :如果您已经创建了一个测试计划,则可以选择它并将其添加到图表中。

为了使自己熟悉,请根据电路配置创建测试计划。

图片

您需要命名测试计划并指定正确的测试目标。 创建测试计划后,它会附加到电路上。 但是,该架构可以覆盖调用Xcodebuild命令时使用该标志之后创建的任何测试计划。 创建测试计划后,您可以将其附加到特定目标。 让我们通过UI测试将当前计划添加到目标并为其命名。

图片

您将找到扩展名为functional.xctestplan的新文件。 这是您的测试计划。 必要时可以对其进行编辑。 您可以根据测试需求在同一目标中制定综合测试计划。 至此,我们已经为UI测试的目标提供了可用的测试计划。

测试计划文件


测试计划文件是一个类似于json的简单配置文件,其中包含有关如何配置测试以独立于任何电路运行的信息。 这是“测试计划”中可用的各种测试配置设置。 基本测试计划包含三个关键要素:

  • 构型
  • 测试目标
  • 设定值

测试计划中的每个配置都包含一组与之相关的测试,这些测试具有不同的设置。 根据测试计划的要求,我们将需要两种配置:一种用于烟雾测试,另一种用于回归测试。
现在,让我们在Xcode中打开functional.xctestplan文件,并将configuration1重命名为smoke-uk,然后单击计划顶部的“ +”按钮并添加另一个美国回归配置。
现在,我们在“测试计划”中有两个配置,并且“测试计划”已经与UI测试绑定到目标。 将一些设置添加到每个配置。 选择Smoke-uk配置后,我们可以将位置更改为伦敦,并对设置进行其他更改。 同样,更改“美国回归”的配置。 这是测试计划触发回归的样子:

图片

测试计划中可用的设置:

  • 参数-允许您覆盖启动参数和测试的启动环境;
  • 本地化-允许您为各种地理位置,语言环境和语言配置测试。 这是测试国际化和本地化的非常酷的环境。
  • UI测试/附件/测试执行/代码覆盖率-UI测试和测试工件的特定选项。 您可以决定是留下工件还是尽快将其删除。 您还可以选择测试运行的顺序和代码覆盖率计数。
  • Xcode代码诊断工具-一些Xcode代码诊断工具(例如Address Sanitizer或Thread Sanitizer)可用于搜索运行时错误。 您还可以使用其他选项来帮助您查找内存泄漏等。

从头开始创建测试计划


如果不想使用Xcode方案创建测试计划,则始终可以通过Xcode→产品→测试计划来创建新的测试计划。

图片

以这种方式创建测试计划后,我们将通过向其添加测试将其附加到某个测试目标。 在下面的示例中,我们创建了一个新的测试计划并向其中添加了测试。

图片

从源头创建测试计划


如前所述,Xcode测试计划只是一个配置文件,我们在其中安装了定义的所有配置。 在我们的场景中,我们创建了functional.xctestplan,它的源代码如下所示:

{ "configurations" : [ { "name" : "smoke-uk", "options" : { "language" : "en-GB", "locationScenario" : { "identifier" : "London, England", "referenceType" : "built-in" }, "region" : "GB", "testExecutionOrdering" : "lexical" } }, { "name" : "Regression-usa", "options" : { "addressSanitizer" : { "enabled" : true }, "language" : "en", "locationScenario" : { "identifier" : "San Francisco, CA, USA", "referenceType" : "built-in" }, "region" : "US", "testExecutionOrdering" : "random" } } ], "defaultOptions" : { "codeCoverage" : false }, "testTargets" : [ { "target" : { "containerPath" : "container:XCTestPlan.xcodeproj", "identifier" : "9B0E393A22A6EB5400F666A1", "name" : "XCTestPlanUITests" } } ], "version" : 1 } 

您可以通过这种方式创建配置,并将其保存到Xcode 11中扩展名为.xctestplan的文件中。

启动测试计划


现在,我们了解了在Xcode中创建测试计划文件的过程。 让我们看看如何运行测试计划并获取Xcode中的报告。 您可以像往常一样通过Xcode->产品->测试运行测试,方法是在架构上运行附加的测试计划。 在我们的案例中,这将启动两种测试配置-冒烟和回归。
Xcodebuild中有几个命令行选项可以查看和运行测试计划。 您可以运行以下命令:

 $ Xcodebuild -showTestPlans -scheme YOUR_SCEME 

它将显示当前电路的所有测试计划。 您还可以运行单独的测试:

 $ Xcodebuild -project XCTestPlan.Xcodeproj/ -scheme XCTestPlan -destination 'platform=iOS Simulator,OS=13.0,name=iPhone XR' test -testPlan functional 

该脚本将使用“测试计划”配置运行测试。

测试计划报告


在为特定的测试计划运行测试之后,您可以看到Xcode中生成的良好报告。 为每种配置分别生成报告。

图片

在Xcode的“测试导航器”部分中,您可以按“测试计划”过滤报告。 可以在Xcode服务器上配置Xcode测试计划报告。

Github上可用的演示源代码: XCTestPlan

Xcode测试计划:应用程序


简要介绍Xcode测试计划可在何处使用以及如何根据电路配置进行更改。 以下是一些使用Xcode测试计划的示例:

  • 如演示中所示,各种类型的测试:冒烟,回归等。
  • 测试应用程序的国际化和本地化,例如,如果要针对多种语言测试应用程序,则可以创建各种配置;
  • 运行繁重的测试,例如性能和压力测试,并将其与功能测试分开。 您可以将测试配置为与代码诊断工具或其他非功能性测试一起使用。

Xcode测试计划可以帮助扩展测试过程的许多其他方案也是可能的。

结论


借助Xcode测试计划,XCTest可以管理您的配置和运行测试的能力进一步提高。 Xcode测试计划使您可以更好地控制基于Apple的测试平台。

Source: https://habr.com/ru/post/zh-CN457108/


All Articles