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ı:
Test çalıştırması başlatma yönergelerini kullanarak bir App Center Test karşıya yükleme komutu oluşturun.
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
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_RESET
true
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.