【问题标题】:AWS cannot "create new DeviceFarm project" for code pipelineAWS 无法为代码管道“创建新的 DeviceFarm 项目”
【发布时间】:2020-03-27 17:09:45
【问题描述】:

我正在按照说明创建基于 Android 的 devicefarm 测试管道。

https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-codebuild-devicefarm.html

但是,AWS 似乎对控制台进行了很多更改,并且无法即时创建新的 devicefarm 项目(在管道配置中)。然后我切换到在管道之外创建一个 devicefarm 项目,但我仍然找不到将管道与 devicefarm 连接的方法。我什至找不到 devicefarm 项目 ID(只有“arn”!)。此外,“AppType”和“TestType”只是文本输入,而不是多选菜单。

这是我尝试在代码管道中添加 devicefarm 时的快照:

【问题讨论】:

    标签: amazon-web-services aws-codepipeline aws-device-farm


    【解决方案1】:

    AWS 服务团队的回复:

    您的理解是正确的,即在 Pipeline Stage 创建期间无法创建 DeviceFarm 项目。 Device Farm 项目需要从 DeviceFarm 控制台创建并在管道中引用。

    但是,我确认 DeviceFarm 项目的创建不需要 .apk 文件。我通过创建一个 Device Farm 项目和一个设备池在我的帐户中复制并验证了该场景,并创建了一个用于 .apk 评估的管道。

    在我的复制中,我创建了一个 CodeCommit 存储库并在其中添加了一个现成的 .apk 文件。您可以选择将代码保留在 CodeCommit/Git 中,并让 CodeBuild 为您将包编译成 .apk 文件,如您共享的指南中所述。 [1]

    所以,以下是我在设置过程中遵循的步骤:

    1. 转到 DeviceFarm 控制台并创建一个项目 [2]。在文档 [2] 中,您可以选择跳过 Step4 并选择稍后配置项目。

    2. 创建项目后,在项目内部导航并选择“项目设置”。

    3. 导航到“设备池”选项卡。

    4. 请创建一个新的设备池并选择您想要运行测试的设备 [3]。在我的复制中,我使用了搭载 Android 9 的 Pixel 3。

    5. 要在管道中使用 DeviceFarm 项目和设备池,您需要有关实施的详细信息,例如项目 ID 和设备池 ARN。要获取这些详细信息,请为 us-west-2 [4] 配置 AWS CLI,因为 Device Farm 仅在俄勒冈州可用。

    6. 将 AWS CLI 配置为在 us-west-2 中运行后,请运行命令 [5]:

      aws devicefarm 列表项目

    这应该会返回可用项目的列表。请使用项目名称找到所需的项目并记下 ARN。

    在此示例 ARN 中:arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE 这是项目 ID:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE

    我们在设置流水线时需要项目 ID。

    1. 获得项目 ARN 后,请运行命令 [6]:

      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345示例

    这将为您提供设备池列表。请从列表中识别设备池并记下它的 ARN。 示例:arn:aws:devicefarm:us-west-2:123456789101:devicepool:1ab2c7c3-741e-4df8-af6d-85d3ca1d1234/06d26e98-3b87-1234-9cb3-1234abcde

    1. 请导航到 CodePipeline 控制台并创建一个管道。对于 Source 阶段,我选择了我的 .apk 文件所在的 CodeCommit 存储库和分支。

    2. 我跳过了构建阶段,在部署阶段,我选择了 S3 作为部署提供程序。

    3. 创建管道后,请编辑管道并删除 S3 部署操作。

    4. 您可以添加一个动作组/动作;并在 Action Provider 中选择“AWS Device Farm”。

    5. 请保持区域与管道相同。

    6. 在输入工件中,选择“源工件”。如果 CodeBuild 正在生成 .apk 文件,那么它应该是“Build Artifact”。这取决于您在管道中的工件名称设置。

    7. 现在,请输入我们之前保留的 Device Farm 项目的项目 ID:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE

    8. 在“DevicePoolArn”中,请输入我们在步骤 7 中获取的设备池的 ARN。

    9. 在“AppType”中,由于我在 Pixel 设备上进行测试,因此我使用了值“Android”。如果应用程序适用于 Apple 设备,您可以选择使用“iOS”。

    10. 在“应用程序 - 可选”字段中,我使用了 .apk 文件的名称,在我的例子中是“SimpleCalculator.apk”。如果您使用 CodeBuild,您可以在 Buildspec 文件的 [artifacts -> files] 部分设置 APK 文件的名称。

    11. 对于“TestType”,我使用了值“BUILTIN_FUZZ”。

    有关有效值的列表,您可以查看本文档的“类型”部分:https://docs.aws.amazon.com/devicefarm/latest/APIReference/API_Suite.html

    1. 保存操作和管道配置,您就完成了! :)

    您的管道将提供/创建 APK,Device Farm 将动态提取它们并根据它们生成报告。您可以选择使用更精细的设置配置您的 Device Farm 项目和/或您可以根据您的要求配置您的部署操作。

    参考文献:


    [1]https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-codebuild-devicefarm.html#codepipeline-configure-tests

    [2] 在 AWS Device Farm 中创建项目 - 创建项目(控制台)- https://docs.aws.amazon.com/devicefarm/latest/developerguide/how-to-create-project.html#how-to-create-project-console

    [3] 在 AWS Device Farm 中创建设备池 - https://docs.aws.amazon.com/devicefarm/latest/developerguide/how-to-create-device-pool.html

    [4] 配置 AWS CLI - 快速配置 AWS CLI - https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration

    [5]https://docs.aws.amazon.com/cli/latest/reference/devicefarm/list-projects.html

    [6]https://docs.aws.amazon.com/cli/latest/reference/devicefarm/list-device-pools.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-28
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      相关资源
      最近更新 更多