Hiç bir Android uygulaması geliştirip Google Play'de yayınladınız mı? Böyle bir kullanıcı yorumu alırsanız ne yapacaksınız -
Google Play'de bir uygulama yayınladığınızda, olası hatalardan kaçınmak için iyi bir şekilde test edilmelidir. Bir uygulamayı yayınlamadan önce yürütülmesi gereken bir ton test senaryosu vardır. Test çabasından tasarruf etmek için bir test aracına ihtiyacınız vardır. Android uygulaması için en iyi test araçlarından biri Selendroid'tir.
- Selendroid nedir?
- Neden Selendroid'e ihtiyacımız var?
- Selendroid Mimarisi
- Selendroid'e başlarken
- Selendroid ortamı kurma
- Selendroid nasıl başlatılır
- Selendroid temel komutu
- Selendroid ile ilk testinize başlayın
Selendroid nedir?
Selendroid, çok tipli mobil uygulamalar için bir test otomasyon çerçevesidir: yerel ve hibrit Android uygulaması ve mobil web.
Selenium 2 istemci API'lerini kullanarak testleri yazabilirsiniz. Çünkü Selendroid hala web için mevcut Selenium altyapısını yeniden kullanıyor
Selendroid güçlü bir test aracıdır. Bu kullanılabilir emülatörlerine ve gerçek cihazlar
Neden Selendroid'e ihtiyacımız var?
Selendroid harika bir test aracıdır. Ama yine de yararlılığından şüphe duyabilirsiniz.
Bu bölüm, Selendroid'e neden ihtiyacınız olduğu sorusuna cevap vermek için Selendroid'in önemli özelliklerini tanıtacaktır.
- Uygulamada herhangi bir değişiklik yapmadan Selendroid kullanarak test edilen uygulamayı test edebilirsiniz. Sadece bilgisayarda kurulu ikili dosyaya (APK) ihtiyacınız var. İkili dosyayı cihaza yüklemek için test uygulaması ve mobil uygulama aynı işaret anahtarıyla imzalanmalıdır.
- Selendroid test uygulaması aynı anda birden fazla cihaz veya simülatör ile etkileşime girebilir. Selendroid'in büyük bir avantajı. Böylece, uyumluluğu kontrol etmek için uygulamanızı çeşitli Android cihazlarla test edebilirsiniz.
- Selendroid, bir uygulamada cihazlarda dokunma, kaydırma, sürükleme ve bırakma gibi insan-kullanıcı eylemlerini simüle edebilir
- Test sırasında, testi yeniden başlatmadan veya durdurmadan donanım aygıtlarını değiştirebilirsiniz (Takın ve çıkarın). Selendroid yeni cihazları otomatik olarak tanır
- Android API sürüm yükseltmesine karşılık gelen Selendroid, yeni Android API'yi de destekler (API 10'dan API 19'a)
- Selendroid ayrıca test edilen bir uygulamanın UI öğesini tanımlamanıza yardımcı olacak bazı yerleşik denetleme aracına sahiptir. Örneğin, kimlik düğmesi, metin alanı, metin görünümü…
Selendroid Mimarisi
Selendroid, Android enstrümantasyon çerçevesine dayanmaktadır. Selendroid testleri, Selenium Web sürücüsü istemci API'sine dayalı olarak yazılmıştır, bu nedenle mevcut Selenium çerçeveleriyle tam entegrasyonu destekler.
Aşağıdaki şekil Selendroid'in mimarisini açıklamaktadır.
Selendroid 4 ana bileşen içerir:
- Web Sürücüsü İstemcisi - Selenium'a dayalı Java istemci kitaplığı. Bu kitaplık bilgisayara kurulmalıdır (test senaryolarını geliştirmek için kullanılır)
- Selendroid-Server - Android cihaz veya simülatörde test edilen uygulamada çalışan sunucu. Bu, bir Selendroid mimarisinin ana bileşenleridir
- Android Driver-App - Mobil web'i test etmek için yerleşik bir Android sürücüsü, Web Görünümü uygulaması.
- Selendroid-Standalone - Bu bileşen, Selendroid sunucusunu ve test edilen uygulamayı (AUT) yüklemek için kullanılır
Selendroid'e başlarken
Selendroid'in önemini zaten biliyordunuz. Şimdi ellerimizi Selendroid ile kirletelim.
Selendroid ile ilk testten önce yapılması gereken 3 adım vardır
Selendroid ortamı kurma
Selendroid; Window, Linux ve Mac OS üzerinde çalışabilir. Bu eğitimde Selendroid'i Windows İşletim Sisteminde kuracağız.
Selendroid'i kullanmadan önce, aşağıdaki paketi yüklemeniz gerekir
- Java SDK (minimum 1.6)
Lisans sözleşmesini kabul etmeli ve java yükleyiciyi indirmelisiniz (İşletim sisteminizde x64 veya x86 tabanını seçin)
Java SDK'yı normal yazılım olarak indirin ve yükleyin
- Android SDK'nın son sürümü
- Bilgisayarınızda en az bir Android Sanal Cihaz (AVD) veya PC'ye takılı gerçek bir Android cihaz olmalıdır.
- Bağımlılıklar, Selendroid Client ve Selenium Client ile Selendroid Standalone
- Eclipse yazılımı
- JAVA_HOME ve ANDROID_HOME'u kurun
Adım 1) Pencerede Bilgisayar -> Özellikler -> Gelişmiş Sistem Ayarı'na sağ tıklayın
Adım 2) Sistem Özellikleri penceresi ekranı, Gelişmiş -> Ortam Değişkenleri sekmesini seçin.
Adım 3) Ortam penceresi görüntülenir, Yeni -> Aşağıdaki gibi bir değişken girin ANDROID_HOME'u tıklayın.
Değişken değeri, önceden yüklediğiniz android sdks yoludur.
Sistem değişkenini bulun Yol -> Düzenle -> Aşağıdaki satırı mevcut satırdan sonra ekleyin
ANDROID_HOME'a benzer şekilde, aşağıdaki gibi değere sahip yeni değişken JAVA_HOME ekleyin
Değer, Java JDK kurulumunuzun yoludur
Adım 4) Bilgisayarınızı yeniden başlatın -> Bitti
Selendroid nasıl başlatılır
Adım 1) Teste tabi bir uygulama almak
Selendroid'in nasıl çalıştığını kontrol etmek için mevcut Selendroid test uygulamasını kullanabilirsiniz (Test edilen örnek uygulamaya bağlantı)
İndirme işlemi tamamlandığında, bu APK'yı ve yukarıdaki Selendroid Standalone jar dosyasını " Guru99" adlı bir klasöre kopyalayın.
Adım 2) Selendroid'i başlatın
Windows'ta terminali açın ve 1. adımda oluşturulan Guru99 klasörüne gidin.
Aşağıdaki komutu çalıştırın
Çıktı aşağıdaki gibi görüntülenecektir
Bu komutu çalıştırdıktan sonra Selendroid bağımsız HTTP sunucusu başlar! Bu sunucunun varsayılan bağlantı noktası numarası 4444'tür. Tüm donanım aygıtlarının yanı sıra Android Sanal Aygıt da otomatik olarak taranacak ve tanınacaktır. Selendroid, Android hedef sürümünü ve cihaz ekran boyutunu belirleyecektir.
Android hedef sürümünü ve cihaz bilgilerini kontrol etmek için aşağıdaki URL'yi bir tarayıcıda başlatabilirsiniz:
http: // localhost: 4444 / wd / hub / status.
Selendroid temel komutu
Bu bölüm size bazı temel Selendroid-Bağımsız komut satırını tanıtır. Selendroid test ortamını kurmak için bunları kullanabilirsiniz
- Selendroid bağlantı noktasını ayarlama
Selendroid'in varsayılan bağlantı noktası 4444'tür. Ancak Selendroid'i başlatmak için komuta bir parametre ekleyerek başka bir bağlantı noktasına geçebilirsiniz.
Parametre: -port [bağlantı noktası numarası]
Örneğin:
Yukarıdaki komutta, 5555 yeni bağlantı noktasıdır.
Dolayısıyla, Android hedef sürümünü kontrol etmek için URL şu şekilde değiştirilir: http: // localhost: 5555 / wd / hub / status
- Test edilen uygulamanın konumunu belirtin (İkili APK dosyası). Selendroid genellikle bu dosya için mutlak yolu gerektirdi
Parametre: -app [dosya yolu]
Örneğin:
Yukarıdaki komutta Selendroid, test edilen uygulamanın bilgilerini almak için "C: \ Guru99App.apk" üzerindeki ikili dosya tabanını otomatik olarak bulur.
Http: // localhost: 4444 / wd / hub / status URL'sini kontrol edin, bu bilgiyi göreceksiniz
- Selendroid'in enstrümantasyon sunucusuyla iletişim kurmak için kullandığı bağlantı noktasını değiştirin. Selendroid varsayılan olarak 8080 bağlantı noktasını kullanır
Parametre: -selendroidServerPort [bağlantı noktası numarası]
Misal
Bağlantı noktası şimdi 9000 olarak değiştirildi
- Öykünücüleri başlatmak için zaman aşımını değiştirin. Birim milisaniyedir.
Parametre: -timeoutEmulatorStart
Varsayılan olarak Selendroid, emülatör başlayana kadar 300.000 milisaniye bekler. Komutla yeni zaman aşımına (200.000 ms) geçebilirsiniz
Bu sürenin sonunda, emülatör başlayamazsa, Selendroid istisna hatasını atar (Cihaz / emülatör ararken hata oluştu) ve ardından çalışmayı durdurur.
- Terminalde Selendroid komutunu başlattığınızda, ekranda yazdırılmış bir oturum göreceksiniz. Aşağıdaki parametreyi ekleyerek gördüğünüz günlük türünü değiştirebilirsiniz.
Parametre: -logLevel [günlük türü]
Günlük seviyesi değerleri ERROR, WARNING, INFO, DEBUG ve VERBOSE şeklindedir. Varsayılan: ERROR.
Örneğin, Selendroid'i yalnızca UYARI günlüğünü yazdıracak şekilde ayarlayın, bu komutu kullanabilirsiniz
Selendroid yalnızca UYARI günlüğünü yazdırır
Selendroid ile ilk testinize başlayın
Bu bölüm, Selendroid kullanarak ilk test komut dosyanızı oluşturmak için adım adım bir kılavuzdur.
Guru99App test adı altında bir Android uygulamamız olduğunu varsayalım. Uygulama bir metin alanı ve bir düğme adı "Metni Göster" içerir.
APK'YI BURADAN İNDİRİN
Selendroid kullanarak aşağıdaki Test Durumunu yürütmemiz gerekiyor
Test Durumları |
Durum |
Beklenen çıktı: |
|
Test edilen uygulamanın ikili dosyası mevcuttur PC'ye bir cihaz bağlı |
"Metin Gösterisi burada" metni, metin olarak değiştirildi hangi kullanıcı bir metin alanına giriyor |
Adım 1) Eclipse'de bir Java projesi oluşturun
Adım 2) Tutulma ortamlarında selenyum ve Selendroid kavanoz dosyası ekleyin
Guru99Test Projesi -> Yol Oluştur -> Harici Arşivler Ekle'ye sağ tıklayın
Jar dosyalarını depolayan klasöre gidin
Eklenmesi gereken 3 jar dosyası var
- selendroid-client-0.10.0.jar: Selendroid java istemci kitaplığı
- selendroid-bağımsız-0.11.0-bağımlılıklarla: Selendroid bağımsız sunucu kitaplığı
- selenium-java-2.40.0.jar: Selenium Web Sürücüsü kitaplığı
Tümünü seç -> Projeye bir jar dosyası eklemek için Aç'ı seçin
Adım 3) yukarıdaki kitaplığı ekledikten sonra, bu kitaplıklar test projesinin Referans Kitaplıklarına eklenecektir. Bir test uzmanı, test programını geliştirmek için bu kitaplıkların API'lerini kullanabilir
"Com.guru.test" paketini oluşturun ve aşağıdaki gibi "Guru99Test.java" java dosyasını ekleyin
Sağ Tıklama Guru99Test -> Yeni -> Paket
Yeni Java Paketi iletişim kutusundaki Ad alanına com.guru.test yazın à Bitir
Eclipse, kaynak kod yapısında buna benzer liste klasörleri ve alt klasörler oluşturacaktır.
Adım 4) Eclipse için TestNG'yi yükleyin
Eclipse'de, Yardım -> Yeni Yazılım Kurun, Kur İletişim Kutusunda, Ekle'ye tıklayın ve aşağıdakileri girin
- İsim: TestNG
- Konum: http://selendroid.io/
TestNG'yi yüklemek için Tamam -> İleri'ye basın
Adım 5) Guru99App.apk dosyasını Test Uygulaması klasörüne kopyalayın
Adım 6) Test edilen bir uygulamanın kimliğini alın.
Guru99App.apk adında bir APK dosyamız olduğunu varsayalım. Önceki bölümde açıklanan adımı izleyin, terminalde komutu çalıştırın.
Aşağıdaki bağlantıyı bir tarayıcıda açın
http: // localhost: 4444 / wd / hub / status.
Aygıtın bilgileri görüntülenir, "com.guru99app: 1.0" appId değerini kopyalayın
Adım 7) Guru99Test.java dosyasını açın (örnek kodda) ve aşağıdaki gibi değiştirin
Selendroid ile yeni bir test oturumu oluşturmak için uygulama kimliğini şu biçimde sağlamanız gerekir: com.guru99app: 1.0. Bu uygulama kimliği 6. adımda tanımlanabilir. Uygulama kimliğini Android cihazla eşleşecek şekilde ayarlamazsanız, test oturumu bir hata verir ve başlamaz.
Bulunan cihazı başlattıktan sonra Selendroid, özelleştirilmiş bir selendroid sunucusu oluşturur ve üzerine Selendroid sunucusunu yükler.
Selendroid ayrıca test edilen uygulamayı yükler ve selendroid sunucusunu cihazda başlatır.
Test oturumunu başarıyla başlattıktan sonra, test komutu bir cihazda yürütülmeye başlar. (Metin girmek gibi, düğmeye basın
…). Test, test oturumunu eklerse, emülatör otomatik olarak dururAdım 8) Yeni test oturumunu başlatın
6. adımda olduğu gibi terminalde aşağıdaki komutu kullanarak Selendroid sunucusunu başlatın.
Selendroid Sunucusu başladıktan sonra, Eclipse üzerinde Guru99test örnek test projesini açın, 77. satıra çift tıklayarak Guru99Test.java dosyasında 77. satıra bir kesme noktası ayarlayın -> Aşağıdaki gibi bir nokta görüntülenecektir
Sağ tıklayarak bir test oturumu başlatın Guru99Test projesi -> Hata Ayıkla -> Test Testi.
Aşağıdaki gibi bir test oturumu başlayacak
Adım 9) Test edilen bir uygulamanın GUI öğesinin kimliğini alın
Test oturumu başarıyla başladıktan sonra, tarayıcıyı açın, http: // localhost: 4444 / inspector URL'sine gidin.
Test Edilen Uygulamanın aşağıdaki gibi açıldığını göreceksiniz
AUT'nin (Düğme, Metin Alanı, Metin Etiketi) her UI öğesine fareyle gelindiğinde, her öğenin kimliği sağ bölmede vurgulanır
Bu adımdan sonra, yukarıdaki her bir UI öğesinin kimliğini alabilirsiniz.
- Düğme Göster Metin Kimliği: " btnShow "
- Metin Alanı Kimliği: " edtText "
- Etiket Metin Kimliği: " txtView "
Bu kimlikler sonraki adımda kullanılacak
Adım 10) Test programına aşağıdaki gibi girin
Selendroid kullanan bir test programı 3 bölüm içerir
Kurulum Testi:
Kurulum testi kodu aşağıdadır, bir test oturumu için koşulu ayarlayacaktır.Bir hata durumunda Selendroid istisnayı atacak ve test uygulaması duracaktır.
Kod, her bir ifadeyi açıklayan yorumları içerir.
paket com.guru.test;io.selendroid.SelendroidCapabilities'i içe aktarın;io.selendroid.SelendroidConfiguration'ı içe aktar;ithal io.selendroid.SelendroidDriver;io.selendroid.SelendroidLauncher'ı içe aktar;io.selendroid.device.DeviceTargetPlatform'u içe aktar;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.testng.Assert;import org.testng.annotations.AfterSuite;import org.testng.annotations.BeforeSuite;import org.testng.annotations.Test;/ *** Selendroid kullanarak @author Guru99 Test Uygulaması* Test edilen uygulama: Guru99App** /halka açıkclass Guru99Test {// Web sürücüsü değişkenini bildirinözel WebDriver sürücüsü;/ *** Test etmeden önce ortamı ayarlayın* @throws Exception* /@Evleneceksenhalka açıkvoid setUp (), Exception {// Test sırasında selendroid bağımsız başlatSelendroidConfiguration config = new SelendroidConfiguration ();// selendroid-test uygulamasını bağımsız sunucuya ekleyinconfig.addSupportedApp ("Guru99App.apk");// bağımsız sunucuyu başlatSelendroidLauncher selendroidServer = yeni SelendroidLauncher (yapılandırma);selendroidServer.launchSelendroid ();// Selendroid yeteneklerini oluşturunSelendroidCapabilities capa = yeni SelendroidCapabilities ();// Selendroid'in test uygulamasını kullanmayı belirtincapa.setAut ("com.guru99app: 1.0");// Android cihaz API 19'u kullanmayı belirtincapa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Simülatör istemeyin, gerçek cihaz kullanıncapa.setEmulator (false);//capa.wait(10000000);// Selendroid Sürücüsünün örneğini oluşturunsürücü = yeni SelendroidDriver (çapa);}
Testi Yürüt
Aşağıda bir testi yürütmek için kod bulunmaktadır. Kod, yorumları içerir
İşte yine test adımları
- "Merhaba Guru" metnini girin
- Metin Düğmesini Göster'i tıklayın
- Bir süre bekleyin
- Kullanıcı bir metin alanına girerken uygulamanın metni görüntülediğini doğrulayın (Ör. "Merhaba Guru" metnini görüntüleyin)
/ *** Test durumunu yürütmeye başlayın* 01. Metin alanına "Selendroid" metnini girin* 02. OK düğmesine basın* @throws Exception* /@Ölçekhalka açıkvoid selendroidTest () Exception {// Günlüğü yazdırSystem.out.print ("Testi yürütmeye başla");// Ekrandaki giriş metin alanını bulun// Bu metin alanının kimliği 9. adımdan alınmıştırWebElement inputField = sürücü.findElement (By.id ("edtText"));// Kullanıcının metin girebilmesi için metin alanının etkinleştirildiğini doğrulayınAssert.assertEquals ("true", inputField.getAttribute ("etkin"));// Metin alanına bir metin girininputField.sendKeys ("Merhaba Guru");// Metni Göster düğmesini tıklayın// Bu düğmenin kimliği 9. adımdan alınmıştırWebElement düğmesi = driver.findElement (By.id ("btnShow"));button.click ();// Etkili olması için gecikme süresiThread.sleep (5000);// Ekranda "Burada Metin Göster" etiketini bulun// Bu etiketin kimliği 9. adımdan alınmıştırWebElement txtView = driver.findElement (By.id ("txtView"));// Metin görüntüsünü ekrana getirinDize beklenen = txtView.getText ();// Kullanıcının metin alanına girdiği metnin ekrandaki metinle aynı olduğunu doğrulayınAssert.assertEquals (beklenen, inputField.getText ());}
Testi Bitir
Aşağıdaki kod, Selendroid sürücüsünü durdurarak testi tamamlayacaktır.
/ *** Selendroid sürücüsünü durdurun** /@Kafadergisihalka açıkvoid tearDown () {driver.quit ();}
Ayrıntıları bu makalede yer alan örnek kodda görebilirsiniz.
Adım 10) Android cihazı USB kablosuyla PC'ye bağlayın. Dikkat edilecek noktalar -
- Lütfen cihazda yapılandırılmış ekran kilidi olmadığından emin olun.
- Aygıtlar, selendroid bağımsız bileşeninin çalıştığı bilgisayara USB aracılığıyla takılmalıdır.
- Cihaz en az Android Target Version API 10'u yüklemelidir
Adım 11) Test Uygulamasını çalıştırın: Guru99test -> Farklı Çalıştır -> TestNG testini sağ tıklayın
Adım 10) Komut dosyası aşağıdaki gibi çalıştırılır
Adım 12) Test yürütmeyi bitirdikten sonra, TestNG aşağıdaki gibi test raporunu otomatik olarak oluşturur
Aferin sana testi şimdi bitirdin.
Özet
Özet
- Selendroid, Android yerel uygulamasını, hibrit uygulamayı ve web uygulamasını test etmek için çok güçlü bir araçtır.
- Simülatörün yanı sıra gerçek cihazlarda da kullanılabilir.
- Ayrıca, birden çok cihazda bir test çalıştırarak testleri paralel olarak çalıştırmanıza da olanak tanır.
- Tüm Selendroid paketi dört bileşenden oluşur:
- Web Sürücüsü istemcisi,
- Selendroid-Sunucu,
- Android Sürücü Uygulaması
- Selendroid tek başına
- Selendroid'i kullanmak için Java JDK, Android SDK ve Eclipse yüklü olmalıdır.