

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# AWS Device Farm référence d'action de test
<a name="action-reference-DeviceFarm"></a>

Dans votre pipeline, vous pouvez configurer une action de test qui permet d' AWS Device Farm exécuter et de tester votre application sur des appareils. Device Farm utilise des pools de tests d'appareils et des frameworks de test pour tester des applications sur des appareils spécifiques. Pour plus d'informations sur les types de frameworks de test pris en charge par l'action Device Farm, consultez [Working with Test Types in AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html).

**Topics**
+ [Type d'action](#action-reference-DeviceFarm-type)
+ [Paramètres de configuration](#action-reference-DeviceFarm-config)
+ [Artefacts d'entrée](#action-reference-DeviceFarm-input)
+ [Artefacts de sortie](#action-reference-DeviceFarm-output)
+ [Autorisations relatives aux rôles de service : AWS Device Farm action](#edit-role-devicefarm)
+ [Déclaration d'action](#action-reference-DeviceFarm-example)
+ [Consultez aussi](#action-reference-DeviceFarm-links)

## Type d'action
<a name="action-reference-DeviceFarm-type"></a>
+ Catégorie : `Test`
+ Propriétaire : `AWS`
+ Fournisseur : `DeviceFarm`
+ Version : `1`

## Paramètres de configuration
<a name="action-reference-DeviceFarm-config"></a>

**AppType**  
Obligatoire : oui  
Le système d'exploitation et le type d'application que vous testez. Voici une liste de valeurs valides :  
+ `iOS`
+ `Android`
+ `Web`

**ProjectId**  
Obligatoire : oui  
L'identifiant du projet Device Farm.   
Pour trouver l'identifiant de votre projet, sélectionnez votre projet dans la console Device Farm. Dans le navigateur, copiez l'URL de votre nouveau projet. L'URL contient l'ID de projet. L'ID du projet est la valeur figurant dans l'URL qui suit`projects/`. Dans l'exemple suivant, l'ID du projet est`eec4905f-98f8-40aa-9afc-4c1cfexample`.  

```
https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs
```

**Appli**  
Obligatoire : oui  
Le nom et l'emplacement du fichier d'application dans votre artefact d'entrée. Par exemple : `s3-ios-test-1.ipa`

**TestSpec**  
Conditionnel : Oui  
Emplacement du fichier de définition des spécifications de test dans votre artefact d'entrée. Cela est nécessaire pour le test en mode personnalisé.

**DevicePoolArn**  
Obligatoire : oui  
L'ARN du pool d'appareils Device Farm.   
Pour obtenir le pool de périphériques disponible ARNs pour le projet, y compris l'ARN des meilleurs appareils, utilisez la AWS CLI pour entrer la commande suivante :   

```
aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
```

**TestType**  
Obligatoire : oui  
Spécifie le framework de test pris en charge pour votre test. Voici une liste de valeurs valides pour `TestType` :  
+ **APPIUM\$1JAVA\$1JUNIT**
+ **APPIUM\$1JAVA\$1TESTNG**
+ **APPIUM\$1NODE**
+ **APPIUM RUBY**
+ **APPIUM\$1PYTHON**
+ **APPIUM\$1WEB\$1JAVA\$1JUNIT**
+ **APPIUM\$1WEB\$1JAVA\$1TESTNG**
+ **APPIUM\$1WEB\$1NODE**
+ **APPIUM\$1WEB\$1RUBY**
+ **APPIUM\$1WEB\$1PYTHON**
+ **FUZZ INTÉGRÉ**
+ **INSTRUMENTATION**
+ **XCTEST**
+ **XCTEST\$1UI**
Les types de test suivants ne sont pas pris en charge par l'action dans CodePipeline : `WEB_PERFORMANCE_PROFILE``REMOTE_ACCESS_RECORD`, et`REMOTE_ACCESS_REPLAY`.
Pour plus d'informations sur les types de tests Device Farm, consultez [Working with Test Types in AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html).

**RadioBluetoothEnabled**  
Obligatoire : non  
Valeur booléenne qui indique s'il faut activer Bluetooth au début du test.

**RecordAppPerformanceData**  
Obligatoire : non  
Valeur booléenne qui indique s'il convient d'enregistrer les données de performance de l'appareil telles que les performances du processeur, des images par seconde et de la mémoire pendant le test.

**RecordVideo**  
Obligatoire : non  
Valeur booléenne qui indique s'il faut enregistrer une vidéo pendant le test.

**RadioWifiEnabled**  
Obligatoire : non  
Valeur booléenne qui indique s'il faut activer le Wi-Fi au début du test.

**RadioNfcEnabled**  
Obligatoire : non  
Valeur booléenne qui indique s'il faut activer le NFC au début du test.

**RadioGpsEnabled**  
Obligatoire : non  
Valeur booléenne qui indique s'il faut activer le GPS au début du test.

**test**  
Obligatoire : non  
Le nom et le chemin du fichier de définition de test dans votre emplacement source. Ce chemin dépend de la racine de l'artefact d'entrée de votre test.

**FuzzEventCount**  
Obligatoire : non  
Le nombre d'événements d'interface utilisateur à effectuer par le test de fuzz, compris entre 1 et 10 000.

**FuzzEventThrottle**  
Obligatoire : non  
Le nombre de millisecondes pendant lequel le test de fuzz doit attendre avant de réaliser le prochain événement d'interface utilisateur, compris entre 1 et 1 000.

**FuzzRandomizerSeed**  
Obligatoire : non  
Un point de départ pour le test de fuzz à utiliser pour randomiser les événements de l'interface utilisateur. L'utilisation du même numéro pour les tests de fuzz suivants permet d'obtenir des séquences d'événements identiques.

**CustomHostMachineArtifacts**  
Obligatoire : non  
Emplacement sur la machine hôte où les artefacts personnalisés seront stockés.

**CustomDeviceArtifacts**  
Obligatoire : non  
Emplacement sur l'appareil où les artefacts personnalisés seront stockés.  


**UnmeteredDevicesOnly**  
Obligatoire : non  
Une valeur booléenne qui indique s'il convient d'utiliser uniquement vos appareils non mesurés lors de l'exécution des tests de cette étape.

**JobTimeoutMinutes**  
Obligatoire : non  
Le nombre de minutes pendant lesquelles un test sera exécuté par appareil avant son expiration.

**Latitude**  
Obligatoire : non  
La latitude de l'appareil exprimée en degrés du système de coordonnées géographiques.

**Longitude**  
Obligatoire : non  
La longitude de l'appareil est exprimée en degrés du système de coordonnées géographiques.

## Artefacts d'entrée
<a name="action-reference-DeviceFarm-input"></a>
+ **Nombre d'objets :** `1`
+ **Description :** ensemble d'artefacts à mettre à disposition pour l'action de test. Device Farm recherche l'application intégrée et les définitions de test à utiliser.

## Artefacts de sortie
<a name="action-reference-DeviceFarm-output"></a>
+ **Nombre d'artefacts :** `0` 
+ **Description :** les artefacts de sortie ne s'appliquent pas à ce type d'action.

## Autorisations relatives aux rôles de service : AWS Device Farm action
<a name="edit-role-devicefarm"></a>

Lors de l' CodePipeline exécution de l'action, la politique de rôle de CodePipeline service nécessite les autorisations suivantes, correctement limitées à l'ARN de la ressource du pipeline afin de maintenir l'accès avec le moins de privilèges. Par exemple, ajoutez ce qui suit à votre déclaration de politique :

```
{
    "Effect": "Allow",
    "Action": [
        "devicefarm:ListProjects",
        "devicefarm:ListDevicePools",
        "devicefarm:GetRun",
        "devicefarm:GetUpload",
        "devicefarm:CreateUpload",
        "devicefarm:ScheduleRun"
    ],
    "Resource": "resource_ARN"
},
```

## Déclaration d'action
<a name="action-reference-DeviceFarm-example"></a>

------
#### [ YAML ]

```
Name: Test
Actions:
  - Name: TestDeviceFarm
    ActionTypeId: null
    category: Test
    owner: AWS
    provider: DeviceFarm
    version: '1'
RunOrder: 1
Configuration:
  App: s3-ios-test-1.ipa
  AppType: iOS
  DevicePoolArn: >-
    arn:aws:devicefarm:us-west-2::devicepool:0EXAMPLE-d7d7-48a5-ba5c-b33d66efa1f5
  ProjectId: eec4905f-98f8-40aa-9afc-4c1cfEXAMPLE
  TestType: APPIUM_PYTHON
  TestSpec: example-spec.yml
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: us-west-2
```

------
#### [ JSON ]

```
{
    "Name": "Test",
    "Actions": [
        {
            "Name": "TestDeviceFarm",
            "ActionTypeId": null,
            "category": "Test",
            "owner": "AWS",
            "provider": "DeviceFarm",
            "version": "1"
        }
    ],
    "RunOrder": 1,
    "Configuration": {
        "App": "s3-ios-test-1.ipa",
        "AppType": "iOS",
        "DevicePoolArn": "arn:aws:devicefarm:us-west-2::devicepool:0EXAMPLE-d7d7-48a5-ba5c-b33d66efa1f5",
        "ProjectId": "eec4905f-98f8-40aa-9afc-4c1cfEXAMPLE",
        "TestType": "APPIUM_PYTHON",
        "TestSpec": "example-spec.yml"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "us-west-2"
},
```

------

## Consultez aussi
<a name="action-reference-DeviceFarm-links"></a>

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.
+ [Utilisation des types de tests dans Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html) — Ce chapitre de référence du *Device Farm Developer Guide* fournit une description plus détaillée des frameworks de test d'applications Android, iOS et Web pris en charge par Device Farm.
+ [Actions dans Device Farm](https://docs.aws.amazon.com/devicefarm/latest/APIReference/Welcome.html) — Les appels d'API et les paramètres de la *Device Farm API Reference* peuvent vous aider à travailler sur des projets Device Farm.
+ [Tutoriel : Créez un pipeline qui crée et teste votre application Android avec AWS Device Farm](tutorials-codebuild-devicefarm.md)— Ce didacticiel fournit un exemple de fichier de spécifications de construction et un exemple d'application pour créer un pipeline avec une GitHub source qui crée et teste une application Android avec CodeBuild Device Farm.
+ [Tutoriel : Créez un pipeline qui teste votre application iOS avec AWS Device Farm](tutorials-codebuild-devicefarm-S3.md)— Ce didacticiel fournit un exemple d'application pour créer un pipeline avec une source Amazon S3 qui teste une application iOS intégrée avec Device Farm.