

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

# Alat dan plugin untuk AWS Device Farm
<a name="aws-device-farm-tools-plugins"></a>

Bagian ini berisi tautan dan informasi tentang bekerja dengan alat dan plugin AWS Device Farm. Anda dapat menemukan plugin Device Farm di [AWS Labs](https://github.com/awslabs/). GitHub

Jika Anda adalah pengembang Android, kami juga memiliki [aplikasi contoh AWS Device Farm untuk Android GitHub](https://github.com/awslabs/aws-device-farm-sample-app-for-android). Anda dapat menggunakan aplikasi dan contoh pengujian sebagai referensi untuk skrip pengujian Device Farm Anda sendiri.

**Topics**
+ [Mengintegrasikan Device Farm dengan server Jenkins CI](continuous-integration-jenkins-plugin.md)
+ [Mengintegrasikan Device Farm dengan sistem build Gradle](aws-device-farm-android-gradle-plugin.md)

# Mengintegrasikan Device Farm dengan server Jenkins CI
<a name="continuous-integration-jenkins-plugin"></a>

Plugin Jenkins CI menyediakan fungsionalitas AWS Device Farm dari server integrasi berkelanjutan (CI) Jenkins Anda sendiri. Untuk informasi lebih lanjut, lihat [Jenkins (perangkat lunak)](https://en.wikipedia.org/wiki/Jenkins_%28software%29).

**catatan**  
Untuk mengunduh plugin Jenkins, buka [GitHub](https://github.com/awslabs/aws-device-farm-jenkins-plugin)dan ikuti instruksi di[Langkah 1: Menginstal plugin Jenkins CI untuk AWS Device FarmMenginstal plugin Jenkins CI](#jenkins-ci-installing-the-plugin).

Bagian ini berisi serangkaian prosedur untuk menyiapkan dan menggunakan plugin Jenkins CI dengan AWS Device Farm.

Gambar-gambar berikut menunjukkan fitur plugin Jenkins CI.

![\[Integrasi dengan aplikasi Jenkins CI Hello World\]](http://docs.aws.amazon.com/id_id/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-project-hello-world-app.png)


![\[Integrasi dengan tindakan pasca-build Jenkins CI\]](http://docs.aws.amazon.com/id_id/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-post-build-actions.png)


Plugin ini juga dapat menarik semua artefak pengujian (log, tangkapan layar, dll.) Secara lokal:

![\[Integrasi dengan artefak uji Jenkins CI\]](http://docs.aws.amazon.com/id_id/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-test-artifacts.png)


**Topics**
+ [Dependensi](#jenkins-plugin-dependencies)
+ [Langkah 1: Menginstal plugin Jenkins CI untuk AWS Device Farm](#jenkins-ci-installing-the-plugin)
+ [Langkah 2: Membuat AWS Identity and Access Management pengguna untuk Plugin Jenkins CI Anda untuk AWS Device Farm](#jenkins-ci-set-up-iam-user)
+ [Langkah 3: Mengonfigurasi plugin Jenkins CI untuk pertama kalinya di AWS Device Farm](#jenkins-ci-first-time-configuration-instructions)
+ [Langkah 4: Menggunakan plugin dalam pekerjaan Jenkins](#jenkins-ci-using-plugin-jenkins-job)

## Dependensi
<a name="jenkins-plugin-dependencies"></a>

Plugin Jenkins CI memerlukan AWS Mobile SDK 1.10.5 atau yang lebih baru. Untuk informasi selengkapnya dan untuk menginstal SDK, lihat [AWS Mobile SDK](https://aws.amazon.com/mobile/sdk/).

## Langkah 1: Menginstal plugin Jenkins CI untuk AWS Device Farm
<a name="jenkins-ci-installing-the-plugin"></a>

Ada dua opsi untuk menginstal plugin Jenkins continuous integration (CI) untuk AWS Device Farm. Anda dapat mencari plugin dari dalam dialog **Plugin yang Tersedia** di UI Web Jenkins, atau Anda dapat mengunduh `hpi` file dan menginstalnya dari dalam Jenkins.

### Instal dari dalam UI Jenkins
<a name="installing-jenkins-from-within-ui"></a>

1. **Temukan plugin dalam UI Jenkins dengan memilih **Kelola Jenkins**, **Kelola Plugin**, dan kemudian pilih Tersedia.**

1. Cari **aws-device-farm**.

1. Instal plugin AWS Device Farm.

1. Pastikan plugin tersebut dimiliki oleh `Jenkins` pengguna.

1. Mulai ulang Jenkins.

### Unduh pluginnya
<a name="installing-jenkins-manual-install"></a>

1. Unduh `hpi` file langsung dari [http://updates.jenkins-ci. org/latest/aws-perangkat-farm.hpi](http://updates.jenkins-ci.org/latest/aws-device-farm.hpi).

1. Pastikan plugin tersebut dimiliki oleh `Jenkins` pengguna.

1. Instal plugin menggunakan salah satu opsi berikut:
   + Upload plugin dengan memilih **Manage Jenkins**, **Manage Plugins**, **Advanced**, dan kemudian pilih **Upload** plugin.
   + Tempatkan `hpi` file di direktori plugin Jenkins (biasanya`/var/lib/jenkins/plugins`).

1. Mulai ulang Jenkins.

## Langkah 2: Membuat AWS Identity and Access Management pengguna untuk Plugin Jenkins CI Anda untuk AWS Device Farm
<a name="jenkins-ci-set-up-iam-user"></a>

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

Untuk membuat pengguna IAM baru, lihat [Membuat Pengguna IAM ()Konsol Manajemen AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console). Pastikan untuk membuat kunci akses untuk setiap pengguna dan mengunduh atau menyimpan kredensi keamanan pengguna. Anda akan membutuhkan kredensialnya nanti.

### Berikan izin kepada pengguna IAM untuk mengakses Device Farm
<a name="jenkins-ci-setting-up-permissions"></a>

Untuk memberikan izin kepada pengguna IAM untuk mengakses Device Farm, buat kebijakan akses baru di IAM, lalu tetapkan kebijakan akses ke pengguna IAM sebagai berikut.

**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 kebijakan akses di IAM**

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

1. Pilih **Policies** (Kebijakan).

1. Pilih **Buat Kebijakan**. (Jika tombol **Memulai** muncul, pilihlah, lalu pilih **Buat Kebijakan**.)

1. Di sebelah **Buat Kebijakan Anda Sendiri**, pilih **Pilih**.

1. Untuk **Nama Kebijakan**, ketikkan nama untuk kebijakan (misalnya,**AWSDeviceFarmAccessPolicy**).

1. Untuk **Deskripsi**, ketikkan deskripsi yang membantu Anda mengaitkan pengguna IAM ini dengan proyek Jenkins Anda.

1. Untuk **Dokumen Kebijakan**, ketik pernyataan berikut:

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

****  

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

------

1. Pilih **Buat Kebijakan**.

**Untuk menetapkan kebijakan akses ke pengguna IAM**

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

1. Pilih **Pengguna**.

1. Pilih pengguna IAM kepada siapa Anda akan menetapkan kebijakan akses.

1. Di area **Izin**, untuk **Kebijakan Terkelola**, pilih **Lampirkan Kebijakan**.

1. Pilih kebijakan yang baru saja Anda buat (misalnya, **AWSDeviceFarmAccessPolicy**). 

1. Pilih **Lampirkan Kebijakan**.

## Langkah 3: Mengonfigurasi plugin Jenkins CI untuk pertama kalinya di AWS Device Farm
<a name="jenkins-ci-first-time-configuration-instructions"></a>

Pertama kali Anda menjalankan server Jenkins Anda, Anda perlu mengkonfigurasi sistem sebagai berikut.

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

1. Masuk ke antarmuka pengguna Web Jenkins Anda.

1. Di sisi kiri layar, pilih **Kelola** Jenkins.

1. Pilih **Konfigurasi Sistem**.

1. Gulir ke bawah ke header **AWS Device Farm**.

1. Salin kredensi keamanan Anda dari [Membuat pengguna IAM untuk Plugin Jenkins CI Anda](#jenkins-ci-set-up-iam-user) dan tempel ID Kunci Akses dan Kunci Akses Rahasia Anda ke dalam kotak masing-masing.

1. Pilih **Simpan**.

## Langkah 4: Menggunakan plugin dalam pekerjaan Jenkins
<a name="jenkins-ci-using-plugin-jenkins-job"></a>

Setelah Anda menginstal plugin Jenkins, ikuti petunjuk ini untuk menggunakan plugin dalam pekerjaan Jenkins.

1. Masuk ke UI web Jenkins Anda.

1. Klik pekerjaan yang ingin Anda edit.

1. **Di sisi kiri layar, pilih Konfigurasi.**

1. Gulir ke bawah ke header **Post-build Actions**.

1. Klik **Tambahkan tindakan pasca-pembuatan** dan pilih **Jalankan Pengujian di AWS Device Farm**.

1. Pilih proyek yang ingin Anda gunakan.

1. Pilih kumpulan perangkat yang ingin Anda gunakan.

1. Pilih apakah Anda ingin artefak pengujian (seperti log dan tangkapan layar) diarsipkan secara lokal.

1. Di **Aplikasi**, isi jalur ke aplikasi yang dikompilasi Anda.

1. Pilih tes yang ingin Anda jalankan dan isi semua bidang yang diperlukan.

1. Pilih **Simpan**.

# 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[Menyiapkan](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

    }
```