“Desired capabilities” nedir?
Desired capabilities, Appium’un özüdür. Aslında bunlar, sunucuya ne tür bir otomasyon oturumunun başlatılması gerektiğini söylemek için Appium sunucusuna gönderilen bir dizi anahtar ve değerdir. Otomasyon sırasında sunucunun davranışını değiştirmek için çeşitli yetenekler vardır.
Android:
{
“platformName”: “Android”,
“platformVersion”: “8.0”,
“app”: “/Users/username/Downloads/sample.apk”,
“deviceName”: “c4e3f3cda”
}
iOS:
{
“platformName”: “iOS”,
“platformVersion”: “11.4.1”,
“app”: “/Users/username/Downloads/sample.ipa”,
“deviceName”: “John’s iPhone”,
“udid”: “bea36e2b0262ae4b77bd3463bd462922ee935d24”
}
Şimdi bu capabilities anlayalım:
platformName– Kullanılacak Mobil Cihaz Platformunu belirtir. (iOS veya Android)
platformVersion– Mobil işletim sistemi sürümü (8.0, 11.4, 12.1)
app– Test edilecek uygulamanın konumuna giden mutlak yol, apk/ipa.(Bu örnek için src/test/resource dizini altındadır)
deviceName– Gerçek bir mobil cihaza veya bir Emülatör/Simülatöre atıfta bulunabilir. Android için $ adb devices komutunu kullanarak, iOS için ise $ Instrument -s device komutunu kullanarak bulabilirsiniz.
udid– Bağlı fiziksel cihazın Benzersiz cihaz tanımlayıcısıdır.
appPackage ve appActivity name nedir?
appPackage:
Çok basit bir ifadeyle, appPackage, geliştiricileri tarafından sağlanan uygulamanın teknik adıdır. Aslında, uygulamanın tüm kodunun altında bulunduğu üst düzey bir pakettir.
Örneğin, Android için “YouTube” için appPackage, “com.google.android.youtube” şeklindedir. Facebook için bu ad ‘com.facebook.katana’ ve WhatsApp için appPackage — ‘com.whatsapp’. Bu nedenle, Facebook’u Appium’dan başlatmak istiyorsanız, adını Appium’da ‘com.facebook.katana’ olarak sağlamanız gerekir.
appActivity:
Yine, çok temel terimlerle konuşursak, appActivity, uygulama tarafından sağlanan farklı işlevleri ifade eder.
Örneğin, WhatsApp sohbetler, profil bilgileri, profil fotoğrafı ayarlama, durum ayarlama, bildirimler ve daha pek çok şey gibi birden fazla işlevsellik sağlar. Tüm bu işlevler farklı appActivity ile temsil edilir.
Bu etkinliklerle birlikte, her uygulamanın, uygulamayı başlattığınızda gördüğünüz ana ekran gibi bir ana etkinliği vardır. WhatsApp için bu, Sohbetler penceresidir ve Facebook için Duvar olacaktır. Appium ile uygulamayı başlattığınızda, hangi etkinliğin başlatılması gerektiğini bilmesi gerekir. Ve ana aktivite adını (uygulamanın ana ekranını temsil eden aktivite) sağlamanız gerekir.
APK Info uygulamasını kullanımı
APK Info, Play Store’dan indirebileceğiniz bir uygulamadır ve mobil cihazınızda yüklü olan herhangi bir uygulamanın appPackage ve appActivity adını sağlayacaktır.
Şimdi ikinci yöntemi kullanarak appPackage ve appActivity adını bulmak için izlemeniz gereken adımlarla başlayalım.
Adım 1: Android cep telefonunuzdaki Google Play Store’dan “APK Bilgisi” uygulamasını indirin.
Adım 2: APK Info uygulamasını başarıyla yükledikten sonra açın ve telefonunuzda bulunan tüm uygulamaları listelediğini kontrol edin. Ardından, aşağıda gösterildiği gibi arama bölmesinde “Google Play Store” ifadesini arayın.
Adım 3: Aşağıda gösterildiği gibi seçenekler listesini görüntüleyene kadar APK Info uygulamasının içindeki “Google Play Store” uygulama simgesine uzun basın –
Adım 4: “Ayrıntılı Bilgi” seçeneğine tıklayın. Uygulamanın ayrıntılı günlüğünü gösterir.
Burada APK yolu bölümünü kontrol edin. Bu bölüm, aşağıdaki resimde kırmızı blokla vurgulandığı gibi “appPackage” adını görüntüler –
Not: Adın son ekindeki herhangi bir sayıyı atlayın (örneğin: burada “-2”). Yani, bu durumda appPackage adı — com.android.vending
Adım 5: Ardından uygulamanın appActivity adını bulmak için “Etkinlikler” alt bölümüne gidin. Bu alt bölüm, uygulama için kullanılabilen tüm etkinlikleri görüntüler. Bu listeden, aktivite adında “MainActivity” veya “Main” veya “Login” olan aktiviteyi aramalısınız.
Burada “com.google.android.finsky.activities.MainActivity”, Play Store uygulamasının appActivity adıdır.
Play Store tam teşekküllü bir uygulama olduğu için içerisinde birçok aktivite barındırmaktadır. Ancak, küçük bir uygulamayı veya geliştirme aşamasında olan bir uygulamayı test ediyorsanız, bu pek çok etkinliği içermeyecektir. Dolayısıyla, bu durumda ana faaliyeti belirlemek daha kolay olacaktır.
Cihazda Chrome tarayıcıyı otomatikleştirmek istiyorsanız, bu İstenen Yetenekleri kullanmanız gerekir.
Mobile web — Android
DesiredCapabilities dc = new DesiredCapabilities(); dc.setCapability(MobileCapabilityType.PLATFORM_NAME, “Android”); dc.setCapability(MobileCapabilityType.PLATFORM_VERSION, “OS version of your test device/simulator”); dc.setCapability(MobileCapabilityType.DEVICE_NAME, “Name of your test device”);
dc.setCapability(MobileCapabilityType.BROWSER_NAME, MobileBrowserType.CHROME); dc.setCapability(MobileCapabilityType.AUTOMATION_NAME, “UiAutomator2”);
Mobile web — iOS
DesiredCapabilities dc = new DesiredCapabilities(); dc.setCapability(MobileCapabilityType.PLATFORM_NAME, “iOS”); dc.setCapability(MobileCapabilityType.PLATFORM_VERSION, “OS version of your test device/simulator”); dc.setCapability(MobileCapabilityType.DEVICE_NAME, “Name of your test device”);
dc.setCapability(MobileCapabilityType.BROWSER_NAME, MobileBrowserType.SAFARI); dc.setCapability(MobileCapabilityType.AUTOMATION_NAME, “XCUITest”); dc.setCapability(“udid”, “UDID of your test device”);