Appium Testlerini Karşıya Yükleme için Hazırlama

Önemli

Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırılıyor. Tamamen kullanımdan kaldırılana kadar Visual Studio App Center'ı kullanmaya devam edebilirsiniz ancak geçiş yapmayı düşünebileceğiniz birkaç önerilen alternatif vardır.

Destek zaman çizelgeleri ve alternatifleri hakkında daha fazla bilgi edinin.

Bir uygulamayı ve test paketini karşıya yükleme için hazırlama adımları, test çerçevesine bağlı olarak değişir. Bu kılavuz, App Center'a yüklemek üzere JUnit ile Java kullanarak Appium testlerini hazırlama. Appium testleri yazma yönergeleri için Appium belgelerine bakın.

Appium desteği için aşağıdaki sınırlamalara dikkat edin:

Not

WebView bağlamı, Chrome Web Sürücüsü ve Özellik ile browserName Chrome tarayıcı testi desteklenir!

  • TestNG desteği yoktur (yalnızca JUnit testleri desteklenir).
  • Android 4.2 veya önceki sürümler için destek yok. Kullanım dışı UIAutomator sürücüsü için destek yok.
  • iOS 9.2.1 veya öncesi için destek yok. Kullanım dışı bırakılmış UIAutomation iOS sürücüsü için destek yok.
  • için JUnit @Category attributedestek yok. (Bunun yerine Dahil Et/Dışla kullanabilir)
  • Maven sürümü en az 3.3.9 olmalıdır.
  • Geçerli Appium sürümü 1.22.0'dır. Yeni sürümlerle düzenli olarak güncelleştirilir.
  • JUnit 4.9 - 4.12 desteklenir; JUnit 5'i desteklemiyoruz.
  • Testler tam olarak bir uygulamayı hedeflemelidir. (MobileCapabilityType.FULL_RESET desteklenir)

Not

Bazı durumlarda, desteklenmeyen araçlar veya özellikler kullanılıyorsa testler App Center'da çalışmaya devam edebilir. Ancak, desteklenmeyen işlevsellik gelecekteki güncelleştirmelerde Soru-Cevap değildir ve uyarı olmadan bozulabilir.

Önkoşullar

Testler Maven Surefire kullanılarak çalıştırılır ve bazı adlandırma kurallarına uyması için testler gerekir:

"**/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".

App Center Test'e yüklemeyi denemeden önce Maven kullanarak makinenizde testleri yerel olarak çalıştırmanın çalıştığından emin olun:

➜  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!
...

Testleri komut satırını yerel olarak kullanarak çalıştıramıyorsanız, testler App Center Test'te de çalışmaz.

1. Derleme sisteminde yapılan değişiklikler

1. Adım - Bağımlılık ekleme

Appium test uzantıları için bir bağımlılık eklemeniz gerekir:

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

Bu kod, gelişmiş Android ve iOS sürücülerinin derleme zamanında kullanılabilir olmasını sağlar. Gelişmiş sürücüler öncelikle özelliği etkinleştirmek label için sağlanır. Özellik hakkında label daha fazla ayrıntı için bkz. 4. Adım.

2. Adım - Karşıya yükleme profili ekleme

Bu kod parçacığını etiketindeki <profiles> dosyanıza pom.xml kopyalayın. Pomunuzda bölüm yoksa <profiles> , bir tane yapın. Profil etkinleştirildiğinde test sınıflarınızı ve tüm bağımlılıklarınızı Test'e yüklenmeye hazır olarak klasörüne target/upload paketler.

2. Testlerde yapılan değişiklikler

1. Adım - İçeri aktarmaları ekleme

Bu paketleri test sınıflarınıza aktarabilirsiniz:

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

2. Adım - TestWatcher örneği oluşturma

Bu bildirimi test sınıflarınızın her birine ekleyin:

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

3. Adım - Sürücü bildiriminizi güncelleştirme

bildiriminiziAndroidDriver<MobileElement> veya IOSDriver<MobileElement> ile EnhancedAndroidDriver<MobileElement> değiştirinEnhancedIOSDriver<MobileElement>

    private static EnhancedAndroidDriver<MobileElement> driver;

4. Adım - Sürücü örnek oluşturmalarınızı güncelleştirme

Sürücünüzün örneğini oluşturma şeklinizi şu şekilde değiştirin:

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

... olarak değiştirildi:

    driver = Factory.createAndroidDriver(url, capabilities);

Bu sürücülerin kullanılması, ek değişiklikler yapmadan testlerinizi yerel olarak çalıştırmanıza izin verir, ancak kullanarak driver.label("text")test yürütmenizde test adımlarını "etiketlemenize" olanak tanır. Cihazdan alınan metin ve ekran görüntüsü App Center'daki test raporunda görünür.

Uygulamanın son durumunun @After ekran görüntüsünü alan yönteminde çağrısının driver.label kullanılması önerilir. Test için örnek @After bir yöntem şu koda benzer olabilir:

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

3. App Center Testine Yükleme

Testi karşıya yükleme adımları:

  1. Test çalıştırması başlatma yönergelerini kullanarak bir App Center Test karşıya yükleme komutu oluşturun.

  2. Test sınıflarınızı ve tüm bağımlılıklarınızı klasörüne paketle target/upload :

    mvn -DskipTests -P prepare-for-upload package
    
  3. Karşıya yükleme komutunu çalıştırın:

    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. Performans Sorunlarını Giderme

App Center'daki cihazlardaki testler yerel bir cihazdan biraz daha yavaş yürütülür. Normalde, paralel test çalıştırmaları için daha fazla cihaz kullanılabilir duruma getirilerek daha yavaş yürütme ağır basılır.

Daha yavaş test çalıştırmalarının üç ana kaynağı vardır: yeniden imzalama, yeniden yükleme ve ağ görevleri.

Yeniden imzalama (iOS'ta)

iOS cihazına yüklenmeden önce uygulamanız yeniden imzalama adlı bir işlemden geçer. Bu işlem, sağlama profilinin buluttaki cihazla eşleşmesini sağlamak için gereklidir. Yeniden imzalama işlemi genellikle yaklaşık 1-2 dakika sürer. Yeniden imzalanan uygulamalar önbelleğe alındığından, yeniden imzalama da nadiren performans düşüşüne neden olur. Zaman alan işlem her ikili dosya için yalnızca bir kez çalıştırılır.

Sürekli Teslim kurulumunuz derlemeden ve test etmeden önce IPA sürümünü güncelleştirirse, ikili her test için farklı olur ve yeniden imzalama cezası daha sık gerçekleşir.

Yeniden

Paylaşılan bir cihaz bulutundaki cihazların her test arasında temizlendiğinden emin olmamız önemlidir. Cihazı kullanan bir sonraki müşteri başka bir kuruluştan biri olabilir. App Center Testi'nde, test çalıştırmanız tamamlandıktan sonra uygulama otomatik olarak kaldırılır.

Test yürütmeyi hızlandırmak için MobileCapabilityType.FULL_RESET atlayıp olarak ayarlamak MobileCapabilityType.NO_RESETtrue mümkündür. Ayrıntılar için bkz. Sıfırlama Stratejileri .

Ağ Görevleri

Sunucu uzak konağa daha yakın ve daha adanmış olduğundan yerel ağ görevleri daha hızlıdır.