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