

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

# Jalankan pengujian Appium secara otomatis di Device Farm
<a name="test-types-appium"></a><a name="test-types-ios-appium-java-testng"></a><a name="test-types-ios-appium-java-junit"></a><a name="test-types-ios-appium-python"></a><a name="test-types-ios-appium-ruby"></a><a name="test-types-ios-appium-node"></a><a name="test-types-android-appium-java-testng"></a><a name="test-types-android-appium-java-junit"></a><a name="test-types-android-appium-python"></a><a name="test-types-android-appium-ruby"></a><a name="test-types-android-appium-node"></a><a name="test-types-web-app-appium-java-testng"></a><a name="test-types-web-app-appium-java-junit"></a><a name="test-types-web-app-appium-python"></a><a name="test-types-web-app-appium-ruby"></a><a name="test-types-web-app-appium-node"></a>

**catatan**  
Halaman ini mencakup menjalankan pengujian Appium di lingkungan eksekusi sisi **server** terkelola Device Farm. [Untuk menjalankan pengujian Appium dari lingkungan **sisi klien** lokal Anda selama sesi akses jarak jauh, lihat pengujian Appium sisi klien.](appium-endpoint.md)

Bagian ini menjelaskan cara mengonfigurasi, mengemas, dan mengunggah pengujian Appium agar berjalan di lingkungan sisi server terkelola Device Farm. Appium adalah alat open source untuk mengotomatiskan aplikasi web asli dan seluler. Untuk informasi lebih lanjut, lihat [Pengantar Appium](http://appium.io/docs/en/latest/intro) di situs web Appium.

Untuk contoh aplikasi dan tautan ke pengujian yang berfungsi, lihat [Aplikasi Sampel Device Farm untuk Android dan Aplikasi](https://github.com/aws-samples/aws-device-farm-sample-app-for-android) [Sampel Device Farm untuk iOS](https://github.com/aws-samples/aws-device-farm-sample-app-for-ios) aktif GitHub.

Untuk informasi selengkapnya tentang pengujian di Device Farm dan cara kerja sisi server, lihat. [Uji kerangka kerja dan pengujian bawaan di AWS Device Farm](test-types.md)

## Memilih versi Appium
<a name="w2aac24c15c41"></a>

**catatan**  
 Support untuk versi Appium tertentu, driver Appium, atau pemrograman SDKs akan bergantung pada perangkat dan host uji yang dipilih untuk uji coba. 

 Host pengujian Device Farm telah diinstal sebelumnya dengan Appium untuk mengaktifkan penyiapan pengujian yang lebih cepat untuk kasus penggunaan yang lebih mudah. Namun, penggunaan file spesifikasi pengujian memungkinkan Anda menginstal versi Appium yang berbeda jika diperlukan. 

### Skenario 1: Versi Appium yang telah dikonfigurasi sebelumnya
<a name="w2aac24c15c41b7b1"></a>

 Device Farm hadir pra-konfigurasi dengan versi server Appium yang berbeda berdasarkan host uji. Host dilengkapi dengan perkakas yang memungkinkan versi pra-konfigurasi dengan driver default platform perangkat (UiAutomator2 untuk Android, dan untuk XCUITest iOS). 

```
phases:
  install:
    commands:
      - export APPIUM_VERSION=2
      - devicefarm-cli use appium $APPIUM_VERSION
```

 Untuk melihat daftar perangkat lunak yang didukung, lihat topik di[Perangkat lunak yang didukung dalam lingkungan pengujian khusus](custom-test-environments-hosts-software.md). 

### Skenario 2: Versi Appium Kustom
<a name="w2aac24c15c41b7b3"></a>

 Untuk memilih versi kustom Appium, gunakan `npm` perintah untuk menginstalnya. Contoh berikut menunjukkan cara menginstal versi terbaru Appium 2. 

```
phases:
  install:
    commands:
      - export APPIUM_VERSION=2
      - npm install -g appium@$APPIUM_VERSION
```

### Skenario 3: Appium di host iOS Legacy
<a name="w2aac24c15c41b7b5"></a>

 Pada[Host uji iOS lama](custom-test-environments-hosts-ios.md#legacy-ios-host), Anda dapat memilih versi Appium tertentu dengan. `avm` Misalnya, untuk menggunakan `avm` perintah untuk menyetel versi server Appium`2.1.2`, tambahkan perintah ini ke file YAMM spesifikasi pengujian Anda. 

```
phases:
  install:
    commands:
      - export APPIUM_VERSION=2.1.2
      - avm $APPIUM_VERSION
```

## Memilih WebDriverAgent versi untuk pengujian iOS
<a name="test-types-appium-select-wda"></a>

 Untuk menjalankan tes Appium pada perangkat iOS, penggunaan WebDriverAgent diperlukan. Aplikasi ini harus ditandatangani agar dapat diinstal pada perangkat iOS. Device Farm menyediakan versi yang telah ditandatangani sebelumnya WebDriverAgent yang tersedia selama lingkungan pengujian kustom dijalankan. 

 Cuplikan kode berikut dapat digunakan untuk memilih WebDriverAgent versi di Device Farm dalam file spesifikasi pengujian Anda yang kompatibel dengan versi Driver XCTest UI Anda.. 

```
phases:
  pre_test:
    commands:
      - |-
        APPIUM_DRIVER_VERSION=$(appium driver list --installed --json | jq -r ".xcuitest.version" | cut -d "." -f 1);
        CORRESPONDING_APPIUM_WDA=$(env | grep "DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V${APPIUM_DRIVER_VERSION}")
        if [[ ! -z "$APPIUM_DRIVER_VERSION" ]] && [[ ! -z "$CORRESPONDING_APPIUM_WDA" ]]; then
          echo "Using Device Farm's prebuilt WDA version ${APPIUM_DRIVER_VERSION}.x, which corresponds with your driver";
          DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH=$(echo $CORRESPONDING_APPIUM_WDA | cut -d "=" -f2)
        else
          LATEST_SUPPORTED_WDA_VERSION=$(env | grep "DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V" | sort -V -r | head -n 1)
          echo "Unknown driver version $APPIUM_DRIVER_VERSION; falling back to the Device Farm default version of $LATEST_SUPPORTED_WDA_VERSION";
          DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH=$(echo $LATEST_SUPPORTED_WDA_VERSION | cut -d "=" -f2)
        fi;
```

 [Untuk informasi selengkapnya tentang WebDriverAgent, lihat dokumentasi Appium.](https://appium.github.io/appium-xcuitest-driver/9.10/guides/run-prebuilt-wda/) 

# Mengintegrasikan tes Appium dengan Device Farm
<a name="test-types-appium-integrate"></a>

Gunakan petunjuk berikut untuk mengintegrasikan pengujian Appium dengan AWS Device Farm. Untuk informasi selengkapnya tentang menggunakan pengujian Appium di Device Farm, lihat. [Jalankan pengujian Appium secara otomatis di Device FarmMengintegrasikan tes Appium dengan Device Farm](test-types-appium.md)

## Konfigurasikan paket uji Appium Anda
<a name="test-types-appium-prepare"></a>

Gunakan petunjuk berikut untuk mengonfigurasi paket pengujian Anda.

------
#### [ Java (JUnit) ]

1. Ubah `pom.xml` untuk mengatur kemasan ke file JAR:

   ```
   <groupId>com.acme</groupId>
   <artifactId>acme-myApp-appium</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   ```

1. Ubah `pom.xml` `maven-jar-plugin` untuk digunakan untuk membangun pengujian Anda menjadi file JAR.

   Plugin berikut membangun kode sumber pengujian Anda (apa pun di `src/test` direktori) ke dalam file JAR:

   ```
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-jar-plugin</artifactId>
     <version>2.6</version>
     <executions>
       <execution>
         <goals>
           <goal>test-jar</goal>
         </goals>
       </execution>
     </executions>
   </plugin>
   ```

1. Ubah `pom.xml` untuk digunakan `maven-dependency-plugin` untuk membangun dependensi sebagai file JAR.

   Plugin berikut menyalin dependensi Anda ke direktori: `dependency-jars` 

   ```
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-dependency-plugin</artifactId>
     <version>2.10</version>
     <executions>
       <execution>
         <id>copy-dependencies</id>
         <phase>package</phase>
         <goals>
           <goal>copy-dependencies</goal>
         </goals>
         <configuration>
           <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
         </configuration>
       </execution>
     </executions>
   </plugin>
   ```

1. Simpan rakitan XHTML berikut ke`src/main/assembly/zip.xml`.

   XHTML berikut adalah definisi perakitan yang, ketika dikonfigurasi, menginstruksikan Maven untuk membuat file.zip yang berisi segala sesuatu di root direktori keluaran build Anda dan direktori: `dependency-jars` 

   ```
   <assembly
       xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
     <id>zip</id>
     <formats>
       <format>zip</format>
     </formats>
     <includeBaseDirectory>false</includeBaseDirectory>
     <fileSets>
       <fileSet>
         <directory>${project.build.directory}</directory>
         <outputDirectory>./</outputDirectory>
         <includes>
           <include>*.jar</include>
         </includes>
       </fileSet>
       <fileSet>
         <directory>${project.build.directory}</directory>
         <outputDirectory>./</outputDirectory>
         <includes>
           <include>/dependency-jars/</include>
         </includes>
       </fileSet>
     </fileSets>
   </assembly>
   ```

1. Ubah `pom.xml` untuk digunakan `maven-assembly-plugin` untuk mengemas tes dan semua dependensi menjadi satu file.zip.

   Plugin berikut menggunakan rakitan sebelumnya untuk membuat file.zip bernama `zip-with-dependencies` di direktori keluaran build setiap kali **mvn package** dijalankan: 

   ```
   <plugin>
     <artifactId>maven-assembly-plugin</artifactId>
     <version>2.5.4</version>
     <executions>
       <execution>
         <phase>package</phase>
         <goals>
           <goal>single</goal>
         </goals>
         <configuration>
           <finalName>zip-with-dependencies</finalName>
           <appendAssemblyId>false</appendAssemblyId>
           <descriptors>
             <descriptor>src/main/assembly/zip.xml</descriptor>
           </descriptors>
         </configuration>
       </execution>
     </executions>
   </plugin>
   ```

**catatan**  
Jika Anda menerima kesalahan yang mengatakan anotasi tidak didukung di 1.3, tambahkan yang berikut ini ke`pom.xml`:  

```
<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.7</source>
    <target>1.7</target>
  </configuration>
</plugin>
```

------
#### [ Java (TestNG) ]

1. Ubah `pom.xml` untuk mengatur kemasan ke file JAR:

   ```
   <groupId>com.acme</groupId>
   <artifactId>acme-myApp-appium</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   ```

1. Ubah `pom.xml` `maven-jar-plugin` untuk digunakan untuk membangun pengujian Anda menjadi file JAR.

   Plugin berikut membangun kode sumber pengujian Anda (apa pun di `src/test` direktori) ke dalam file JAR:

   ```
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-jar-plugin</artifactId>
     <version>2.6</version>
     <executions>
       <execution>
         <goals>
           <goal>test-jar</goal>
         </goals>
       </execution>
     </executions>
   </plugin>
   ```

1. Ubah `pom.xml` untuk digunakan `maven-dependency-plugin` untuk membangun dependensi sebagai file JAR.

   Plugin berikut menyalin dependensi Anda ke direktori: `dependency-jars` 

   ```
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-dependency-plugin</artifactId>
     <version>2.10</version>
     <executions>
       <execution>
         <id>copy-dependencies</id>
         <phase>package</phase>
         <goals>
           <goal>copy-dependencies</goal>
         </goals>
         <configuration>
           <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
         </configuration>
       </execution>
     </executions>
   </plugin>
   ```

1. Simpan rakitan XHTML berikut ke`src/main/assembly/zip.xml`.

   XHTML berikut adalah definisi perakitan yang, ketika dikonfigurasi, menginstruksikan Maven untuk membuat file.zip yang berisi segala sesuatu di root direktori keluaran build Anda dan direktori: `dependency-jars` 

   ```
   <assembly
       xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
     <id>zip</id>
     <formats>
       <format>zip</format>
     </formats>
     <includeBaseDirectory>false</includeBaseDirectory>
     <fileSets>
       <fileSet>
         <directory>${project.build.directory}</directory>
         <outputDirectory>./</outputDirectory>
         <includes>
           <include>*.jar</include>
         </includes>
       </fileSet>
       <fileSet>
         <directory>${project.build.directory}</directory>
         <outputDirectory>./</outputDirectory>
         <includes>
           <include>/dependency-jars/</include>
         </includes>
       </fileSet>
     </fileSets>
   </assembly>
   ```

1. Ubah `pom.xml` untuk digunakan `maven-assembly-plugin` untuk mengemas tes dan semua dependensi menjadi satu file.zip.

   Plugin berikut menggunakan rakitan sebelumnya untuk membuat file.zip bernama `zip-with-dependencies` di direktori keluaran build setiap kali **mvn package** dijalankan: 

   ```
   <plugin>
     <artifactId>maven-assembly-plugin</artifactId>
     <version>2.5.4</version>
     <executions>
       <execution>
         <phase>package</phase>
         <goals>
           <goal>single</goal>
         </goals>
         <configuration>
           <finalName>zip-with-dependencies</finalName>
           <appendAssemblyId>false</appendAssemblyId>
           <descriptors>
             <descriptor>src/main/assembly/zip.xml</descriptor>
           </descriptors>
         </configuration>
       </execution>
     </executions>
   </plugin>
   ```

**catatan**  
Jika Anda menerima kesalahan yang mengatakan anotasi tidak didukung di 1.3, tambahkan yang berikut ini ke`pom.xml`:  

```
<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.7</source>
    <target>1.7</target>
  </configuration>
</plugin>
```

------
#### [ Node.JS ]

Untuk mengemas pengujian Appium Node.js dan mengunggahnya ke Device Farm, Anda harus menginstal yang berikut ini di mesin lokal Anda:
+ [Manajer Versi Node (nvm)](https://github.com/nvm-sh/nvm) 

  Gunakan alat ini saat Anda mengembangkan dan mengemas pengujian Anda sehingga dependensi yang tidak perlu tidak disertakan dalam paket pengujian Anda.
+ Node.js
+ npm-bundle (diinstal secara global)

1. Verifikasi bahwa nvm ada

   ```
   command -v nvm
   ```

   Anda harus melihat `nvm` sebagai output.

   Untuk informasi lebih lanjut, lihat [nvm](https://github.com/nvm-sh/nvm) di. GitHub

1. Jalankan perintah ini untuk menginstal Node.js:

   ```
   nvm install node
   ```

   Anda dapat menentukan versi tertentu dari Node.js:

   ```
   nvm install 11.4.0
   ```

1. Verifikasi bahwa versi Node yang benar sedang digunakan:

   ```
   node -v
   ```

1. Instal **npm-bundle** secara global:

   ```
   npm install -g npm-bundle
   ```

------
#### [ Python ]

1. Kami sangat menyarankan Anda menyiapkan [virtualenv Python](https://pypi.python.org/pypi/virtualenv) untuk mengembangkan dan mengemas pengujian sehingga dependensi yang tidak perlu tidak disertakan dalam paket aplikasi Anda.

   ```
   $ virtualenv workspace
   $ cd workspace
   $ source bin/activate
   ```
**Tip**  
Jangan membuat virtualenv Python dengan `--system-site-packages` opsi, karena itu mewarisi paket dari direktori paket situs global Anda. Ini dapat mengakibatkan termasuk dependensi di lingkungan virtual Anda yang tidak diperlukan oleh pengujian Anda.
Anda juga harus memverifikasi bahwa pengujian Anda tidak menggunakan dependensi yang bergantung pada pustaka asli, karena pustaka asli ini mungkin tidak ada pada instance tempat pengujian ini dijalankan.

1. Instal **py.test** di lingkungan virtual Anda.

   ```
   $ pip install pytest
   ```

1. Instal klien Appium Python di lingkungan virtual Anda.

   ```
   $ pip install Appium-Python-Client
   ```

1. Kecuali Anda menentukan jalur yang berbeda dalam mode kustom, Device Farm mengharapkan pengujian Anda disimpan`tests/`. Anda dapat menggunakan `find` untuk menampilkan semua file di dalam folder:

   ```
   $ find tests/
   ```

   Konfirmasikan bahwa file-file ini berisi rangkaian pengujian yang ingin Anda jalankan di Device Farm

   ```
   tests/
   tests/my-first-tests.py
   tests/my-second-tests/py
   ```

1. Jalankan perintah ini dari folder ruang kerja lingkungan virtual Anda untuk menampilkan daftar pengujian Anda tanpa menjalankannya.

   ```
   $ py.test --collect-only tests/
   ```

   Konfirmasikan bahwa output menunjukkan pengujian yang ingin Anda jalankan di Device Farm.

1. Bersihkan semua file yang di-cache di bawah folder tests/Anda:

   ```
   $ find . -name '__pycache__' -type d -exec rm -r {} +
   $ find . -name '*.pyc' -exec rm -f {} +
   $ find . -name '*.pyo' -exec rm -f {} +
   $ find . -name '*~' -exec rm -f {} +
   ```

1. Jalankan perintah berikut di ruang kerja Anda untuk menghasilkan file requirements.txt:

   ```
   $ pip freeze > requirements.txt
   ```

------
#### [ Ruby ]

Untuk mengemas tes Appium Ruby Anda dan mengunggahnya ke Device Farm, Anda harus menginstal yang berikut ini di mesin lokal Anda:
+ [Manajer Versi Ruby (RVM)](https://rvm.io/rvm/install)

  Gunakan alat baris perintah ini saat Anda mengembangkan dan mengemas pengujian Anda sehingga dependensi yang tidak perlu tidak disertakan dalam paket pengujian Anda. 
+ Ruby
+ Bundler (Permata ini biasanya dipasang dengan Ruby.)

1. Instal kunci yang diperlukan, RVM, dan Ruby. Untuk petunjuk, lihat [Menginstal RVM di situs web](https://rvm.io/rvm/install) RVM.

   Setelah instalasi selesai, muat ulang terminal Anda dengan keluar dan kemudian masuk lagi.
**catatan**  
RVM dimuat sebagai fungsi untuk shell bash saja.

1. Verifikasi bahwa **rvm** sudah terpasang dengan benar

   ```
   command -v rvm
   ```

   Anda harus melihat `rvm` sebagai output.

1. Jika Anda ingin menginstal versi Ruby tertentu, seperti*2.5.3*, jalankan perintah berikut:

   ```
   rvm install ruby 2.5.3 --autolibs=0
   ```

   Verifikasi bahwa Anda menggunakan versi Ruby yang diminta:

   ```
   ruby -v
   ```

1. Konfigurasikan bundler untuk mengkompilasi paket untuk platform pengujian yang Anda inginkan:

   ```
   bundle config specific_platform true
   ```

1. Perbarui file.lock Anda untuk menambahkan platform yang diperlukan untuk menjalankan pengujian.
   + Jika Anda mengompilasi pengujian untuk dijalankan di perangkat Android, jalankan perintah ini untuk mengonfigurasi Gemfile agar menggunakan dependensi untuk host pengujian Android:

     ```
     bundle lock --add-platform x86_64-linux
     ```
   + Jika Anda mengompilasi pengujian untuk dijalankan di perangkat iOS, jalankan perintah ini untuk mengonfigurasi Gemfile agar menggunakan dependensi untuk host uji iOS:

     ```
     bundle lock --add-platform x86_64-darwin
     ```

1. **bundler**Permata biasanya dipasang secara default. Jika tidak, instal:

   ```
   gem install bundler -v 2.3.26
   ```

------

## Buat file paket uji zip
<a name="test-types-appium-create-a-zip"></a>

**Awas**  
Di Device Farm, struktur folder file dalam paket pengujian zip Anda penting, dan beberapa alat arsip akan mengubah struktur file ZIP Anda secara implisit. Kami menyarankan Anda mengikuti utilitas baris perintah yang ditentukan di bawah ini daripada menggunakan utilitas arsip yang dibangun ke dalam pengelola file desktop lokal Anda (seperti Finder atau Windows Explorer).

Sekarang, bundel pengujian Anda untuk Device Farm.

------
#### [ Java (JUnit) ]

Bangun dan kemas pengujian Anda:

```
$ mvn clean package -DskipTests=true
```

File `zip-with-dependencies.zip` akan dibuat sebagai hasilnya. Ini adalah paket tes Anda.

------
#### [ Java (TestNG) ]

Bangun dan kemas pengujian Anda:

```
$ mvn clean package -DskipTests=true
```

File `zip-with-dependencies.zip` akan dibuat sebagai hasilnya. Ini adalah paket tes Anda.

------
#### [ Node.JS ]

1. Periksa proyek Anda.

   Pastikan Anda berada di direktori root proyek Anda. Anda dapat `package.json` melihat di direktori root.

1. Jalankan perintah ini untuk menginstal dependensi lokal Anda.

   ```
   npm install
   ```

   Perintah ini juga membuat `node_modules` folder di dalam direktori Anda saat ini.
**catatan**  
Pada titik ini, Anda harus dapat menjalankan pengujian Anda secara lokal.

1. Jalankan perintah ini untuk mengemas file di folder Anda saat ini ke dalam file\$1.tgz. File diberi nama menggunakan `name` properti di `package.json` file Anda.

   ```
   npm-bundle
   ```

   File tarball (.tgz) ini berisi semua kode dan dependensi Anda.

1. Jalankan perintah ini untuk menggabungkan tarball (\$1.tgz file) yang dihasilkan pada langkah sebelumnya ke dalam satu arsip zip:

   ```
   zip -r MyTests.zip *.tgz
   ```

   Ini adalah `MyTests.zip` file yang Anda unggah ke Device Farm dalam prosedur berikut.

------
#### [ Python ]

Python 2  
Buat arsip paket Python yang diperlukan (disebut “wheelhouse”) menggunakan pip:  

```
$ pip wheel --wheel-dir wheelhouse -r requirements.txt
```
Package ruang kemudi, pengujian, dan persyaratan pip Anda ke dalam arsip zip untuk Device Farm:  

```
$ zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt
```

Python 3  
Package tes dan persyaratan pip Anda ke dalam file zip:  

```
$ zip -r test_bundle.zip tests/ requirements.txt
```

------
#### [ Ruby ]

1. Jalankan perintah ini untuk membuat lingkungan Ruby virtual:

   ```
   # myGemset is the name of your virtual Ruby environment
   rvm gemset create myGemset
   ```

1. Jalankan perintah ini untuk menggunakan lingkungan yang baru saja Anda buat:

   ```
   rvm gemset use myGemset
   ```

1. Periksa kode sumber Anda.

   Pastikan Anda berada di direktori root proyek Anda. Anda dapat `Gemfile` melihat di direktori root.

1. Jalankan perintah ini untuk menginstal dependensi lokal Anda dan semua permata dari: `Gemfile`

   ```
   bundle install
   ```
**catatan**  
Pada titik ini, Anda harus dapat menjalankan pengujian Anda secara lokal. Gunakan perintah ini untuk menjalankan pengujian secara lokal:  

   ```
   bundle exec $test_command
   ```

1. Package permata Anda di `vendor/cache` folder.

   ```
   # This will copy all the .gem files needed to run your tests into the vendor/cache directory
   bundle package --all-platforms
   ```

1. Jalankan perintah berikut untuk menggabungkan kode sumber Anda, bersama dengan semua dependensi Anda, ke dalam satu arsip zip:

   ```
   zip -r MyTests.zip Gemfile vendor/ $(any other source code directory files)
   ```

   Ini adalah `MyTests.zip` file yang Anda unggah ke Device Farm dalam prosedur berikut.

------

## Unggah paket pengujian Anda ke Device Farm
<a name="test-types-appium-upload"></a>

Anda dapat menggunakan konsol Device Farm untuk mengunggah pengujian.

1. Masuk ke konsol Device Farm di [https://console.aws.amazon.com/devicefarm](https://console.aws.amazon.com/devicefarm).

1. Pada panel navigasi Device Farm, pilih **Pengujian Perangkat Seluler**, lalu pilih **Proyek**.

1. Jika Anda adalah pengguna baru, pilih **Proyek baru**, masukkan nama untuk proyek, lalu pilih **Kirim**.

   Jika Anda sudah memiliki proyek, Anda dapat memilihnya untuk mengunggah tes Anda ke sana.

1. Buka proyek Anda, lalu pilih **Create run**.

1. Di bawah **pengaturan Jalankan**, berikan nama yang sesuai pada pengujian Anda. Ini mungkin berisi kombinasi spasi atau tanda baca.

1.   
Untuk pengujian Android dan iOS asli  
Di bawah **Pengaturan Jalankan**, pilih **aplikasi Android** jika Anda menguji aplikasi Android (.apk), atau pilih **aplikasi iOS** jika Anda menguji aplikasi iOS (.ipa). Kemudian, di bawah **Pilih aplikasi**, pilih **Unggah aplikasi sendiri** untuk mengunggah paket yang dapat didistribusikan aplikasi Anda.  
 File harus berupa Android `.apk` atau iOS`.ipa`. Aplikasi iOS harus dibangun untuk perangkat nyata, bukan Simulator.   
Untuk pengujian aplikasi Web Seluler  
Di bawah **Setelan Jalankan**, pilih **Aplikasi Web**.

1. Di bawah **Configure test**, di bagian **Select test framework**, pilih framework Appium yang Anda uji, lalu **Upload paket pengujian Anda sendiri**.

1. Jelajahi dan pilih file.zip yang berisi pengujian Anda. File.zip harus mengikuti format yang dijelaskan dalam[Konfigurasikan paket uji Appium Anda](#test-types-appium-prepare).

1. Ikuti petunjuk untuk memilih perangkat dan mulai menjalankan. Untuk informasi selengkapnya, lihat [Membuat uji coba di Device Farm](how-to-create-test-run.md).

**catatan**  
Device Farm tidak mengubah pengujian Appium.

## Ambil tangkapan layar pengujian Anda (Opsional)
<a name="test-types-appium-screenshots"></a>

Anda dapat mengambil tangkapan layar sebagai bagian dari pengujian Anda.

Device Farm menyetel `DEVICEFARM_SCREENSHOT_PATH` properti ke jalur yang sepenuhnya memenuhi syarat pada sistem file lokal tempat Device Farm mengharapkan tangkapan layar Appium disimpan. Direktori khusus uji tempat tangkapan layar disimpan ditentukan saat runtime. Tangkapan layar ditarik ke laporan Device Farm Anda secara otomatis. Untuk melihat tangkapan layar, di konsol Device Farm, pilih bagian **Screenshots**.

 Untuk informasi selengkapnya tentang pengambilan tangkapan layar dalam pengujian Appium, lihat [Mengambil Screenshot di dokumentasi](http://appium.io/docs/en/commands/session/screenshot/) Appium API. 