Mobil Test - Selendroid Framework
Selendroid, Android yerel ve hibrit uygulamalarını test etmek için bir test otomasyon çerçevesidir. Selendroid testleri Selenium Webdriver istemci API kullanılarak yazılır.
Selendroid'in Faydaları
JSON Wire Protocol / Selenium 3 Ready ile tam uyumlu.
Otomatikleştirmek için test edilen uygulamada değişiklik gerekmez.
Yerleşik Android sürücü web görünümü uygulamasını kullanarak mobil web'i test etme.
Yerel veya hibrit uygulamaları otomatikleştirmek için aynı konsept.
UI öğeleri, farklı konum belirleyici türleri tarafından bulunabilir.
Hareketler desteklenir: Gelişmiş Kullanıcı Etkileşimleri API'si.
Mevcut Emülatörler otomatik olarak başlatılır.
Selendroid, donanım cihazlarının çalışırken takılmasını destekler.
Ölçeklendirme ve paralel test için Selenium Grid'e düğüm olarak tam entegrasyon.
Çoklu Android hedef API desteği (10'dan 19'a).
Test senaryosu geliştirmeyi basitleştirmek için yerleşik Inspector.
Selendroid, çalışma zamanında kendi uzantılarınızla genişletilebilir.
Selendroid, aynı anda birden fazla Android cihazla (emülatörler veya donanım cihazları) etkileşim kurabilir.
Selendroid'in Dezavantajları
Bu aracın dezavantajı, oldukça yavaş olması ve 4GB'tan az RAM'e sahip bazı makinelerde kullanılamaz olmasıdır.
Selendroid Nasıl Kullanılır
Step 1- Robotium'u kullanmanın önkoşulu Java SDK'dır (minimum 1.6). Sisteminizde Java yüklü değilse, aşağıda verilen adımları izleyin.
Oracle JavaSE'den JDK ve JRE'yi indirin
Lisans sözleşmesini kabul edin.
JDK ve JRE'yi yükleyin.
Ortam değişkenini aşağıdaki ekran görüntüsünde gösterildiği gibi ayarlayın.
Step 2- Android Studio'yu SDK Android'den indirin (Dosya boyutu nedeniyle zaman alacaktır).
- Exe'ye çift tıklayın ve yükleyiciyi çalıştırın.
- Tüm varsayılan seçeneklerle devam edin.
- ANDROID_HOME'u ayarlayın.
Step 3- Selenium jar dosyalarını indirin ve Selendroid'den test uygulaması
- Selenyum kavanoz dosyasını ve test uygulamasını indirin.
- Herhangi bir klasöre yerleştirin, örneğin D: \ SelendroidJars.
Step 4 - USB kablolu fiziksel cihaz.
Aygıtın iş istasyonuna USB kablosuyla bağlandığından emin olun.
USB hata ayıklama modunun (ayarlar → Geliştirici seçenekleri altında) etkinleştirildiğinden emin olun.
Selendroid ile bir Uygulamayı Test Edin
Selendroid kullanarak bir Uygulamayı test etmek için aşağıda verilen adımları izleyin -
Step 1 - Eclipse'i yükleyin.
Step 2 - Bir Java projesi oluşturun.
Step 3 - İndirilen Selendroid jar dosyasını yeni oluşturulan projeye ekleyin.
Step 4 - İndirilen Selenium jar dosyalarını yeni oluşturulan projeye ekleyin.
Step 5 - Eclipse'de testNG'yi yapılandırın.
Step 6- USB kablosunu kullanarak mobil cihazları sisteme bağlayın. USB hata ayıklama modunu geliştiricinin ayarlar altındaki seçeneklerinden ayarlayın.
Step 7- Selendroid sunucusunu çalıştırın. Komut istemini açın ve aşağıdaki kodu yazın ve Enter tuşuna basın -
java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk
Selendroid bağımsız, 4444 numaralı bağlantı noktasında bir http sunucusu başlatacak ve kullanıcının oluşturduğu tüm Android sanal cihazları (avd) tarayacaktır (~ / .android / avd /).
Web tarayıcısını açın ve şuraya gidin: http://localhost:4444/wd/hub/status.
Step 8- Bir Java Projesi oluşturun; Derleme yoluna Selendroid Bağımsız kitaplıkları, Selenium kavanozları ve JUnit kitaplıkları ekleyin.
Step 9 - Java projesi altında paket oluşturun.
Step 10 - Paketin altında bir sınıf oluşturun ve aşağıdaki kodu yazın.
package selTest;
import io.selendroid.SelendroidDriver;
import io.selendroid.common.SelendroidCapabilities;
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.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
public class SelendroidTest {
private WebDriver driver ;
@BeforeSuite
public void setUp() throws Exception {
SelendroidConfiguration config = new SelendroidConfiguration();
config.addSupportedApp("selendroid-test-app-0.9.0.apk");
SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
SelendroidCapabilities caps = new
SelendroidCapabilities("io.selendroid.testapp:0.9.0");
driver = new SelendroidDriver(caps);
}
@Test
public void selendroidTest() throws Exception {
WebElement inputField = driver.findElement(By.id("my_text_field"));
Assert.assertEquals("true", inputField.getAttribute("enabled"));
inputField.sendKeys("Selendroid");
Assert.assertEquals("Selendroid", inputField.getText());
WebElement button = driver.findElement(By.id("buttonTest"));
button.click();
button = driver.findElement(By.id("button2"));
button.click();
Thread.sleep(5000);
button = driver.findElement(By.id("startUserRegistration"));
button.click();
Thread.sleep(10000);
WebElement element = driver.findElement(By.id("label_username"));
String text = element.getText();
System.out.println(text);
element = driver.findElement(By.id("inputUsername"));
element.sendKeys("bob");
element = driver.findElement(By.id("inputEmail"));
element.sendKeys("[email protected]");
element = driver.findElement(By.id("inputPassword"));
element.clear();
element.sendKeys("test1233");
element = driver.findElement(By.id("inputName"));
element.clear();
element.sendKeys("My Name ");
element = driver.findElement(By.id("input_preferedProgrammingLanguage"));
element.click();
element = driver.findElement(By.id("text1"));
element.click();
element = driver.findElement(By.id("input_adds"));
element.click();
element = driver.findElement(By.id("btnRegisterUser"));
element.click();
element = driver.findElement(By.id("buttonRegisterUser"));
element.click();
}
@AfterSuite
public void tearDown(){
driver.quit();
}
}
Step 11 - Sınıfı testNG çalıştırma yapılandırmasıyla çalıştırın.