การทดสอบมือถือ - Selendroid Framework

Selendroid เป็นกรอบการทดสอบอัตโนมัติสำหรับการทดสอบแอปพลิเคชัน Android เนทีฟและไฮบริด การทดสอบ Selendroid เขียนโดยใช้ไคลเอนต์ Selenium Webdriver API

ประโยชน์ของ Selendroid

  • เข้ากันได้กับ JSON Wire Protocol / Selenium 3 Ready

  • ไม่จำเป็นต้องปรับเปลี่ยนแอปที่อยู่ระหว่างการทดสอบเพื่อทำให้เป็นอัตโนมัติ

  • การทดสอบเว็บบนอุปกรณ์เคลื่อนที่โดยใช้แอพ webview ไดรเวอร์ Android ในตัว

  • แนวคิดเดียวกันสำหรับการทำให้แอปเนทีฟหรือไฮบริดโดยอัตโนมัติ

  • องค์ประกอบ UI สามารถพบได้ตามประเภทตัวระบุตำแหน่งต่างๆ

  • รองรับท่าทางสัมผัส: Advanced User Interactions API

  • อีมูเลเตอร์ที่มีอยู่จะเริ่มทำงานโดยอัตโนมัติ

  • Selendroid รองรับการเสียบอุปกรณ์ฮาร์ดแวร์แบบร้อนแรง

  • การรวมแบบสมบูรณ์เป็นโหนดใน Selenium Grid สำหรับการปรับขนาดและการทดสอบแบบขนาน

  • รองรับ API เป้าหมายของ Android หลายรายการ (10 ถึง 19)

  • ตัวตรวจสอบในตัวเพื่อลดความซับซ้อนในการพัฒนากรณีทดสอบ

  • Selendroid สามารถขยายขณะรันไทม์ด้วยส่วนขยายของคุณเอง

  • Selendroid สามารถโต้ตอบกับอุปกรณ์ Android หลายเครื่อง (อีมูเลเตอร์หรืออุปกรณ์ฮาร์ดแวร์) ในเวลาเดียวกัน

ข้อเสียของ Selendroid

ข้อเสียเปรียบของเครื่องมือนี้คือมันค่อนข้างช้าและในบางเครื่องที่มี RAM น้อยกว่า 4GB จะไม่สามารถใช้งานได้

วิธีใช้ Selendroid

Step 1- ข้อกำหนดเบื้องต้นในการใช้ Robotium คือ Java SDK (ขั้นต่ำ 1.6) หากคุณไม่ได้ติดตั้ง Java ในระบบของคุณให้ทำตามขั้นตอนที่ระบุด้านล่าง

  • ดาวน์โหลด JDK และ JRE จากOracle JavaSE

  • ยอมรับข้อตกลงใบอนุญาต

  • ติดตั้ง JDK และ JRE

  • ตั้งค่าตัวแปรสภาพแวดล้อมตามที่แสดงในภาพหน้าจอด้านล่าง

Step 2- ดาวน์โหลด Android Studio จากSDK Android (อาจต้องใช้เวลาเนื่องจากขนาดของไฟล์)

  • ดับเบิลคลิกที่ exe และเรียกใช้โปรแกรมติดตั้ง
  • ดำเนินการต่อด้วยตัวเลือกเริ่มต้นทั้งหมด
  • ตั้งค่า ANDROID_HOME

Step 3- ดาวน์โหลดไฟล์ Selenium jar และทดสอบแอปพลิเคชันจากSelendroid

  • ดาวน์โหลดไฟล์ซีลีเนียม jar และแอปทดสอบ
  • วางไว้ในโฟลเดอร์ใดก็ได้เช่น D: \ SelendroidJars

Step 4 - อุปกรณ์ทางกายภาพพร้อมสาย USB

  • ตรวจสอบให้แน่ใจว่าอุปกรณ์เชื่อมต่อกับเวิร์กสเตชันด้วยสาย USB

  • ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานโหมดดีบัก USB (ภายใต้การตั้งค่า→ตัวเลือกสำหรับนักพัฒนา)

ทดสอบแอปด้วย Selendroid

ในการทดสอบแอปโดยใช้ Selendroid ให้ทำตามขั้นตอนด้านล่าง -

Step 1 - ติดตั้ง Eclipse

Step 2 - สร้างโครงการ Java

Step 3 - เพิ่มไฟล์ Selendroid jar ที่ดาวน์โหลดไปยังโปรเจ็กต์ที่สร้างขึ้นใหม่

Step 4 - เพิ่มไฟล์ Selenium jar ที่ดาวน์โหลดไปยังโปรเจ็กต์ที่สร้างขึ้นใหม่

Step 5 - กำหนดค่า testNG ใน Eclipse

Step 6- เชื่อมต่ออุปกรณ์มือถือกับระบบโดยใช้สาย USB ตั้งค่าโหมดดีบัก USB จากตัวเลือกของผู้พัฒนาภายใต้การตั้งค่า

Step 7- เรียกใช้เซิร์ฟเวอร์ Selendroid เปิดพรอมต์คำสั่งและเขียนรหัสต่อไปนี้แล้วกด Enter -

java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk

Selendroid-standalone จะเริ่มเซิร์ฟเวอร์ http บนพอร์ต 4444 และจะสแกนอุปกรณ์เสมือน Android ทั้งหมด (avd) ที่ผู้ใช้สร้างขึ้น (~ / .android / avd /)

เปิดเว็บเบราว์เซอร์และไปที่: http://localhost:4444/wd/hub/status.

Step 8- สร้างโครงการ Java เพิ่มไลบรารี Selendroid Standalone, Selenium jar และ JUnit libraries ใน build path

Step 9 - สร้างแพ็คเกจภายใต้โครงการ Java

Step 10 - สร้างคลาสภายใต้แพ็คเกจและเขียนโค้ดต่อไปนี้

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 - เรียกใช้คลาสด้วยการกำหนดค่าการรัน testNG