모바일 테스트-Selendroid 프레임 워크

Selendroid는 Android 네이티브 및 하이브리드 애플리케이션을 테스트하기위한 테스트 자동화 프레임 워크입니다. Selendroid 테스트는 Selenium Webdriver 클라이언트 API를 사용하여 작성됩니다.

Selendroid의 장점

  • JSON Wire Protocol / Selenium 3 Ready와 완벽하게 호환됩니다.

  • 자동화를 위해 테스트중인 앱을 수정할 필요가 없습니다.

  • 내장 된 Android 드라이버 웹뷰 앱을 사용하여 모바일 웹을 테스트합니다.

  • 네이티브 또는 하이브리드 앱 자동화에 대한 동일한 개념입니다.

  • UI 요소는 다양한 로케이터 유형으로 찾을 수 있습니다.

  • 제스처가 지원됩니다 : 고급 사용자 상호 작용 API.

  • 기존 에뮬레이터는 자동으로 시작됩니다.

  • Selendroid는 하드웨어 장치의 핫 플러깅을 지원합니다.

  • 확장 및 병렬 테스트를 위해 Selenium Grid에 노드로 완전히 통합됩니다.

  • 여러 Android 대상 API 지원 (10 ~ 19).

  • Inspector가 내장되어 테스트 케이스 개발을 단순화합니다.

  • Selendroid는 자체 확장으로 런타임에 확장 할 수 있습니다.

  • Selendroid는 동시에 여러 Android 기기 (에뮬레이터 또는 하드웨어 기기)와 상호 작용할 수 있습니다.

Selendroid의 단점

이 도구의 단점은 매우 느리고 RAM이 4GB 미만인 일부 컴퓨터에서는 사용할 수 없다는 것입니다.

Selendroid 사용 방법

Step 1− Robotium을 사용하기위한 전제 조건은 Java SDK (최소 1.6)입니다. 시스템에 Java가 설치되어 있지 않은 경우 아래 단계를 따르십시오.

  • Oracle JavaSE 에서 JDK 및 JRE 다운로드

  • 라이센스 계약에 동의하십시오.

  • JDK 및 JRE를 설치합니다.

  • 아래 스크린 샷과 같이 환경 변수를 설정합니다.

Step 2− SDK Android 에서 Android Studio를 다운로드 합니다 (파일 크기 때문에 시간이 걸립니다).

  • exe를 두 번 클릭하고 설치 프로그램을 실행하십시오.
  • 모든 기본 옵션으로 계속하십시오.
  • ANDROID_HOME을 설정합니다.

Step 3− Selendroid 에서 Selenium jar 파일 및 테스트 애플리케이션 다운로드

  • 셀레늄 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 − Eclipse에서 testNG를 구성합니다.

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은 포트 4444에서 http 서버를 시작하고 사용자가 생성 한 모든 Android 가상 장치 (avd) (~ / .android / avd /)를 검색합니다.

웹 브라우저를 열고 다음으로 이동하십시오. http://localhost:4444/wd/hub/status.

Step 8− 자바 프로젝트 생성; 빌드 경로에 Selendroid Standalone 라이브러리, Selenium jar 및 JUnit 라이브러리를 추가합니다.

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 실행 구성으로 클래스를 실행합니다.