

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengintegrasikan Device Farm dengan sistem build Gradle
<a name="aws-device-farm-android-gradle-plugin"></a>

Plugin Device Farm Gradle menyediakan integrasi AWS Device Farm dengan sistem build Gradle di Android Studio. Untuk informasi selengkapnya, lihat [Gradle](https://gradle.org).

**catatan**  
Untuk mengunduh plugin Gradle, buka [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)dan ikuti instruksi di[Membangun plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-building).

Plugin Device Farm Gradle menyediakan fungsionalitas Device Farm dari lingkungan Android Studio Anda. Anda dapat memulai tes di ponsel dan tablet Android nyata yang dihosting oleh Device Farm.

Bagian ini berisi serangkaian prosedur untuk menyiapkan dan menggunakan Plugin Device Farm Gradle.

**Topics**
+ [Dependensi](#aws-device-farm-gradle-plugin-dependencies)
+ [Langkah 1: Membangun plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-building)
+ [Langkah 2: Menyiapkan plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-setting-up)
+ [Langkah 3: Menghasilkan pengguna IAM di plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-generating-iam-user)
+ [Langkah 4: Mengkonfigurasi jenis tes](#aws-device-farm-gradle-plugin-configuring-test-types)

## Dependensi
<a name="aws-device-farm-gradle-plugin-dependencies"></a>

**Runtime**
+ Plugin Device Farm Gradle memerlukan AWS Mobile SDK 1.10.15 atau yang lebih baru. Untuk informasi selengkapnya dan untuk menginstal SDK, lihat [AWS Mobile SDK](https://aws.amazon.com/mobile/sdk/).
+ API uji pembuat alat Android 0.5.2
+ Apache Commons Lang3 3.3.4

**Untuk Tes Unit**
+ Testng 6.8.8
+ Jmockit 1,19
+ Alat gradle Android 1.3.0

## Langkah 1: Membangun plugin AWS Device Farm Gradle
<a name="aws-device-farm-gradle-plugin-building"></a>

Plugin ini menyediakan integrasi AWS Device Farm dengan sistem build Gradle di Android Studio. Untuk informasi selengkapnya, lihat [Gradle](https://gradle.org).

**catatan**  
Membangun plugin adalah opsional. Plugin ini diterbitkan melalui Maven Central. Jika Anda ingin mengizinkan Gradle mengunduh plugin secara langsung, lewati langkah ini dan langsung ke[Langkah 2: Menyiapkan plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-setting-up).

**Untuk membangun plugin**

1. Pergi ke [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)dan kloning repositori.

1. Membangun plugin menggunakan`gradle install`.

   Plugin diinstal ke repositori maven lokal Anda.

Langkah selanjutnya: [Langkah 2: Menyiapkan plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-setting-up)

## Langkah 2: Menyiapkan plugin AWS Device Farm Gradle
<a name="aws-device-farm-gradle-plugin-setting-up"></a>

Jika Anda belum melakukannya, kloning repositori dan instal plugin menggunakan prosedur di sini:. [Membangun plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-building)

**Untuk mengonfigurasi Plugin AWS Device Farm Gradle**

1. Tambahkan artefak plugin ke daftar ketergantungan Anda di. `build.gradle`

   ```
       buildscript {
   
           repositories {        
               mavenLocal()            
               mavenCentral()            
           }
   
           dependencies {        
               classpath 'com.android.tools.build:gradle:1.3.0'           
               classpath 'com.amazonaws:aws-devicefarm-gradle-plugin:1.0'            
           }        
       }
   ```

1. Konfigurasikan plugin di `build.gradle` file Anda. Konfigurasi khusus pengujian berikut harus berfungsi sebagai panduan Anda:

   ```
   apply plugin: 'devicefarm'
   
   devicefarm {
   
       // Required. The project must already exist. You can create a project in the AWS Device Farm console.
       projectName "My Project" // required: Must already exist.
   
       // Optional. Defaults to "Top Devices"
       // devicePool "My Device Pool Name"
       
       // Optional. Default is 150 minutes
       // executionTimeoutMinutes 150
       
       // Optional. Set to "off" if you want to disable device video recording during a run. Default is "on"
       // videoRecording "on"
       
       // Optional. Set to "off" if you want to disable device performance monitoring during a run. Default is "on"
       // performanceMonitoring "on"
       
       // Optional. Add this if you have a subscription and want to use your unmetered slots
       // useUnmeteredDevices()
       
       // Required. You must specify either accessKey and secretKey OR roleArn. roleArn takes precedence. 
       authentication {
           accessKey "AKIAIOSFODNN7EXAMPLE"
           secretKey "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
           
           // OR
           
           roleArn "arn:aws:iam::111122223333:role/DeviceFarmRole"
       }
   
       // Optionally, you can 
       // - enable or disable Wi-Fi, Bluetooth, GPS, NFC radios
       // - set the GPS coordinates
       // - specify files and applications that must be on the device when your test runs
       devicestate {
           // Extra files to include on the device.
           // extraDataZipFile file("path/to/zip")
           
           // Other applications that must be installed in addition to yours. 
           // auxiliaryApps files(file("path/to/app"), file("path/to/app2"))
           
           // By default, Wi-Fi, Bluetooth, GPS, and NFC are turned on.
           // wifi "off"
           // bluetooth "off"
           // gps "off"
           // nfc "off"
           
           // You can specify GPS location. By default, this location is 47.6204, -122.3491
           // latitude 44.97005
           // longitude -93.28872
       }
    
       // By default, the Instrumentation test is used.
       // If you want to use a different test type, configure it here.
       // You can set only one test type (for example, Calabash, Fuzz, and so on)
    
       // Fuzz
       // fuzz { }
   
       // Calabash
       // calabash { tests file("path-to-features.zip") }
          
   }
   ```

1. Jalankan pengujian Device Farm Anda menggunakan tugas berikut:`gradle devicefarmUpload`.

   Output build akan mencetak link ke konsol Device Farm tempat Anda dapat memantau eksekusi pengujian.

Langkah selanjutnya: [Menghasilkan pengguna IAM di plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-generating-iam-user)

## Langkah 3: Menghasilkan pengguna IAM di plugin Device Farm Gradle
<a name="aws-device-farm-gradle-plugin-generating-iam-user"></a>

AWS Identity and Access Management (IAM) membantu Anda mengelola izin dan kebijakan untuk bekerja dengan AWS sumber daya. Topik ini memandu Anda untuk menghasilkan pengguna IAM dengan izin untuk mengakses sumber daya AWS Device Farm.

Jika Anda belum melakukannya, selesaikan langkah 1 dan 2 sebelum membuat pengguna IAM.

Kami menyarankan Anda untuk tidak menggunakan akun AWS root Anda untuk mengakses Device Farm. Sebagai gantinya, buat pengguna IAM baru (atau gunakan pengguna IAM yang sudah ada) di AWS akun Anda, lalu akses Device Farm dengan pengguna IAM tersebut.

**catatan**  
Akun AWS root atau pengguna IAM yang Anda gunakan untuk menyelesaikan langkah-langkah berikut harus memiliki izin untuk membuat kebijakan IAM berikut dan melampirkannya ke pengguna IAM. Untuk informasi selengkapnya, lihat [Bekerja dengan Kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_manage.html).

**Untuk membuat pengguna baru dengan kebijakan akses yang tepat di IAM**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pilih **Pengguna**.

1. Pilih **Buat Antrean Baru**.

1. Masukkan nama pengguna pilihan Anda.

   Misalnya, **GradleUser**.

1. Pilih **Buat**.

1. Pilih **Unduh Kredensial** dan simpan di lokasi di mana Anda dapat dengan mudah mengambilnya nanti.

1. Pilih **Tutup**.

1. Pilih nama pengguna dalam daftar.

1. Di bawah **Izin, perluas** **header Kebijakan Sebaris** dengan mengklik panah bawah di sebelah kanan.

1. Pilih **Klik di sini** di mana dikatakan, **Tidak ada kebijakan sebaris untuk ditampilkan. Untuk membuatnya, klik di sini**.

1. Pada layar **Atur izin**, pilih **Kebijakan Kustom**.

1. Pilih **Pilih**.

1. Beri nama kebijakan Anda, seperti **AWSDeviceFarmGradlePolicy**.

1. Tempel kebijakan berikut ke dalam **Dokumen Kebijakan**.

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

****  

   ```
       {
           "Version":"2012-10-17",		 	 	 
           "Statement": [
               {
                   "Sid": "DeviceFarmAll",
                   "Effect": "Allow",
                   "Action": [ "devicefarm:*" ],
                   "Resource": [ "*" ]
               }
           ]
       }
   ```

------

1. Pilih **Terapkan Kebijakan**.

Langkah selanjutnya:[Mengkonfigurasi jenis pengujian](#aws-device-farm-gradle-plugin-configuring-test-types).

Untuk informasi selengkapnya, lihat [Membuat Pengguna IAM (Konsol Manajemen AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console) atau[Penyiapan](setting-up.md).

## Langkah 4: Mengkonfigurasi jenis tes
<a name="aws-device-farm-gradle-plugin-configuring-test-types"></a>

Secara default, plugin AWS Device Farm Gradle menjalankan [Instrumentasi untuk Android dan AWS Device Farm](test-types-android-instrumentation.md) pengujian. Jika Anda ingin menjalankan pengujian Anda sendiri atau menentukan parameter tambahan, Anda dapat memilih untuk mengonfigurasi jenis pengujian. Topik ini memberikan informasi tentang setiap jenis pengujian yang tersedia dan apa yang perlu Anda lakukan di Android Studio untuk mengonfigurasinya agar dapat digunakan. Untuk informasi selengkapnya tentang jenis pengujian yang tersedia di Device Farm, lihat[Uji kerangka kerja dan pengujian bawaan di AWS Device Farm](test-types.md).

Jika Anda belum melakukannya, selesaikan langkah 1 — 3 sebelum mengonfigurasi jenis pengujian.

**catatan**  
Jika Anda menggunakan [slot perangkat](how-to-purchase-device-slots.md), fitur slot perangkat dinonaktifkan secara default.

### Appium
<a name="configuring-test-types-appium"></a>

Device Farm menyediakan dukungan untuk Appium Java dan JUnit TestNG untuk Android.
+ [Appium (di bawah Jawa ()) JUnit](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)
+ [Appium (di bawah Jawa (TestNG))](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)

Anda dapat memilih `useTestNG()` atau`useJUnit()`. `JUnit`adalah default dan tidak perlu ditentukan secara eksplisit.

```
    appium {
        tests file("path to zip file") // required
        useTestNG() // or useJUnit()
    }
```

### Bawaan: bulu halus
<a name="configuring-test-types-built-in-fuzz"></a>

Device Farm menyediakan tipe uji fuzz bawaan, yang secara acak mengirimkan peristiwa antarmuka pengguna ke perangkat dan kemudian melaporkan hasilnya.

```
    fuzz {

       eventThrottle 50 // optional default
       eventCount 6000  // optional default
       randomizerSeed 1234 // optional default blank

     }
```

Untuk informasi selengkapnya, lihat [Menjalankan uji fuzz bawaan Device Farm (Android dan iOS)](test-types-built-in-fuzz.md).

### Instrumentasi
<a name="configuring-test-types-instrumentation"></a>

Device Farm menyediakan dukungan untuk instrumentasi (JUnit, Espresso, Robotium, atau pengujian berbasis instrumen apa pun) untuk Android. Untuk informasi selengkapnya, lihat [Instrumentasi untuk Android dan AWS Device Farm](test-types-android-instrumentation.md).

Saat menjalankan pengujian instrumentasi di Gradle, Device Farm menggunakan `.apk` file yang dihasilkan dari direktori **AndroidTest** sebagai sumber pengujian Anda.

```
    instrumentation { 

        filter "test filter per developer docs" // optional

    }
```