selendroid tutorial android mobile test automation framework
Selendroid kullanarak Mobil Otomasyon (Bölüm-I):
Şimdiye kadar, bir platform olarak Android kullanılarak milyonlarca uygulama geliştirildi ve sayı her geçen gün artmaya devam ediyor.
İşin püf noktası, her uygulamanın nasıl doğrulanacağıdır? İnsan gücü, gerçek cihazlar (örneğin mobil) vb. Gibi özel kaynaklara ihtiyaç duyacağımız için bu yine zaman alıcı bir iştir. Öte yandan, android sürümü, uygulamalar (.apk) sürümü, cihaz boyutu vb. Sabit değildir.
Bu nedenle, test kapsamının tamamını tanımlayamadığımız için test çıkış kriterlerini tanımlamak çok zor hale gelir, bu nedenle kesin test eforu tahmini yapılamaz.
Cihaz bağımlılığının üstesinden gelmek için, android sürümü, cihazlar ve sürümleri hakkında endişelenmeden uygulamayı test edebileceğimiz gerçek zamanlı benzeri ortam sağlayabilen emülatörler geliştirilmektedir. Ancak yine de uygulamaların (.apk) öykünücü üzerinden test edilmesi manuel bir etkinliktir ve hatta zaman alan bir iştir. Bu nedenle, mobil testi otomatikleştirme fikri gelişiyor.
cpu sıcaklığını izlemek için en iyi program
Mobil otomasyonu gerçekleştirmek için, Android tabanlı uygulamanın bir betik dili kullanarak otomasyonunu sağlayan test otomasyon çerçevesi geliştirilmiştir.
Selendroid, Appium, Robotium, Espresso gibi geliştirilmiş birçok otomasyon çerçevesi vardır.
Bu eğitim iki bölüme ayrılmıştır:
Öğretici # 1 : Selendroid Tanıtımı: Android Mobil Test Otomasyon Çerçevesi
Öğretici # 2: Bir mobil uygulama üzerinden kullanıcı etkileşimlerini otomatikleştirmek için Selendroid çerçevesi nasıl kullanılır (yakında)
Ne öğreneceksin:
- Selendroid nedir?
- Selendroid Bileşenleri
- Çevresel Kurulum
- Gerçek Cihazlar Üzerinden APK Dosyalarını Kullanarak İlk Komut Dosyası Yazma
- Sonuç
- Önerilen Kaynaklar
Selendroid nedir?
Selendroid, birçok önemli özelliğe sahip harika bir Android mobil uygulama test otomasyon çerçeve aracıdır. Selendroid, aynı anda birden fazla cihazla etkileşime girebilen çok güçlü bir otomasyon aracıdır ve bir uygulama, Selendroid kullanılarak herhangi bir değişiklik veya değişiklik yapılmadan test edilebilir.
Aynı zamanda 'Android için Selenium' yerel ve hibrit mobil uygulamaları ve mobil web'i test etmek için.
Neden Selendroid?
- Açık kaynaktır (kullanımı ücretsiz)
- Bir komut dosyası dili olarak Selenium'u destekler
- Java, C #, Perl gibi web sürücüsü uyumlu dilleri destekler
- Tüm Android Sürümlerini destekler
- Hem emülatörde hem de gerçek cihazda çalışır
- Yerel, karma ve web tabanlı bir uygulamada çalışır
- Yerel uygulamaları ve bulut tabanlı uygulamaları çalıştırırken etkilidir. selenyum ızgarasını desteklediği için
- Nesne özelliklerini kullanarak nesne tanımayı destekler
- Uygulaması kolay
- Test yürütme sırasında, testi yeniden başlatmadan veya durdurmadan, donanım aygıtları Takılabilir, bilgisayardan çıkarılabilir. Selendroid yeni cihazları otomatik olarak tanıyabilir. Bu özellik 'Hotplugging' olarak bilinir
Basit bir Selendroid Mimarisi
Selendroid Bileşenleri
Selendroid - İstemci
Temel olarak, bir java istemci kitaplığıdır. Bu bileşenden, HTTP ve WebDriver isteği JSON kullanılarak Selendroid Standalone sunucusuna gönderilir.
Selendroid - Bağımsız
Bu bileşen, Selendroid sunucusunu ve test edilen uygulamayı yükleyerek farklı cihazları ve .apk'leri yönetir. Http isteği (gerçek cihaz / simülatör üzerinden yürütülecek) Selendroid bağımsız sunucusundan cihaza ve test edilen apk'ye gönderiliyor.
Selendroid - Sunucu
Bu sunucu, test edilen uygulama ile birlikte cihaz üzerinden çalışır. Sunucu ile test edilen uygulama arasında iki yönlü bir iletişim vardır.
AndroidDriverApp
Yerleşik bir Android sürücüsü ve mobil web'i test etmek için bir Web Görünümü uygulamasıdır.
Olarak adlandırılan başka bir test çerçevesi APPI Selendroid'e benzer şekilde çalışır.
İşte her ikisi arasında küçük bir karşılaştırma.
Özellik | Selendroid | appium |
---|---|---|
Daha düşük android sürümü desteği (<4.1) | Evet | Yapma |
Çalışır durumda takma | Evet | Yapma |
Kullanıcı Aracısı Testi | Yapma | Evet |
İOS tabanlı uygulama desteği | Yapma | Evet |
Çevre Gereksinimi | Android için - Mac, Linux, Windows (herhangi bir sürüm) | İOS için - Mac OSX 107. Android için - Windows 7+, Linux, Mac OSX 107. |
Ön koşullar:
Hedef kitle ile başlamak için selenyum, Eclipse gibi herhangi bir IDE aracının kullanımının çok iyi farkında olması gerekir. Programlamanın temel kavramları Java, C vb.
- Simülatörü görüntülemek için Intel x86 Emulator Accelerator'ı (zorunlu değildir) yükleyin. İşte
- Java SDK, JRE zaten bir test ortamında yüklü. Alternatif olarak aynısını şuradan indirebilirsiniz: İşte
Kurulum sırasında SDK Yolunu not edin.
Bilgisayarım üzerinde bulunan çevresel değişkenleri ayarlayın -> sağ tıklayın -> Özellikler -> Gelişmiş Sistem Ayarı
- Eclipse zaten makinenizde yüklü. Değilse, aynısını şuradan da indirebilirsiniz İşte
- Selenyum kavanoz dosyaları indirilecek. Aynısını indirebilirsiniz buradan da
- TestNG kavanozları zaten indirildi
- İndirilecek ve yüklenecek Android SDK. Aynısını şuradan da indirebilirsiniz İşte
Yükleme sırasında Android SDK Yolunu not edin
ANDROID_HOME indirildikten sonra, aşağıdaki ortam değişkenlerinde ayarlanmalıdır:
Bilgisayarım -> sağ tıklayın -> Özellikler -> Gelişmiş Sistem Ayarı
- Selendroid jar dosyaları indirilecek. Aynısını şuradan da indirebilirsiniz İşte
Hatırlamak Selendroid bağımsız jar dosyasını yukarıdaki konumdan indirmek için. Genellikle ad, selendroid-standalone-0.9.0-with-dependencies.jar gibidir. Ayrıca, yukarıdaki konumdan selendroid-test-app-0.8.0.apk gibi bir örnek APK dosyasını indirin
Not:
- Ayrıca kullanabiliriz maven deposu tüm kavanozlara referans vermek için ya da bunları manuel olarak indirip derleme yoluna eklemeniz gerekir (Eclipse Projesi Üzerinden)
- Cihazlar / Emülatörler - Android'de tüm yüklü uygulamalar .apk uzantısına sahip olacaktır. Diğer şekillerde, android cihazınızda yüklü uygulamaların listesi ve gerçek adı, boyutu vb. Hakkında sizi bilgilendirecek APK Bilgileri gibi uygulamaları indirebilirsiniz.
Çevresel Kurulum
# 1) Kurulması gereken APK'yi uygun bir yere saklayın
Benim durumumda onu fazla tuttum G: \ Jars \ selendroid-test-app-0.8.0.apk
# 2) Ardından, uygulamayı proje klasörünün üzerinde tutun
Benim durumumda 500: AppiumAutomation SelendroidFirst
# 3) Gerçek cihazı PC'ye bağlayın
USB Hata Ayıklama modunun etkinleştirildiğinden ve ayrıca harici uygulamaların USB bağlantısıyla yüklenmesine izin verdiğinizden emin olun.
İpuçları:
- Lütfen mobil cihazlar için gereken USB hata ayıklama ayarına bakın, Redmi Note 3'ten İşte
- USB kullanılarak yüklenmesine izin ver Redmi note 3 şuradan: İşte
# 4) Windows üzerinden komut istemini açın
İndirilen apk dosyasının yanı sıra Selendroid bağımsız kavanozunun bulunduğu klasöre gidin.
Şimdi benzer komutu belirtin ve komut isteminde enter tuşuna basın
angularjs'de tek sayfalık uygulama nedir
Örneğin. java --jar selendroid-bağımsız-0.15.0-with-dependencies.jar -aut selendroid-test-app-0.8.0.apk
Veya java –jar selendroid-standalone-0.15.0-with-dependencies.jar
APK Dosyası: selendroid-test-app-0.8.0.apk
Not: Yukarıdaki komut yürütüldüğünde, APK'nin imzalandığından ve ayrıca gerçek cihazın PC'ye bağlı olduğundan ve cihaz üzerinden hata ayıklamanın etkinleştirildiğinden emin olun.
(Not: Büyütülmüş bir görünüm için resmin üzerine tıklayın)
Ortamın otomasyona hazır olduğundan emin olmak için komut istemi üzerinden aşağıdaki noktaları kontrol edin:
- 'Geçerli numarayla Aygıt Belirtildi' mesajını doğrulayın
- 'Sunucu varsayılan bağlantı noktasında başlatıldı diyelim (4444)…' mesajını doğrulayın
- 'Oturum oluşturuluyor ...' mesajını doğrulayın
Yine, bir sunucunun başlatılıp başlatılmadığını, aşağıdaki URL'yi herhangi bir web tarayıcınız üzerinden kullanıp kullanmadığını her zaman yeniden teyit edebiliriz.
Örneğin. http: // localhost: 4444 / wd / hub / durum
# 5) APK’ları inceleme
- Gerçek mobil cihazları bağlayarak Gerçek Uygulamaları kullanabiliriz
- İndirilen herhangi bir çevrimdışı APK dosyasını kullanabiliriz
Selendroid Inspector, APK'nin web öğelerinin hata ayıklamasında / incelenmesinde yararlıdır.
Cihaz tanımlanıp başlatıldıktan sonra, APK'yi (sanal modda) görüntüleyebilir ve web tarayıcılarınızdan herhangi biri üzerinden aşağıdaki URL'yi kullanarak komut dosyalarını yazmak için yararlı olan referansları bulabiliriz.
Örneğin: http: // localhost: 4444 / müfettiş
Burada test edilen uygulamanın ekran görüntüsüne sahibiz ve aynı zamanda elemanı inceleyecek tesisimiz var.
Ya da her zaman kullanabilirsin uiautomatorviewer Test edilen uygulamadan nesneleri bulmak için.
Bunun için varsayılan yol aşağıda belirtilmiştir:
C: Kullanıcılar yönetici android-sdks araçlar
C: Kullanıcılar yönetici - Bu, Android SDK'ları yüklediğim konumdur, ancak yükleme sırasında belirtilen konuma göre farklı olabilir.
Gerçek Cihazlar Üzerinden APK Dosyalarını Kullanarak İlk Komut Dosyası Yazma
Amaç:
- Sunucuyu başlatın (varsayılan bağlantı noktasında 4444 deyin)
- Bir oturum oluşturun
- Uygulamayı (.apk dosyası) bağlı gerçek cihaza yükleyin
- Metin alanını bazı verilerle otomatikleştirin
- Düğmeye otomatik olarak tıklayın
package SelendroidFirst; import io.selendroid.client.SelendroidDriver; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import io.selendroid.common.SelendroidCapabilities; import io.selendroid.common.device.DeviceTargetPlatform; import io.selendroid.standalone.SelendroidConfiguration; import io.selendroid.standalone.SelendroidLauncher; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.*; import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME; import static org.openqa.selenium.remote.CapabilityType.PLATFORM; import static org.openqa.selenium.remote.CapabilityType.VERSION; public class RealDevices{ public SelendroidLauncher selendroidServer = null; public WebDriver driver = null; public void conf() throws Exception { //**Configuration**// SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp('G:\Jars\selendroid-test-app-0.8.0.apk'); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); //**Creating capabilities**// SelendroidCapabilities sc = new SelendroidCapabilities(); sc.setAut('io.selendroid.testapp:0.8.0'); sc.setEmulator(false); //**Instantiating new Selendroid driver**// WebDriver driver = new SelendroidDriver(sc); //**Sending data to the text field**// driver.findElement(By.id('my_text_field')).sendKeys('Selendroid Test'); //**Clicking on the button**// driver.findElement(By.id('visibleButtonTest')).click(); Thread.sleep(10000); }
Sonuç
Selendroid, herhangi bir Android cihazında ve bir simülatörde yerel, hibrit ve bir web uygulamasını test etmek için kullanılabilen çok güçlü bir otomasyon test çerçevesi aracıdır.
Hotplugging'i destekler; bu, bir kullanıcının aynı anda birden fazla cihazı test edebileceği anlamına gelir, bu nedenle birden fazla cihazda paralel test yürütme mümkündür. Uzun basma, dokunma eylemleri gibi çeşitli etkileşimleri destekler.
Bununla ilgili tek karmaşıklık, diğer çerçevelerde de var olan çevresel kurulumdur. Doğru bir şekilde kurulduktan sonra, komut dosyalarımızı sorunsuz bir şekilde çalıştırabiliriz.
İçindeBölüm 2Bu Selendoid eğitiminde, bir mobil uygulama üzerinden kullanıcı etkileşimlerini otomatikleştirmek için Selendroid çerçevesinin nasıl kullanılacağını ele alacağız.
Bir sonraki yazımızda daha fazla tartışacağız. pCloudy Uygulamalı İnceleme Eğitimi.
Önerilen Kaynaklar
- Yeni Başlayanlar İçin Derinlemesine Eclipse Eğiticileri
- SeeTest Otomasyon Eğitimi: Mobil Test Otomasyon Aracı Kılavuzu
- Java Collections Framework (JCF) Eğitimi
- Örneklerle Java Yansıtma Eğitimi
- Ranorex Eğitimi: Güçlü Bir Masaüstü, Web ve Mobil Otomasyon Test Aracı
- Android ve iOS Mobil Uygulamalarını Test Etmek İçin Appium Eğitimi
- Mobil Uygulama Üzerinden Kullanıcı Etkileşimlerini Otomatikleştirmek için Selendroid'i Kullanma (2. Bölüm)
- SeeTest Otomasyonunun Gerçek Zamanlı Mobil Otomasyon Projesinde Gelişmiş Kullanımı