Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan Appium dan AWS Device Farm
Bagian ini menjelaskan cara mengonfigurasi, mengemas, dan mengunggah pengujian Appium Anda ke Device Farm. Appium adalah alat open source untuk mengotomatiskan aplikasi web asli dan seluler. Untuk informasi lebih lanjut, lihatPengantar Appiumdi situs web Appium.
Untuk contoh aplikasi dan tautan ke pengujian yang berfungsi, lihatAplikasi Sampel Perkebunan Perangkat untuk AndroiddanAplikasi Sampel Perangkat Pertanian untuk iOSdi atasGitHub.
Dukungan versi
Dukungan untuk berbagai kerangka kerja dan bahasa pemrograman tergantung pada bahasa yang digunakan.
Device Farm
mendukung semua versi server Appium 1.x. Anda dapat memilih versi Appium dengan menggunakanavm
perintah. Misalnya, untuk menggunakan server Appium versi 1.9.1, tambahkan perintah ini ke file YAMM spesifikasi pengujian Anda:
phases:
install:
commands:
# To install a newer version of Appium such as version 1.9.1:
- export APPIUM_VERSION=1.9.1
- avm $APPIUM_VERSION
- ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js
Untuk menggunakan semua fitur kerangka kerja, seperti anotasi, pilih lingkungan pengujian khusus, dan gunakan AWS CLI atauDevice Farm
konsol untuk mengunggah spesifikasi pengujian khusus.
- Java (TestNG)
Saat ini, Device Farm mendukung Java 8 untuk menjalankan pengujian Appium Java.
- Java (JUnit)
Saat ini, Device Farm mendukung Java 8 untuk menjalankan pengujian Appium Java.
- Node.JS
Anda dapat menggunakan versi Node.js apa pun saat menjalankan pengujian Appium Node.js di Device Farm. Tentukan versi Node.js dalam file YAMM spesifikasi pengujian.
- Python
Dalam mode standar, Device Farm mendukung Python versi 2.7 untuk menjalankan pengujian. Dalam mode kustom, Python 2.7 dan Python 3 (3.7) tersedia.
- Ruby
Anda dapat menggunakan versi Ruby apa pun saat menjalankan pengujian Appium Ruby di Device Farm. Tentukan versi Ruby (misalnya, 2.5.1) dalam file YAMM spesifikasi pengujian.
Konfigurasikan paket pengujian Appium Anda
Gunakan petunjuk berikut untuk mengonfigurasi paket pengujian Anda.
- Java (JUnit)
-
-
Memodifikasipom.xml
untuk mengatur kemasan ke file JAR:
<groupId>com.acme</groupId>
<artifactId>acme-myApp-appium</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
-
Memodifikasipom.xml
untuk menggunakanmaven-jar-plugin
untuk membangun tes Anda ke dalam file JAR.
Plugin berikut membangun kode sumber pengujian Anda (apa pun disrc/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>
-
Memodifikasipom.xml
untuk menggunakanmaven-dependency-plugin
untuk membangun dependensi sebagai file JAR.
Plugin berikut menyalin dependensi Anda kedependency-jars
direktori:
<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>
-
Simpan perakitan XHTML berikut kesrc/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 dandependency-jars
direktori:
<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>
-
Memodifikasipom.xml
untuk menggunakanmaven-assembly-plugin
untuk mengemas tes dan semua dependensi ke dalam satu file.zip.
Plugin berikut menggunakan perakitan sebelumnya untuk membuat file.zip bernamazip-with-dependencies
di direktori keluaran build setiap saatmvn packagedijalankan:
<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>
Jika Anda menerima kesalahan yang mengatakan anotasi tidak didukung di 1.3, tambahkan berikut ini kepom.xml
:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
- Java (TestNG)
-
-
Memodifikasipom.xml
untuk mengatur kemasan ke file JAR:
<groupId>com.acme</groupId>
<artifactId>acme-myApp-appium</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
-
Memodifikasipom.xml
untuk menggunakanmaven-jar-plugin
untuk membangun tes Anda ke dalam file JAR.
Plugin berikut membangun kode sumber pengujian Anda (apa pun disrc/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>
-
Memodifikasipom.xml
untuk menggunakanmaven-dependency-plugin
untuk membangun dependensi sebagai file JAR.
Plugin berikut menyalin dependensi Anda kedependency-jars
direktori:
<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>
-
Simpan perakitan XHTML berikut kesrc/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 dandependency-jars
direktori:
<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>
-
Memodifikasipom.xml
untuk menggunakanmaven-assembly-plugin
untuk mengemas tes dan semua dependensi ke dalam satu file.zip.
Plugin berikut menggunakan perakitan sebelumnya untuk membuat file.zip bernamazip-with-dependencies
di direktori keluaran build setiap saatmvn packagedijalankan:
<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>
Jika Anda menerima kesalahan yang mengatakan anotasi tidak didukung di 1.3, tambahkan berikut ini kepom.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 Anda dan mengunggahnya ke Device Farm, Anda harus menginstal yang berikut ini di mesin lokal Anda:
-
Verifikasi bahwa nvm ada
command -v nvm
Anda harus melihatnvm
sebagai output.
Untuk informasi lebih lanjut, lihatnvmdi atasGitHub.
-
Jalankan perintah ini untuk menginstal Node.js:
nvm install node
Anda dapat menentukan versi tertentu dari Node.js:
nvm install 11.4.0
-
Verifikasi bahwa versi Node yang benar sedang digunakan:
node -v
-
Instalnpm-bundlesecara global:
npm install -g npm-bundle
- Python
-
-
Kami sangat menyarankan agar Anda mengaturVirtualenv Pythonuntuk mengembangkan dan mengemas pengujian sehingga dependensi yang tidak perlu tidak disertakan dalam paket aplikasi Anda.
$
virtualenv workspace
$
cd workspace
$
source bin/activate
-
Jangan membuat virtualenv Python dengan--system-site-packages
opsi, karena 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.
-
Instalpy.testdi lingkungan virtual Anda.
$
pip install pytest
-
Instal klien Appium Python di lingkungan virtual Anda.
$
pip install Appium-Python-Client
-
Kecuali Anda menentukan jalur yang berbeda dalam mode kustom, Device Farm mengharapkan pengujian Anda disimpan ditests/
. Anda dapat menggunakanfind
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
-
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.
-
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 {} +
-
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)
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.)
-
Instal kunci yang diperlukan, RVM, dan Ruby. Untuk instruksi, lihatInstalasi RVMdi situs web RVM.
Setelah instalasi selesai, muat ulang terminal Anda dengan keluar dan kemudian masuk lagi.
RVM dimuat sebagai fungsi untuk shell bash saja.
-
Verifikasi bahwarvmdiinstal dengan benar
command -v rvm
Anda harus melihatrvm
sebagai output.
-
Jika Anda ingin menginstal versi Ruby tertentu, seperti2.5.3
, jalankan perintah berikut:
rvm install ruby 2.5.3 --autolibs=0
Verifikasi bahwa Anda menggunakan versi Ruby yang diminta:
ruby -v
-
Konfigurasikan bundler untuk mengkompilasi paket untuk platform pengujian yang Anda inginkan:
bundle config specific_platform true
-
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
-
Thebundlerpermata biasanya diinstal secara default. Jika tidak, instal:
gem install bundler -v 2.3.26
Buat file paket uji zip
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
Berkaszip-with-dependencies.zip
akan dibuat sebagai hasilnya. Ini adalah paket tes Anda.
- Java (TestNG)
-
Bangun dan kemas pengujian Anda:
$ mvn clean package -DskipTests=true
Berkaszip-with-dependencies.zip
akan dibuat sebagai hasilnya. Ini adalah paket tes Anda.
- Node.JS
-
-
Periksa proyek Anda.
Pastikan Anda berada di direktori root proyek Anda. Anda bisa melihatpackage.json
di direktori root.
-
Jalankan perintah ini untuk menginstal dependensi lokal Anda.
npm install
Perintah ini juga menciptakannode_modules
folder di dalam direktori Anda saat ini.
Pada titik ini, Anda harus dapat menjalankan pengujian Anda secara lokal.
-
Jalankan perintah ini untuk mengemas file di folder Anda saat ini ke dalam file*.tgz. File ini diberi nama menggunakanname
properti di Andapackage.json
berkas.
npm-bundle
File tarball (.tgz) ini berisi semua kode dan dependensi Anda.
-
Jalankan perintah ini untuk menggabungkan tarball (*.tgz file) yang dihasilkan pada langkah sebelumnya ke dalam satu arsip zip:
zip -r MyTests.zip
*.tgz
Ini adalahMyTests.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
Kemas 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
-
Kemas pengujian dan persyaratan pip Anda ke dalam file zip:
$
zip -r test_bundle.zip
tests/ requirements.txt
- Ruby
-
-
Jalankan perintah ini untuk membuat lingkungan Ruby virtual:
# myGemset is the name of your virtual Ruby environment
rvm gemset create myGemset
-
Jalankan perintah ini untuk menggunakan lingkungan yang baru saja Anda buat:
rvm gemset use myGemset
-
Periksa kode sumber Anda.
Pastikan Anda berada di direktori root proyek Anda. Anda bisa melihatGemfile
di direktori root.
-
Jalankan perintah ini untuk menginstal dependensi lokal Anda dan semua permata dariGemfile
:
bundle install
Pada titik ini, Anda harus dapat menjalankan pengujian Anda secara lokal. Gunakan perintah ini untuk menjalankan pengujian secara lokal:
bundle exec $test_command
-
Paket permata Anda divendor/cache
folder.
# This will copy all the .gem files needed to run your tests into the vendor/cache directory
bundle package --all-platforms
-
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 adalahMyTests.zip
file yang Anda unggah ke Device Farm dalam prosedur berikut.
Unggah paket pengujian Anda ke Device Farm
Anda dapat menggunakan konsol Device Farm untuk mengunggah pengujian Anda.
Masuk ke konsol Device Farm dihttps://console.aws.amazon.com/devicefarm.
-
Pada panel navigasi Device Farm, pilihPengujian Perangkat Seluler, lalu pilihProyek.
-
Jika Anda adalah pengguna baru, pilihProyek baru, masukkan nama untuk proyek, lalu pilihKirim.
Jika Anda sudah memiliki proyek, Anda dapat memilihnya untuk mengunggah tes Anda ke sana.
-
Buka proyek Anda, lalu pilihBuat run baru.
-
- Untuk pengujian Android dan iOS asli
-
PadaPilih aplikasihalaman, pilihAplikasi Seluler, lalu pilihPilih Fileuntuk mengunggah paket aplikasi yang dapat didistribusikan.
File harus berupa Android.apk
atau iOS.ipa
. Aplikasi iOS harus dibangun untuk perangkat nyata, bukan Simulator.
- Untuk pengujian aplikasi Web Seluler
PadaPilih aplikasihalaman, pilihAplikasi Web.
-
Berikan tes Anda nama yang sesuai. Ini mungkin berisi kombinasi spasi atau tanda baca.
-
Pilih Selanjutnya.
-
PadaKonfigurasikanhalaman, diSetup kerangka ujibagian, pilihAppiumbahasa
, makaPilih File.
-
Jelajahi dan pilih file.zip yang berisi pengujian Anda. File.zip harus mengikuti format yang dijelaskan dalamKonfigurasikan paket pengujian Appium Anda.
-
Pilih salah satuJalankan pengujian Anda di lingkungan standar kamiatauJalankan pengujian Anda di lingkungan khusus. Lingkungan standar memiliki pelaporan terperinci per pengujian, sementara lingkungan khusus mampu menjalankan harness pengujian khusus yang dibangun di atas kerangka kerja apa pun.
Menggunakan lingkungan khusus memungkinkan kontrol penuh atas penyiapan pengujian, pembongkaran, dan pemanggilan, serta memilih versi runtime dan server Appium tertentu. Beberapa fitur bahasa (seperti Python 3 atau eksekusi TestNG kustom) hanya tersedia melalui lingkungan khusus:
- Java (JUnit)
-
JUnit berjalan di lingkungan standar dan kustom tanpa masalah
- Java (TestNG)
-
Memanggil TestNG menggunakantestng.xml
konfigurasi hanya tersedia dalam Mode Kustom.
- Node.JS
-
Mode Kustom memungkinkan Anda menentukan parameter tambahan atau menggunakan pemanggilan yang tidak standar dari kerangka pengujian Anda.
- Python
-
Python 2.7 didukung di lingkungan standar dan menggunakan Mode Kustom. Ini adalah default di keduanya saat menentukan Python.
Python 3 hanya didukung dalam Mode Kustom. Untuk memilih Python 3 sebagai versi python Anda, ubah spesifikasi pengujian untuk mengaturPYTHON_VERSION
ke 3, seperti yang ditunjukkan di sini:
phases:
install:
commands:
# ...
- export PYTHON_VERSION=3
- export APPIUM_VERSION=1.14.2
# Activate the Virtual Environment that Device Farm sets up for Python 3, then use Pip to install required packages.
- cd $DEVICEFARM_TEST_PACKAGE_PATH
- . bin/activate
- pip install -r requirements.txt
# ...
- Ruby
-
Dalam Mode Kustom, Anda dapat menentukan versi Ruby tertentu denganrvmperintah:
phases:
install:
commands:
- rvm install version
--autolibs=0
- rvm use version
-
PilihBerikutnya, dan kemudian ikuti instruksi untuk memilih perangkat dan mulai menjalankan. Untuk informasi selengkapnya, lihat Buat uji coba di Device Farm.
Device Farm tidak mengubah pengujian Appium.
Ambil tangkapan layar pengujian Anda (Opsional)
Anda dapat mengambil tangkapan layar sebagai bagian dari pengujian Anda.
Device Farm menetapkanDEVICEFARM_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, pilihTangkapan layarbagian.
Untuk informasi lebih lanjut tentang mengambil tangkapan layar dalam tes Appium, lihatAmbil Screenshotdalam dokumentasi Appium API.