

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Device Farm 中下载构件
<a name="artifacts"></a>

Device Farm 会收集运行中的每个测试的构件，如报告、日志文件和图像。

您可以下载测试运行期间创建的项目：

**文件**  
测试运行期间生成的包括 Device Farm 报告的文件。有关更多信息，请参阅 [在 Device Farm 中查看测试报告](how-to-use-reports.md)。

**日志**  
测试运行中的每个测试的输出。

**屏幕截图**  
针对测试运行中的每个测试记录的屏幕图像。

![\[Workflow diagram showing Project, Run, Job (device), Test suite, and Test stages in AWS 云.\]](http://docs.aws.amazon.com/zh_cn/devicefarm/latest/developerguide/images/hierarchy.png)


## 下载构件（控制台）
<a name="artifacts-console"></a>

1. 在测试运行报告页面上，从** Devices (设备) **中选择一个移动设备。

1. 要下载文件，请从** Files (文件) **中选择一个文件。

1. 要下载测试运行的日志，请从** Logs (日志) **中选择** Download logs (下载日志)**。

1. 要下载屏幕截图，请从** Screenshots (屏幕截图) **中选择一个屏幕截图。

有关在自定义测试环境中下载项目的更多信息，请参阅[在自定义测试环境中下载构件](using-artifacts-custom.md)。

## 下载构件（AWS CLI）
<a name="artifacts-cli"></a>

您可以使用列 AWS CLI 出您的测试运行工件。

**Topics**
+ [步骤 1：获取 Amazon 资源名称（ARN）](#artifacts-cli-step1)
+ [步骤 2：列出您的构件](#artifacts-cli-step2)
+ [步骤 3：下载您的构件](#artifacts-cli-step3)

### 步骤 1：获取 Amazon 资源名称（ARN）
<a name="artifacts-cli-step1"></a>

您可以按运行、作业、测试套件或者测试列出项目。您需要相应的 ARN。下表显示了每个 AWS CLI 列表命令的输入 ARN：


| AWS CLI 列表命令 | 所需的 ARN | 
| --- | --- | 
| list-projects | 此命令返回所有项目，并且不需要 ARN。 | 
| list-runs | project | 
| list-jobs | run | 
| list-suites | job | 
| list-tests | suite | 

例如，要查找测试 ARN，请使用测试套件 ARN 作为输入参数来运行 **list-tests**。

示例：

```
aws devicefarm list-tests –-arn arn:MyTestSuiteARN
```

响应中包含测试套件中每个测试的测试 ARN。

```
{
    "tests": [
        {
            "status": "COMPLETED",
            "name": "Tests.FixturesTest.testExample",
            "created": 1537563725.116,
            "deviceMinutes": {
                "unmetered": 0.0,
                "total": 1.89,
                "metered": 1.89
            },
            "result": "PASSED",
            "message": "testExample passed",
            "arn": "arn:aws:devicefarm:us-west-2:123456789101:test:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE",
            "counters": {
                "skipped": 0,
                "warned": 0,
                "failed": 0,
                "stopped": 0,
                "passed": 1,
                "errored": 0,
                "total": 1
            }
        }
    ]
}
```

### 步骤 2：列出您的构件
<a name="artifacts-cli-step2"></a>

 AWS CLI [list-ar](https://docs.aws.amazon.com/cli/latest/reference/devicefarm/list-artifacts.html) tifacts 命令返回构件列表，例如文件、屏幕截图和日志。每个项目都有一个 URL，方便您下载该文件。
+ 调用指定了运行、作业、测试套件或测试 ARN 的 **list-artifacts**。指定 FILE、LOG 或 SCREENSHOT 的类型。

  此示例会返回单个测试可用的每个项目的下载 URL：

  ```
  aws devicefarm list-artifacts --arn arn:MyTestARN --type "FILE"
  ```

  响应中包含每个项目的下载 URL。

  ```
  {
      "artifacts": [
          {
              "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL",
              "extension": "txt",
              "type": "APPIUM_JAVA_OUTPUT",
              "name": "Appium Java Output",
              "arn": "arn:aws:devicefarm:us-west-2:123456789101:artifact:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE",
          }
      ]
  }
  ```

### 步骤 3：下载您的构件
<a name="artifacts-cli-step3"></a>
+ 使用上一步骤获得的 URL 下载您的项目。此示例使用 **curl** 下载 Android Appium Java 输出文件：

  ```
  curl "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL" > MyArtifactName.txt
  ```

## 下载构件（API）
<a name="artifacts-api"></a>

Device Farm API [ListArtifacts](https://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListArtifacts.html)方法会返回构件列表，例如文件、屏幕截图和日志。每个项目都有一个 URL，方便您下载该文件。

# 在自定义测试环境中下载构件
<a name="using-artifacts-custom"></a>

在自定义测试环境中，Device Farm 会收集自定义报告、日志文件和图像等构件。这些项目可用于测试运行中的每台设备。

您可以下载这些在测试运行期间创建的项目：

**测试规范输出**  
运行测试规范 YAML 文件中的命令获得的输出。

**客户项目**  
一个压缩文件，其中包含测试运行的项目。可在测试规范 YAML 文件中的**项目：**部分配置客户项目。

**测试规范 shell 脚本**  
从您的 YAML 文件创建的中间 Shell 脚本文件。由于该脚本在测试运行中使用，因此可以使用 shell 脚本文件调试 YAML 文件。

**测试规范文件**  
测试运行中使用的 YAML 文件。

有关更多信息，请参阅 [在 Device Farm 中下载构件](artifacts.md)。

![\[自定义测试环境中操作的 Device Farm 层次结构\]](http://docs.aws.amazon.com/zh_cn/devicefarm/latest/developerguide/images/hierarchy.png)
