Menyiapkan Uji Appium untuk Diunggah

Penting

Visual Studio App Center dijadwalkan untuk dihentikan pada 31 Maret 2025. Meskipun Anda dapat terus menggunakan Visual Studio App Center hingga sepenuhnya dihentikan, ada beberapa alternatif yang direkomendasikan yang dapat Anda pertimbangkan untuk bermigrasi.

Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.

Langkah-langkah untuk menyiapkan aplikasi dan rangkaian pengujiannya untuk diunggah bervariasi tergantung pada kerangka kerja pengujian. Panduan ini cara menyiapkan pengujian Appium menggunakan Java dengan JUnit untuk diunggah ke App Center. Untuk panduan tentang penulisan pengujian Appium, lihat dokumentasi Appium.

Perhatikan batasan berikut untuk dukungan Appium:

Catatan

Konteks WebView, Chrome Web Driver, dan pengujian browser Chrome dengan browserName kemampuan didukung!

  • Tidak ada dukungan untuk TestNG (hanya tes JUnit yang didukung).
  • Tidak ada dukungan untuk Android 4.2 atau sebelumnya. Tidak ada dukungan untuk driver UIAutomator yang tidak digunakan lagi.
  • Tidak ada dukungan untuk iOS 9.2.1 atau sebelumnya. Tidak ada dukungan untuk driver IOS UIAutomation yang tidak digunakan lagi.
  • Tidak ada dukungan untuk JUnit @Category attribute. (Dapat menggunakan Sertakan/Kecualikan sebagai gantinya)
  • Versi Maven harus minimal 3.3.9.
  • Versi Appium saat ini adalah 1.22.0. Ini diperbarui secara teratur dengan rilis baru.
  • JUnit 4.9 - 4.12 didukung; kami tidak mendukung JUnit 5.
  • Pengujian harus menargetkan satu aplikasi dengan tepat. (MobileCapabilityType.FULL_RESET didukung)

Catatan

Dalam beberapa kasus, pengujian masih dapat berfungsi di App Center jika menggunakan alat atau fitur yang tidak didukung. Namun, fungsionalitas yang tidak didukung tersebut tidak akan diperbarui QA di masa mendatang dan dapat rusak tanpa peringatan.

Prasyarat

Pengujian akan dijalankan menggunakan Maven Surefire, yang memerlukan pengujian untuk mengikuti konvensi penamaan tertentu:

"**/Test*.java" - includes all of its subdirectories and all Java filenames that start with "Test".
"**/*Test.java" - includes all of its subdirectories and all Java filenames that end with "Test".
"**/*Tests.java" - includes all of its subdirectories and all Java filenames that end with "Tests".
"**/*TestCase.java" - includes all of its subdirectories and all Java filenames that end with "TestCase".

Sebelum mencoba mengunggah ke Uji App Center, pastikan bahwa menjalankan pengujian secara lokal di komputer Anda menggunakan Maven berfungsi:

➜  AppiumTest git:(main) ✗ mvn verify
...
Running MainTest
started: SimpleTest (MainTest)
Setting up capabilities
failed
finished
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.728 sec <<< FAILURE!
SimpleTest(MainTest)  Time elapsed: 0.594 sec  <<< ERROR!
...

Jika Anda tidak dapat menjalankan pengujian menggunakan baris perintah secara lokal, pengujian juga tidak akan berfungsi di Pengujian App Center.

1. Perubahan pada sistem build

Langkah 1 - Tambahkan dependensi

Anda harus menambahkan dependensi untuk ekstensi pengujian Appium:

<dependency>
    <groupId>com.microsoft.appcenter</groupId>
    <artifactId>appium-test-extension</artifactId>
    <version>1.6</version>
</dependency>

Kode ini akan memastikan driver Android dan iOS yang disempurnakan tersedia pada waktu kompilasi. Driver yang disempurnakan disediakan terutama untuk mengaktifkan fitur.label Lihat Langkah 4 untuk detail selengkapnya tentang fitur ini label .

Langkah 2 - Tambahkan profil unggahan

Salin cuplikan ini ke dalam <profiles> tag Andapom.xml. Jika tidak <profiles> ada bagian di pom Anda, buatlah satu. Profil, ketika diaktifkan, akan mengemas kelas pengujian Anda dan semua dependensi ke target/upload dalam folder, siap untuk diunggah ke Pengujian.

2. Perubahan pada tes

