Selendroid Yeni Başlayanlar İçin Örneklerle Öğretici
Hiç geliştirdin mi? Android uygulama ve Google Play'de yayınlansın mı? Aşağıdaki gibi bir kullanıcı incelemesi alırsanız ne yapacaksınız?
Bir uygulamayı Google Play'de yayınladığınızda olası hataları önlemek için uygulamanın iyi bir şekilde test edilmesi gerekir. Bir uygulamayı yayınlamadan önce yürütülmesi gereken tonlarca test senaryosu vardır. Kaydetmek için Test yapmak çaba için bir test aracına ihtiyacınız var. için en iyi test araçlarından biri Android uygulama Selendroid.
Nedir? Selendroid?
Selendroid çok türde mobil uygulama için bir test otomasyon çerçevesidir: yerli ve melez Android uygulama ve hareketli ağ.
Testleri kullanarak yazabilirsiniz. Selenium 2 istemci API'si. Çünkü Selendroid mevcut olanı hala yeniden kullanıyor Selenium web için altyapı
Selendroid güçlü bir test aracıdır. Üzerinde kullanılabilir emülatörlerine ve gerçek cihazlar
Neden ihtiyacımız var Selendroid?
Selendroid harika bir test aracıdır. Ancak yine de yararlılığından şüphe duyabilirsiniz.
Bu bölümde programın önemli özellikleri tanıtılacaktır. Selendroid neden ihtiyacın olduğu sorusunu cevaplamak için Selendroid.
- Test altındaki uygulamayı kullanarak test edebilirsiniz. Selendroid uygulamada herhangi bir değişiklik yapılmadan. Sadece ikili dosyaya ihtiyacınız var (APK) bilgisayarda yüklü. İkili dosyayı cihaza yüklemek için test uygulaması ve mobil uygulamanın aynı işaret anahtarıyla imzalanması gerekir.
- Selendroid test uygulaması birden fazla cihaz veya simülatörle aynı anda etkileşime girebilir. Bu harika bir avantajdır Selendroid. Böylece uygulamanızı çeşitli uygulamalarla test edebilirsiniz. Android Uyumluluğu kontrol etmek için cihazlar.
- Selendroid Cihazlarda dokunma, kaydırma, sürükleme ve bırakma gibi bir uygulamadaki insan-kullanıcı eylemlerini simüle edebilir
- Test sırasında testi yeniden başlatmadan veya durdurmadan donanım cihazlarını (Tak ve çıkar) değiştirebilirsiniz. Selendroid yeni cihazları otomatik olarak tanır
- karşılık gelen Android API sürümü güncel, Selendroid aynı zamanda yeniyi de destekliyor Android API (API 10'dan API 19'a)
- Selendroid ayrıca test edilen bir uygulamanın kullanıcı arayüzü öğesini tanımlamanıza yardımcı olacak bazı yerleşik inceleme araçlarına da sahiptir. Örneğin kimlik düğmesi, metin alanı, metin görünümü…
Selendroid Archidoku
Selendroid dayanmaktadır Android enstrümantasyon çerçevesi. Selendroid testler temel alınarak yazılır Selenium Web sürücüsü istemci API'si, mevcut sürümle tam entegrasyonu destekler Selenium çerçeveler.
Aşağıdaki şekil mimariyi açıklamaktadır Selendroid
Selendroid 4 ana bileşen içerir:
- Web Sürücüsü İstemcisi – Java dayalı istemci kütüphanesi Selenium. Bu kütüphane bilgisayara kurulmalıdır (test senaryolarını geliştirmek için kullanılır)
- Selendroid-Sunucu – Test edilen uygulamada çalışan sunucu Android cihaz veya simülatör. Bu bir sistemin ana bileşenleridir Selendroid mimari
- Android Sürücü Uygulaması – Yerleşik Android mobil web'i test etmek için sürücü, Web Görünümü uygulaması.
- Selendroid-Bağımsız – Bu bileşen, Selendroid sunucu ve test edilen uygulama (AUT)
Birlikte başlamak Selendroid
önemini zaten biliyordunuz. Selendroid. Şimdi ellerimizi kirletelim Selendroid.
İlk testten önce yapılması gereken 3 adım var Selendroid
Kurmak Selendroid çevre
Selendroid Pencere üzerinde çalışabilir, Linux ve Mac OS'ta. Bu eğitimde, kurulumunu yapacağız Selendroid Windows işletim sisteminde.
Kullanmadan önce Selendroid, öncelikle aşağıdaki paketi yüklemeniz gerekiyor
- Java SDK (minimum 1.6)
Lisans sözleşmesini kabul etmeli ve Java yükleyicisini indirmelisiniz (İşletim sisteminizde x64 veya x86 tabanını seçin)
Indirin ve yükleyin Java Normal yazılım olarak SDK
- Son sürümü Android SDK
- Bilgisayarınızda en az bir tane bulunmalıdır Android Sanal Cihaz (AVD) veya gerçek Android cihaz PC'ye takılı.
- Selendroid Bağımlılıklarla bağımsız, Selendroid Müşteri, ve Selenium Müşteri
- Eclipse yazılım
- JAVA_HOME ve ANDROID_HOME'u kurun
) 1 Adım Pencerede Bilgisayar'a sağ tıklayın -> Emlaklar -> Gelişmiş sistem ayarı
) 2 Adım Sistem Özellikleri penceresi görüntüsü, Gelişmiş sekmesini seçin -> Ortam Değişkenleri
) 3 Adım Ortam penceresi görüntülenir, Yeni'ye tıklayın -> Aşağıdaki gibi bir ANDROID_HOME değişkeni girin
Değişken değeri, önceden yüklediğiniz Android SDK'ların yoludur.
Sistem değişkeni Path'i bulun -> Düzenle -> Mevcut satırdan sonra aşağıdaki satırı ekleyin
ANDROID_HOME'a benzer şekilde, aşağıdaki değere sahip yeni JAVA_HOME değişkenini ekleyin
Değer, size giden yoldur Java JDK kurulumu
Adım 4) Bilgisayarınızı yeniden başlatın -> tamam
nasıl başlatılır Selendroid
Adım 1) Bir uygulamayı teste tabi tutmak
Mevcut olanı kullanabilirsiniz Selendroid nasıl olduğunu kontrol etmek için uygulamayı test edin Selendroid İşler (Link test edilen uygulamayı örneklendirmek için)
İndirme işlemi tamamlandıktan sonra bu APK'yı ve yukarıdakileri kopyalayın Selendroid Bağımsız kavanoz dosyayı “adlı bir klasöre kopyalayın”Guru99″
Adım 2) Başlatın Selendroid
Terminali aç Windows & 99. adımda oluşturulan Guru1 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şlıyor! Bu sunucunun varsayılan port numarası 4444'tür. Tüm donanım aygıtlarının yanı sıra Android Sanal Cihaz otomatik olarak taranacak ve tanınacaktır. Selendroid tanımlayacak Android hedef sürüm ve cihaz ekran boyutu.
Kontrol etmek için Android Hedef sürüm ve cihaz bilgilerinin yanı sıra, tarayıcıda aşağıdaki URL'yi başlatabilirsiniz: http://localhost:4444/wd/hub/status
.
Selendroid temel komut
Bu bölüm size bazı temel bilgileri tanıtır Selendroid-Bağımsız komut satırı. ayarlamak için bunları kullanabilirsiniz. Selendroid test ortamı
- Bağlantı noktasının ayarlanması Selendroid
Varsayılan bağlantı noktası Selendroid 4444'tür. Ancak başlatma komutuna bir parametre ekleyerek diğer bağlantı noktasına geçebilirsiniz. Selendroid
Parametre: -port [Port numarası]
Örneğin:
Yukarıdaki komutta 5555 yeni porttur.
Yani kontrol edilecek URL Android hedef sürüm şu şekilde değiştirildi: http://localhost:5555/wd/hub/status
- Test edilen uygulamanın konumunu belirtin (İkili APK dosyası). Selendroid genellikle bu dosya için mutlak yol gerekiyordu
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 bulun.
URL'yi kontrol edin
http://localhost:4444/wd/hub/status
, bu bilgiyi göreceksiniz - Bağlantı noktasını değiştirin Selendroid enstrümantasyon sunucusuyla iletişim kurmak için kullanır. Selendroid 8080 numaralı bağlantı noktasını varsayılan olarak kullanır
Parametre: -selendroidServerPort [Port numarası]
Örnek E-posta
Bağlantı noktası şimdi 9000 olarak değiştirildi
- Emülatörleri başlatmak için zaman aşımını değiştirin. Birimi milisaniyedir.
Parametre: -timeoutEmulatorStart
Varsayılan olarak, Selendroid öykünücü başlayana kadar 300,000 milisaniye bekleyecektir. Komutu kullanarak yeni zaman aşımına (200,000 ms) geçebilirsiniz.
Bu sürenin sonunda emülatör başlatılamazsa, Selendroid istisna hatası verecek (Cihazlar/emülatörler aranırken hata oluştu.) ve ardından çalışmayı durduracak
- Başladığınız zaman Selendroid terminalde komut, ekranda yazdırılmış bir günlük 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 düzeyi değerleri HATA, UYARI, BİLGİ, HATA AYIKLAMA ve VERBOSE'dur. Varsayılan: HATA.
Örneğin, ayarla Selendroid Yalnızca UYARI günlüğünü yazdırmak için bu komutu kullanabilirsiniz.
The Selendroid yalnızca UYARI günlüğünü yazdırın
İlk testinize şununla başlayın: Selendroid
Bu bölüm, kullanarak ilk test komut dosyanızı oluşturmaya yönelik adım adım bir kılavuzdur. Selendroid
Diyelim ki elimizde bir Android Guru99App test adı altında uygulama. Uygulama bir metin alanı ve “Metni Göster” düğme adını içerir.
Aşağıdakileri uygulamamız gerekiyor Test Durumu kullanma Selendroid
Test Durumları | Şart | Beklenen çıktı |
---|---|---|
|
Test edilen uygulamanın ikili dosyası mevcut
PC'ye bir cihaz bağlı |
“Burada Metin Gösterimi” metni metin olarak değiştirildi
metin alanına hangi kullanıcının girdiği |
) 1 Adım Hat için bir Java projede Eclipse
) 2 Adım Selenyum ekleyin ve Selendroid Eclipse ortamlarında jar dosyası
Guru99Test Projesi'ne sağ tıklayın -> Yol Oluştur -> Harici Ekle Archives
Jar dosyalarının saklandığı klasöre gidin
Eklenmesi gereken 3 jar dosyası var
- selendroid-istemci-0.10.0.jar : Selendroid java istemci kütüphanesi
- selendroid-standalone-0.11.0-bağımlılıklarla-birlikte: Selendroid bağımsız sunucu kitaplığı
- selenyum-java-2.40.0.jar : Selenium Web Sürücüsü kütüphanesi
Tümünü seç -> Projeye jar dosyası eklemek için Aç'ı seçin
) 3 Adım Yukarıdaki kütüphane eklendikten sonra bu kütüphaneler test projesinin Referans Kütüphanelerine 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
Guru99Test'e Sağ Tıklayın -> yeni -> paket
Yeni'deki Ad alanına com.guru.test yazın Java Paket iletişim kutusu à Son
The Eclipse kaynak kod yapısında bunun gibi liste klasörleri ve alt klasörler oluşturacak
) 4 Adım kurmak TestNG için Eclipse
In Eclipse, Yardım -> Yeni Yazılım Yükle, Yükle İletişim Kutusunda Ekle'ye tıklayın ve aşağıdakileri girin
- Adınız: TestNG
- Lokasyon: https://github.com/selendroid/selendroid
Tamam'a basın -> Kurulumun yanında TestNG
) 5 Adım Guru99App.apk dosyasını Test Uygulaması klasörüne kopyalayın
) 6 Adım 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 anlatılan adımı takip edin, komutu terminalde çalıştırın.
Aşağıdaki bağlantıyı bir tarayıcıda açın: http://localhost:4444/wd/hub/status
.
Cihazın bilgileri görüntülenir, “com.guru99app:1.0” appId değerini kopyalayın
) 7 Adım Guru99Test.java dosyasını (örnek kodda) açın ve aşağıdaki gibi değiştirin
Yeni bir test oturumu oluşturmak için Selendroiduygulama 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 eşleşen uygulama kimliğiyle ayarlamazsanız Android cihaz, test oturumu bir hata verecek ve başlamayacaktır.
Bulunan cihazı başlattıktan sonra, Selendroid özelleştirilmiş bir selendroid sunucusu oluşturur ve yükler Selendroid üzerindeki sunucu
Selendroid ayrıca test edilen uygulamayı yükler ve cihazda selendroid sunucusunu başlatır
Test oturumu başarıyla başlatıldıktan sonra test komutu cihazda yürütülmeye başlar. (Metin girmek gibi, tuşuna basmak…). Test, test oturumunu eklerse emülatör otomatik olarak duracaktır.
) 8 Adım Yeni test oturumunu başlatın
Başlatın Selendroid 6. adımdaki gibi terminalde aşağıdaki komutu kullanarak sunucu
Sonra Selendroid Sunucu başlatıldı, Guru99test örnek test projesini açın Eclipse, Guru77Test.java dosyasının 99. satırına çift tıklayarak 77. satırda bir kesme noktası ayarlayın -> Aşağıdaki gibi bir nokta görüntülenecektir
Guru99Test projesine sağ tıklayarak bir test oturumu başlatın -> Farklı Hata Ayıklama -> Test Testi.
Aşağıdaki gibi bir test oturumu başlayacak
) 9 Adım 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, URL'ye gidin http://localhost:4444/inspector
Test Edilen Uygulamanın aşağıdaki gibi başlatıldığını göreceksiniz.
AUT'un her bir UI öğesine (Düğme, TextField, Metin Etiketi) fareyle gelindiğinde gelin; her öğenin kimliği sağ bölmede vurgulanacaktır
Bu adımdan sonra yukarıdaki her bir kullanıcı arayüzü öğesinin kimliğini alabilirsiniz.
- Düğme Metin Kimliğini Göster: “btnGöster"
- Metin Alanı Kimliği: “edtText"
- Etiket Metin Kimliği: “txt Görünümü"
Bu kimlikler bir sonraki adımda kullanılacak
) 10 Adım Aşağıdaki gibi test programına girin
Kullanan bir test programı Selendroid 3 bölüm içerir
Kurulum Testi:
Aşağıda test kurulumu için kod bulunmaktadır, bu 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.
package com.guru.test; import io.selendroid.SelendroidCapabilities; import io.selendroid.SelendroidConfiguration; import io.selendroid.SelendroidDriver; import io.selendroid.SelendroidLauncher; import io.selendroid.device.DeviceTargetPlatform; 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; /** * @author Guru99 Test App using Selendroid * Application under test: Guru99App * */ public class Guru99Test { //Declare web driver variable private WebDriver driver; /** * Setup the environment before testing * @throws Exception */ @BeforeSuite public void setUp() throws Exception { //Start selendroid-standalone during test SelendroidConfiguration config = new SelendroidConfiguration(); // Add the selendroid-test-app to the standalone server config.addSupportedApp("Guru99App.apk"); //start the standalone server SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); // Create the selendroid capabilities SelendroidCapabilities capa = new SelendroidCapabilities(); // Specify to use selendroid's test app capa.setAut("com.guru99app:1.0"); // Specify to use the Android device API 19 capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19); // Don't request simulator, use real device capa.setEmulator(false); //capa.wait(10000000); // Create instance of Selendroid Driver driver = new SelendroidDriver(capa); }
Testi Yürüt
Aşağıda bir test yürütmek için kod verilmiştir. Kod, yorumları içerir
İşte yine test adımları
- “Merhaba Guru” metnini girin
- Metni Göster Düğmesini tıklayın
- Bir süre bekleyin
- Kullanıcı bir metin alanına girdiğinde uygulamanın metni görüntülediğini doğrulayın (Örn. "Merhaba Guru" metnini görüntüleyin)
/** * Start execute the test case * 01. Enter the text "Selendroid" to the textfield * 02. Press OK button * @throws Exception */ @Test public void selendroidTest() throws Exception { // Print the log System.out.print("Start executing test"); // Find the input text field on screen // The id of this text field was get from step 9 WebElement inputField = driver.findElement(By.id("edtText")); // Verify that the text field enabled so user can enter text Assert.assertEquals("true", inputField.getAttribute("enabled")); // Enter a text to text field inputField.sendKeys("Hello Guru"); // click Show Text button // The id of this button was get from step 9 WebElement button = driver.findElement(By.id("btnShow")); button.click(); // Delay time to take effect Thread.sleep(5000); //Find the label "Text Show Here" on screen // The id of this label was get from step 9 WebElement txtView = driver.findElement(By.id("txtView")); //Get the text display on screen String expected = txtView.getText(); // Verify that the text which user enter on text field is same as text display on screen Assert.assertEquals(expected, inputField.getText()); }
Testi Bitir
Aşağıdaki kod, testi durdurarak tamamlayacaktır. Selendroid sürücüsü.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Bu makalede yer alan örnek kodda ayrıntıyı görebilirsiniz.
) 10 Adım Bağlantı Kurun Android cihazı USB kablosuyla PC'ye bağlayın. Gözlemlenecek noktalar –
- Lütfen cihazda yapılandırılmış bir ekran kilidi olmadığından emin olun.
- Cihazların, selendroid bağımsız bileşeninin çalıştığı bilgisayara USB yoluyla bağlanması gerekir.
- Cihaz en azından kurulmalıdır Android Target Sürüm API'si 10
) 11 Adım Test Uygulamasını çalıştırın: Guru99test'e sağ tıklayın -> Olarak çalıştırmak -> TestNG test
) 10 Adım Komut dosyası aşağıdaki gibi çalıştırılmaya başlar
) 12 Adım Testin yürütülmesi tamamlandıktan sonra, TestNG test raporunu aşağıdaki gibi otomatik olarak oluşturur
Aferin, artık testi tamamladın.
ÖZET
- Selendroid test etmek için çok güçlü bir araçtır Android yerel uygulama, hibrit uygulama ve web uygulaması.
- Simülatörün yanı sıra gerçek cihazlarda da kullanılabilir.
- Ayrıca birden fazla cihazda test çalıştırarak testleri paralel olarak çalıştırmanıza da olanak tanır.
- Tüm Selendroid süit dört bileşenden oluşur:
- Web Sürücüsü istemcisi,
- Selendroid-Sunucu,
- Android Sürücü Uygulaması
- Selendroid-tek başına
- Kullanmak için Selendroid ihtiyacın var Java JDK, Android SDK ve Eclipse yüklü.