Bekerja dengan Appium dan AWS Device Farm - Device Farm AWS

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, lihat Pengantar Appium di situs web Appium.

Untuk contoh aplikasi dan tautan ke pengujian yang berfungsi, lihat Aplikasi Sampel Device Farm untuk Android dan Aplikasi Sampel Device Farm untuk iOS aktif GitHub.

Dukungan versi

Support untuk berbagai framework dan bahasa pemrograman tergantung pada bahasa yang digunakan.

Device Farm mendukung semua versi server Appium 1.x dan 2.x. Untuk Android, Anda dapat memilih versi Appium utama dengan. devicefarm-cli Misalnya, untuk menggunakan server Appium versi 2, tambahkan perintah ini ke file YAMM spesifikasi pengujian Anda:

phases: install: commands: # To install a newer version of Appium such as version 2: - export APPIUM_VERSION=2 - devicefarm-cli use appium $APPIUM_VERSION

Untuk iOS, Anda dapat memilih versi Appium tertentu dengan perintah avm ataunpm. Misalnya, untuk menggunakan avm perintah untuk menyetel versi server Appium ke 2.1.2, tambahkan perintah ini ke file YAMM spesifikasi pengujian Anda:

phases: install: commands: # To install a newer version of Appium such as version 2.1.2: - export APPIUM_VERSION=2.1.2 - avm $APPIUM_VERSION

Menggunakan npm perintah untuk menggunakan versi terbaru Appium 2, tambahkan perintah ini ke file YAMM spesifikasi pengujian Anda:

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

Untuk informasi selengkapnya tentang devicefarm-cli atau perintah CLI lainnya, lihat referensi AWS CLI.

Untuk menggunakan semua fitur kerangka kerja, seperti anotasi, pilih lingkungan pengujian khusus, dan gunakan AWS CLI atau Device Farm konsol untuk mengunggah spesifikasi pengujian khusus.

Konfigurasikan paket pengujian Appium Anda

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>
  2. 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>
  3. 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>
  4. Simpan rakitan 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 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>
  5. 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 kepom.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>
  2. 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>
  3. 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>
  4. Simpan rakitan 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 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>
  5. 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 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 dan mengunggahnya ke Device Farm, Anda harus menginstal yang berikut ini di mesin lokal Anda:

  • Manajer Versi Node (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 di. GitHub

  2. Jalankan perintah ini untuk menginstal Node.js:

    nvm install node

    Anda dapat menentukan versi tertentu dari Node.js:

    nvm install 11.4.0
  3. Verifikasi bahwa versi Node yang benar sedang digunakan:

    node -v
  4. Instal npm-bundle secara global:

    npm install -g npm-bundle
Python
  1. Kami sangat menyarankan Anda menyiapkan virtualenv Python 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.

  2. Instal py.test di lingkungan virtual Anda.

    $ pip install pytest
  3. Instal klien Appium Python di lingkungan virtual Anda.

    $ pip install Appium-Python-Client
  4. Kecuali Anda menentukan jalur yang berbeda dalam mode kustom, Device Farm mengharapkan pengujian Anda disimpantests/. 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
  5. 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.

  6. 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 {} +
  7. 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.)

  1. Instal kunci yang diperlukan, RVM, dan Ruby. Untuk petunjuk, lihat Menginstal RVM di situs web RVM.

    Setelah instalasi selesai, muat ulang terminal Anda dengan keluar dan kemudian masuk lagi.

    catatan

    RVM dimuat sebagai fungsi untuk shell bash saja.

  2. Verifikasi bahwa rvm sudah terpasang dengan benar

    command -v rvm

    Anda harus melihat rvm sebagai output.

  3. 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
  4. Konfigurasikan bundler untuk mengkompilasi paket untuk platform pengujian yang Anda inginkan:

    bundle config specific_platform true
  5. 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
  6. bundlerPermata biasanya dipasang secara default. Jika tidak, instal:

    gem install bundler -v 2.3.26

Buat file paket uji zip

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.

  2. 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.

  3. Jalankan perintah ini untuk mengemas file di folder Anda saat ini ke dalam file*.tgz. File diberi nama menggunakan name properti di package.json file Anda.

    npm-bundle

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

  4. Jalankan perintah ini untuk menggabungkan tarball (*.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
  2. Jalankan perintah ini untuk menggunakan lingkungan yang baru saja Anda buat:

    rvm gemset use myGemset
  3. Periksa kode sumber Anda.

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

  4. 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
  5. 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
  6. 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

Anda dapat menggunakan konsol Device Farm untuk mengunggah pengujian.

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

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

  3. 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.

  4. Buka project Anda, lalu pilih Create a new run.

  5. Untuk pengujian Android dan iOS asli

    Pada halaman Pilih aplikasi, pilih Aplikasi Seluler, lalu pilih Pilih File untuk mengunggah paket yang dapat didistribusikan aplikasi Anda.

    catatan

    File harus berupa Android .apk atau iOS.ipa. Aplikasi iOS harus dibangun untuk perangkat nyata, bukan Simulator.

    Untuk pengujian aplikasi Web Seluler

    Pada halaman Pilih aplikasi, pilih Aplikasi Web.

  6. Berikan tes Anda nama yang sesuai. Ini mungkin berisi kombinasi spasi atau tanda baca.

  7. Pilih Selanjutnya.

  8. Pada halaman Configure, di bagian Setup test framework, pilih bahasa Appium, lalu Pilih File.

  9. Jelajahi dan pilih file.zip yang berisi pengujian Anda. File.zip harus mengikuti format yang dijelaskan dalamKonfigurasikan paket pengujian Appium Anda.

  10. Pilih Jalankan pengujian Anda di lingkungan khusus. Lingkungan eksekusi ini memungkinkan kontrol penuh atas penyiapan pengujian, pembongkaran, dan pemanggilan, serta memilih versi runtime dan server Appium tertentu. Anda dapat mengonfigurasi lingkungan kustom Anda melalui file spesifikasi pengujian. Untuk informasi selengkapnya, lihat Bekerja dengan lingkungan pengujian khusus di AWS Device Farm.

  11. Pilih Berikutnya, lalu ikuti petunjuk untuk memilih perangkat dan mulai menjalankan. Untuk informasi selengkapnya, lihat Membuat uji coba di Device Farm.

catatan

Device Farm tidak mengubah pengujian Appium.

Ambil tangkapan layar dari tes Anda (Opsional)

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 Appium API.