Langkah 1 - Menambahkan impor

Impor paket ini ke kelas pengujian Anda:

import com.microsoft.appcenter.appium.Factory;
import com.microsoft.appcenter.appium.EnhancedAndroidDriver;
import org.junit.rules.TestWatcher;
import org.junit.Rule;

Langkah 2 - Membuat Instans TestWatcher

Sisipkan deklarasi ini di setiap kelas pengujian Anda:

    @Rule
    public TestWatcher watcher = Factory.createWatcher();

Langkah 3 - Perbarui deklarasi driver Anda

Ganti deklarasiAndroidDriver<MobileElement> Anda dengan EnhancedAndroidDriver<MobileElement> atau IOSDriver<MobileElement> dengan EnhancedIOSDriver<MobileElement>

    private static EnhancedAndroidDriver<MobileElement> driver;

Langkah 4 - Memperbarui instansiasi driver Anda

Ganti cara Anda membuat instans driver Anda, sehingga baris dalam bentuk:

    driver = new AndroidDriver<MobileElement>(url, capabilities);

... diubah menjadi:

    driver = Factory.createAndroidDriver(url, capabilities);

Menggunakan driver ini masih akan memungkinkan Anda menjalankan pengujian secara lokal tanpa modifikasi tambahan, tetapi memungkinkan Anda untuk "memberi label" langkah-langkah pengujian dalam eksekusi pengujian Anda menggunakan driver.label("text"). Teks dan cuplikan layar dari perangkat akan terlihat dalam laporan pengujian di App Center.

Disarankan untuk memanggil driver.label dalam @After metode , yang mengambil cuplikan layar status akhir aplikasi. Contoh @After metode untuk pengujian dapat terlihat seperti kode ini:

    @After
    public void TearDown(){
        driver.label("Stopping App");
        driver.quit();
    }

3. Unggah ke Uji App Center

Langkah-langkah untuk mengunggah pengujian:

  1. Buat perintah unggahan Uji App Center menggunakan instruksi saat memulai uji coba.

  2. Kemas kelas pengujian Anda dan semua dependensi ke target/upload dalam folder:

    mvn -DskipTests -P prepare-for-upload package
    
  3. Jalankan perintah unggahan:

    appcenter test run appium --app "APP_ID" --devices "DEVICE_SET_ID" --app-path PATH_TO_FILE.apk  --test-series "main" --locale "en_US" --build-dir target/upload
    

4. Pemecahan Masalah Performa

Pengujian pada perangkat di App Center akan berjalan sedikit lebih lambat daripada di perangkat lokal. Biasanya, eksekusi yang lebih lambat lebih besar daripada dengan memiliki lebih banyak perangkat yang tersedia, memungkinkan pengujian paralel berjalan.

Ada tiga sumber utama eksekusi pengujian yang lebih lambat: penandatanganan ulang, penginstalan ulang, dan tugas jaringan.

Penandatanganan ulang (di iOS)

Sebelum diinstal di perangkat iOS, aplikasi Anda melalui proses yang disebut penandatanganan ulang. Proses ini diperlukan untuk membuat profil provisi cocok dengan perangkat di cloud. Penandatanganan ulang memang memakan waktu, biasanya ~1-2 menit. Jarang, penandatanganan ulang juga menyebabkan penurunan performa karena aplikasi yang ditandatangani ulang di-cache. Proses yang memakan waktu hanya akan berjalan sekali per biner.

Jika pengaturan Pengiriman Berkelanjutan Anda memperbarui versi IPA sebelum membangun dan menguji, maka biner akan berbeda untuk setiap pengujian dan penalti penandatanganan ulang akan terjadi lebih sering.

Penginstalan ulang

Di cloud perangkat bersama, penting bagi kami untuk menjamin bahwa perangkat dibersihkan di antara setiap pengujian. Pelanggan berikutnya yang menggunakan perangkat mungkin seseorang dari organisasi lain. Di App Center Test, aplikasi secara otomatis dihapus instalannya setelah selesai uji coba Anda.

Dimungkinkan untuk menghilangkan MobileCapabilityType.FULL_RESET dan mengatur MobileCapabilityType.NO_RESET ke true untuk mempercepat eksekusi pengujian. Lihat Mengatur Ulang Strategi untuk detailnya.

Tugas Jaringan

Tugas jaringan lokal lebih cepat karena server lebih dekat dan lebih didedikasikan untuk host jarak jauh.