Thử nghiệm di động - Selendroid Framework

Selendroid là một khung tự động thử nghiệm để thử nghiệm các ứng dụng Android gốc và lai. Các bài kiểm tra Selendroid được viết bằng API ứng dụng khách Selenium Webdriver.

Lợi ích của Selendroid

  • Hoàn toàn tương thích với JSON Wire Protocol / Selenium 3 Ready.

  • Không cần sửa đổi ứng dụng đang thử nghiệm để tự động hóa ứng dụng.

  • Kiểm tra web di động bằng ứng dụng web xem trình điều khiển Android được tích hợp sẵn.

  • Cùng một khái niệm để tự động hóa ứng dụng gốc hoặc ứng dụng kết hợp.

  • Các phần tử giao diện người dùng có thể được tìm thấy bằng các loại định vị khác nhau.

  • Các cử chỉ được hỗ trợ: API tương tác người dùng nâng cao.

  • Trình giả lập hiện có được khởi động tự động.

  • Selendroid hỗ trợ cắm nóng các thiết bị phần cứng.

  • Tích hợp đầy đủ như một nút vào Selenium Grid để mở rộng quy mô và thử nghiệm song song.

  • Hỗ trợ nhiều API mục tiêu Android (10 đến 19).

  • Được xây dựng trong Thanh tra để đơn giản hóa việc phát triển trường hợp thử nghiệm.

  • Selendroid có thể được mở rộng trong thời gian chạy bằng các tiện ích mở rộng của riêng bạn.

  • Selendroid có thể tương tác với nhiều thiết bị Android (trình giả lập hoặc thiết bị phần cứng) cùng một lúc.

Hạn chế của Selendroid

Hạn chế của công cụ này là khá chậm và trên một số máy có RAM dưới 4GB thì không sử dụng được.

Cách sử dụng Selendroid

Step 1- Điều kiện tiên quyết để sử dụng Robotium là Java SDK (tối thiểu 1.6). Nếu bạn chưa cài đặt Java trên hệ thống của mình, hãy làm theo các bước dưới đây.

  • Tải xuống JDK và JRE từ Oracle JavaSE

  • Chấp nhận thỏa thuận cấp phép.

  • Cài đặt JDK và JRE.

  • Đặt biến môi trường như thể hiện trong ảnh chụp màn hình bên dưới.

Step 2- Tải xuống Android Studio từ SDK Android (Sẽ mất thời gian vì kích thước của tệp).

  • Nhấp đúp vào exe và chạy trình cài đặt.
  • Tiếp tục với tất cả các tùy chọn mặc định.
  • Đặt ANDROID_HOME.

Step 3- Tải xuống các tệp jar Selenium và ứng dụng thử nghiệm từ Selendroid

  • Tải xuống tệp jar selen và ứng dụng thử nghiệm.
  • Đặt nó vào bất kỳ thư mục nào tức là D: \ SelendroidJars.

Step 4 - Thiết bị vật lý với cáp USB.

  • Đảm bảo rằng thiết bị được gắn vào máy trạm bằng cáp USB.

  • Đảm bảo rằng chế độ gỡ lỗi USB (trong cài đặt → Tùy chọn nhà phát triển) được bật.

Kiểm tra một ứng dụng với Selendroid

Để kiểm tra một Ứng dụng bằng Selendroid, hãy làm theo các bước dưới đây:

Step 1 - Cài đặt Eclipse.

Step 2 - Tạo một dự án Java.

Step 3 - Thêm tệp jar Selendroid đã tải xuống vào dự án mới tạo.

Step 4 - Thêm các tệp jar Selenium đã tải xuống vào dự án mới được tạo.

Step 5 - Định cấu hình testNG trong Eclipse.

Step 6- Kết nối các thiết bị di động với hệ thống bằng cáp USB. Đặt chế độ gỡ lỗi USB từ các tùy chọn của nhà phát triển trong cài đặt.

Step 7- Chạy máy chủ Selendroid. Mở dấu nhắc lệnh và viết mã sau và nhấn Enter -

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

Selendroid-standalone sẽ khởi động máy chủ http trên cổng 4444 và sẽ quét tất cả các thiết bị ảo Android (avd) mà người dùng đã tạo (~ / .android / avd /).

Mở trình duyệt web và điều hướng đến: http://localhost:4444/wd/hub/status.

Step 8- Tạo một dự án Java; thêm các thư viện Selendroid Standalone, các lọ Selenium và các thư viện JUnit trong đường dẫn xây dựng.

Step 9 - Tạo gói trong dự án Java.

Step 10 - Tạo một lớp dưới gói và viết đoạn mã sau.

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 - Chạy lớp với cấu hình chạy testNG.