Selendroid 예제가 포함된 초보자를 위한 튜토리얼
혹시 개발한 적이 있나요? Android 애플리케이션을 만들고 게시하세요 Google 플레이하시나요? 만약 이런 사용자 리뷰를 받게 된다면 어떻게 하시겠습니까?
앱을 게시할 때 Google 앱을 실행하려면 잠재적인 버그를 방지하기 위해 철저한 테스트가 필요합니다. 앱을 출시하기 전에 실행해야 할 테스트 시나리오가 매우 많습니다. 시간을 절약하기 위해 지원 노력하려면 테스트 도구가 필요합니다. 최고의 테스트 도구 중 하나 Android 앱은 Selendroid.
Selendroid?
Selendroid 다양한 유형의 모바일 애플리케이션을 위한 테스트 자동화 프레임워크입니다. 출신 잡종 Android 앱과 변하기 쉬운 웹.
다음을 사용하여 테스트를 작성할 수 있습니다. Selenium 2개의 클라이언트 API. 왜냐하면 Selendroid 여전히 기존의 재사용 Selenium 웹을 위한 인프라
Selendroid 강력한 테스트 도구입니다. 그것은에 사용될 수 있습니다 에뮬레이터 그리고 진짜 장치
왜 우리는 필요합니까? Selendroid?
Selendroid 훌륭한 테스트 도구입니다. 그러나 여전히 그 유용성에 대해 의문을 가질 수 있습니다.
이 섹션에서는 다음의 중요한 기능을 소개합니다. Selendroid 왜 필요한지 질문에 답하기 위해 Selendroid.
- 다음을 사용하여 테스트 중인 애플리케이션을 테스트할 수 있습니다. Selendroid 앱 수정 없이. 바이너리 파일(APK)이 컴퓨터에 설치되었습니다. 디바이스에 바이너리 파일을 설치하려면 테스트 앱과 모바일 앱이 동일한 서명 키로 서명되어야 합니다.
- Selendroid 테스트 앱은 여러 기기 또는 시뮬레이터와 동시에 상호 작용할 수 있습니다. 이는 큰 장점입니다. Selendroid. 따라서 다양한 방법으로 앱을 테스트할 수 있습니다. Android 호환성을 확인하는 장치.
- Selendroid 기기에서 터치, 스와이프, 드래그 앤 드롭 등 앱에서 인간 사용자 작업을 시뮬레이션할 수 있습니다.
- 테스트 도중에 재시작이나 중지 없이 하드웨어 장치를 교체(꽂았다 뺐다)할 수 있습니다.ping 시험. Selendroid 새 장치를 자동으로 인식합니다.
- 에 해당 Android API 버전업, Selendroid 또한 새로운 지원 Android API(API 10에서 API 19로)
- Selendroid 또한 테스트 중인 애플리케이션의 UI 요소를 식별하는 데 도움이 되는 내장 검사 도구도 있습니다. 예를 들어 ID 버튼, 텍스트 필드, 텍스트 보기…
Selendroid Archi강의
Selendroid 에 근거 Android 계측 프레임워크. Selendroid 테스트는 다음을 기반으로 작성됩니다. Selenium 웹 드라이버 클라이언트 API이므로 현재와의 완전한 통합을 지원합니다. Selenium 프레임 워크.
다음 그림은 아키텍처를 설명합니다. Selendroid
Selendroid 4가지 주요 구성 요소가 포함되어 있습니다.
- 웹 드라이버 클라이언트 – Java 클라이언트 라이브러리 기반 Selenium. 이 라이브러리는 컴퓨터(테스트 케이스 개발에 사용됨)에 설치되어야 합니다.
- Selendroid-Server – 테스트 중인 앱에서 실행되는 서버입니다. Android 장치 또는 시뮬레이터. 이는 A의 주요 구성 요소입니다. Selendroid 아키텍처
- Android 드라이버 앱 – 내장 Android 모바일 웹을 테스트하기 위한 드라이버, 웹뷰 앱입니다.
- Selendroid-독립형 – 이 구성 요소는 다음을 설치하는 데 사용됩니다. Selendroid 서버 및 테스트 중인 애플리케이션(AUT)
시작하기 Selendroid
당신은 이미 의 중요성을 알고 있었습니다. Selendroid. 이제 손을 더럽히자 Selendroid.
첫 번째 테스트 전에 수행해야 할 3단계가 있습니다. Selendroid
설정 Selendroid 환경
Selendroid Window에서 작업할 수 있으며, Linux 그리고 맥 OS. 이 튜토리얼에서는 다음을 설정하겠습니다. Selendroid 윈도우 OS에서.
사용하기 전에 Selendroid, 먼저 다음 패키지를 설치해야 합니다.
- Java SDK (최소 1.6)
라이센스 계약에 동의하고 Java 설치 프로그램을 다운로드해야 합니다. (OS에 따라 x64 또는 x86 기반 선택)
다운로드 및 설치 Java SDK를 일반 소프트웨어로 사용
- 최신 버전 Android SDK
- 컴퓨터에는 하나 이상의 Android 가상 장치(AVD) 또는 실제 장치 Android 장치가 PC에 연결되어 있습니다.
- Selendroid 종속성이 있는 독립형, Selendroid Client예산 및 Selenium Client
- Eclipse 소프트웨어
- JAVA_HOME 및 ANDROID_HOME 설정
단계 1) 창에서 컴퓨터를 마우스 오른쪽 버튼으로 클릭합니다. -> 등록 -> 고급 시스템 설정
단계 2) 시스템 속성 창 표시, 고급 탭 선택 -> 환경 변수
단계 3) 환경 창이 표시되면 새로 만들기를 클릭합니다. -> 다음과 같이 ANDROID_HOME 변수를 입력하세요.
변수 값은 이미 설치한 android-sdks의 경로입니다.
시스템 변수 Path 찾기 -> 편집 -> 현재 줄 뒤에 다음 줄을 추가합니다.
ANDROID_HOME과 유사하게 아래와 같은 값으로 새 변수 JAVA_HOME을 추가합니다.
값은 Java JDK 설치
4단계) PC를 다시 시작하세요 -> 선택한다
실행 방법 Selendroid
1단계) 테스트 중인 애플리케이션 가져오기
기존을 사용할 수 있습니다. Selendroid 테스트 앱을 통해 그 방법을 확인하세요 Selendroid 작품((링크) 테스트 중인 샘플 애플리케이션에)
다운로드가 완료되면 이 APK와 위 항목을 복사하세요. Selendroid 독립형 항아리 "라는 이름의 폴더에 파일을 저장합니다.Guru99″
2단계) 실행 Selendroid
다음에서 터미널을 엽니다. Windows 해당 폴더로 이동하세요 Guru1단계에서 99개가 생성되었습니다.
다음 명령을 실행하십시오
출력은 다음과 같이 표시됩니다.
이 명령을 실행한 후, Selendroid-독립형 HTTP 서버가 시작됩니다! 이 서버의 기본 포트 번호는 4444입니다. 모든 하드웨어 장치는 물론 Android 가상 장치가 자동으로 검색되고 인식됩니다. Selendroid 식별할 것이다 Android 대상 버전 및 장치 화면 크기.
확인하려면 Android 대상 버전과 장치 정보를 사용하여 다음을 실행할 수 있습니다. URL 브라우저에서: http://localhost:4444/wd/hub/status.
Selendroid 기본 명령
이 섹션에서는 몇 가지 기본 사항을 소개합니다. Selendroid-독립형 명령줄. 이를 사용하여 Selendroid 테스트 환경
- 포트 설정 Selendroid
기본 포트 Selendroid 4444입니다. 그러나 실행 명령에 매개변수를 추가하여 다른 포트로 변경할 수 있습니다. Selendroid
매개변수: -port [포트 번호]
예 :
위 명령에서는 5555가 새 포트입니다.
그래서 URL 확인하러 Android 대상 버전이 다음으로 변경됩니다. http://localhost:5555/wd/hub/status
- 테스트 중인 애플리케이션(바이너리 APK 파일)의 위치를 지정합니다. Selendroid 종종 이 파일의 절대 경로가 필요합니다.
매개변수: -app [파일 경로]
예 :
위의 명령에서 Selendroid "C:\"를 기반으로 바이너리 파일을 자동으로 찾습니다.Guru테스트 대상 애플리케이션에 대한 정보를 얻으려면 "99App.apk"를 입력하십시오.
확인 URL
http://localhost:4444/wd/hub/status, 이 정보가 표시됩니다 - 포트를 변경하세요. Selendroid 계측 서버와 통신하는 데 사용됩니다. Selendroid 포트 8080을 기본값으로 사용합니다.
매개변수: -selendroidServerPort [포트 번호]
예시
이제 포트가 9000으로 변경되었습니다.
- 에뮬레이터를 시작하려면 시간 제한을 변경하세요. 단위는 밀리초입니다.
매개변수: -timeoutEmulatorStart
기본적으로, Selendroid 에뮬레이터가 시작될 때까지 300,000밀리초를 기다립니다. 명령을 통해 새로운 시간 제한(200,000ms)으로 변경할 수 있습니다.
만료된 이후에 에뮬레이터를 시작할 수 없는 경우 Selendroid 예외 오류(장치/에뮬레이터를 찾는 동안 오류가 발생했습니다.)가 발생하고 실행이 중지됩니다.
- 당신이 시작할 때 Selendroid 터미널에서 명령을 실행하면 화면에 로그가 인쇄됩니다. 다음 매개변수를 추가하여 표시되는 로그 유형을 변경할 수 있습니다.
매개변수: -logLevel [로그 유형]
로그 수준 값은 ERROR, WARNING, INFO, DEBUG 및 VERBOSE입니다. 기본값: 오류.
예를 들어 설정 Selendroid WARNING 로그만 인쇄하려면 이 명령을 사용할 수 있습니다.
The Selendroid WARNING 로그만 인쇄
첫 번째 테스트를 시작해보세요 Selendroid
이 섹션은 다음을 사용하여 첫 번째 테스트 스크립트를 만드는 방법을 단계별로 안내합니다. Selendroid
우리가 Android 테스트 이름으로 신청 Guru99App. 이 애플리케이션에는 텍스트 입력란과 "텍스트 표시"라는 이름의 버튼이 포함되어 있습니다.
우리는 다음을 실행해야 합니다. 테스트 케이스 사용 Selendroid
| 테스트 케이스 | 상태 | 예상 출력 |
|---|---|---|
|
테스트 중인 애플리케이션의 바이너리를 사용할 수 있습니다.
장치가 PC에 연결되어 있습니다 |
"여기에 텍스트 표시"라는 텍스트가 텍스트로 변경됩니다.
어떤 사용자가 텍스트 필드에 입력하는지 |
단계 1) 만들기 Java ~에있는 프로젝트 Eclipse
단계 2) 셀레늄을 추가하고 Selendroid Eclipse 환경의 jar 파일
마우스 오른쪽 단추로 클릭 Guru99Test 프로젝트 -> 빌드 경로 -> 외부 추가 Archi베스
jar 파일이 저장된 폴더로 이동합니다.
3개의 jar 파일을 추가해야 합니다.
- selendroid-client-0.10.0.jar : Selendroid 자바 클라이언트 라이브러리
- selendroid-standalone-0.11.0-with-dependencies : Selendroid 독립형 서버 라이브러리
- 셀레늄-자바-2.40.0.jar : Selenium 웹 드라이버 라이브러리
모두 선택 -> 열기를 선택하여 프로젝트에 jar 파일을 추가합니다.
단계 3) 위 라이브러리를 추가하면 해당 라이브러리가 테스트 프로젝트의 참조 라이브러리에 추가됩니다. 테스터는 해당 라이브러리의 API를 사용하여 테스트 프로그램을 개발할 수 있습니다.
"com.guru.test" 패키지를 생성하고 자바 파일을 추가하세요.Guru"99Test.java"와 같이 아래와 같습니다.
마우스 오른쪽 버튼으로 클릭 Guru99테스트 -> 새 소식 -> 묶음
New의 Name 필드에 com.guru.test를 입력하세요. Java 패키지 대화 상자 à 마침
The Eclipse 소스 코드 구조에 이와 같은 목록 폴더와 하위 폴더가 생성됩니다.
단계 4) 설치 TestNG 을 통한 Eclipse
In Eclipse, 도움말 -> 새 소프트웨어를 설치하려면 설치 대화 상자에서 추가를 클릭하고 다음을 입력합니다.
- 이름: TestNG
- 위치: https://github.com/selendroid/selendroid
확인을 누릅니다. -> 다음으로 설치하려면 TestNG
단계 5) 복사 Guru99App.apk 파일을 테스트 앱 폴더에 넣으세요.
단계 6) 테스트 중인 애플리케이션의 ID를 가져옵니다.
APK 파일 이름이 있다고 가정해 봅시다. Guru99App.apk. 이전 섹션에서 설명한 단계를 따라 터미널에서 명령어를 실행하세요.
브라우저에서 다음 링크를 엽니다. http://localhost:4444/wd/hub/status.
기기 정보가 표시되면 appId 값인 “com.guru99app:1.0”을 복사합니다.
단계 7) 파일 열기 Guru샘플 코드의 99Test.java 파일을 다음과 같이 변경하십시오.
다음을 사용하여 새 테스트 세션을 생성하려면 Selendroid, com.guru99app:1.0 형식으로 앱 ID를 제공해야 합니다. 이 앱 ID는 6단계에서 식별할 수 있습니다. Android 장치를 사용하면 테스트 세션에서 오류가 발생하고 시작되지 않습니다.
검색된 장치를 초기화한 후, Selendroid 사용자 정의된 selendroid-server를 생성하고 설치합니다. Selendroid 그 위에 서버
Selendroid 또한 테스트 중인 애플리케이션을 설치하고 장치에서 selendroid-server를 시작합니다.
테스트 세션을 성공적으로 초기화한 후 테스트 명령이 장치에서 실행되기 시작합니다. (문자를 입력하거나 버튼을 누르는 등...). 테스트에서 테스트 세션을 추가하면 에뮬레이터가 자동으로 중지됩니다.
단계 8) 새 테스트 세션 시작
를 실행 Selendroid 터미널에서 6단계와 같이 다음 명령을 사용하여 서버
후 Selendroid 서버가 시작되었습니다. 샘플 테스트 프로젝트를 열어보세요. Guru99 테스트 Eclipse파일의 77번째 줄에 중단점을 설정하세요. Guru99Test.java 파일의 77번째 줄을 더블 클릭하세요. -> 아래와 같이 점이 표시됩니다.
테스트 세션을 시작하려면 마우스 오른쪽 버튼을 클릭하세요. Guru99Test 프로젝트 -> 다음으로 디버그 -> 테스트 중 테스트합니다.
아래와 같이 테스트 세션이 시작됩니다.
단계 9) 테스트 중인 애플리케이션의 GUI 요소 ID 가져오기
테스트 세션이 성공적으로 시작되면 브라우저를 열고 해당 페이지로 이동하세요. URL http://localhost:4444/inspector
테스트 중인 애플리케이션이 아래와 같이 실행되는 것을 볼 수 있습니다.
AUT의 각 UI 요소(Button, TextField, Text Label)에 마우스를 올리면 각 요소의 ID가 오른쪽 창에 강조 표시됩니다.
이 단계가 끝나면 위의 각 UI 요소의 ID를 얻을 수 있습니다.
- 버튼 표시 텍스트 ID: “btn쇼"
- 텍스트 필드 ID: “edtText"
- 라벨 텍스트 ID: “txtView"
해당 ID는 다음 단계에서 사용됩니다.
단계 10) 아래와 같이 테스트 프로그램을 입력하세요.
사용한 테스트 프로그램 Selendroid 3개 섹션 포함
설정 테스트:
다음은 테스트 세션에 대한 조건을 설정하는 설정 테스트 코드입니다. 오류가 발생하는 경우 Selendroid 예외가 발생하고 테스트 앱이 중지됩니다.
코드에는 각 명령문을 설명하는 주석이 포함되어 있습니다.
package com.guru.test;
import io.selendroid.SelendroidCapabilities;
import io.selendroid.SelendroidConfiguration;
import io.selendroid.SelendroidDriver;
import io.selendroid.SelendroidLauncher;
import io.selendroid.device.DeviceTargetPlatform;
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;
/**
* @author Guru99 Test App using Selendroid
* Application under test: Guru99App
*
*/
public
class Guru99Test {
//Declare web driver variable
private WebDriver driver;
/**
* Setup the environment before testing
* @throws Exception
*/
@BeforeSuite
public
void setUp() throws Exception {
//Start selendroid-standalone during test
SelendroidConfiguration config = new SelendroidConfiguration();
// Add the selendroid-test-app to the standalone server
config.addSupportedApp("Guru99App.apk");
//start the standalone server
SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
// Create the selendroid capabilities
SelendroidCapabilities capa = new SelendroidCapabilities();
// Specify to use selendroid's test app
capa.setAut("com.guru99app:1.0");
// Specify to use the Android device API 19
capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19);
// Don't request simulator, use real device
capa.setEmulator(false);
//capa.wait(10000000);
// Create instance of Selendroid Driver
driver = new SelendroidDriver(capa);
}
테스트 실행
아래는 테스트를 실행하는 코드입니다. 코드에는 주석이 포함되어 있습니다.
테스트 단계는 다음과 같습니다.
- "안녕하세요"라는 텍스트를 입력하세요 Guru"
- 텍스트 표시 버튼을 클릭하세요.
- 잠시만 기다려주세요
- 앱이 사용자가 텍스트 필드에 입력한 텍스트를 제대로 표시하는지 확인하십시오 (예: "안녕하세요" 텍스트 표시). Guru")
/**
* Start execute the test case
* 01. Enter the text "Selendroid" to the textfield
* 02. Press OK button
* @throws Exception
*/
@Test
public
void selendroidTest() throws Exception {
// Print the log
System.out.print("Start executing test");
// Find the input text field on screen
// The id of this text field was get from step 9
WebElement inputField = driver.findElement(By.id("edtText"));
// Verify that the text field enabled so user can enter text
Assert.assertEquals("true", inputField.getAttribute("enabled"));
// Enter a text to text field
inputField.sendKeys("Hello Guru");
// click Show Text button
// The id of this button was get from step 9
WebElement button = driver.findElement(By.id("btnShow"));
button.click();
// Delay time to take effect
Thread.sleep(5000);
//Find the label "Text Show Here" on screen
// The id of this label was get from step 9
WebElement txtView = driver.findElement(By.id("txtView"));
//Get the text display on screen
String expected = txtView.getText();
// Verify that the text which user enter on text field is same as text display on screen
Assert.assertEquals(expected, inputField.getText());
}
테스트 완료
다음 코드는 테스트를 종료함으로써 테스트를 완료합니다.ping 전에, Selendroid 운전사.
/**
* Stop the Selendroid driver
*
*/
@AfterSuite
public
void tearDown() {
driver.quit();
}
이 문서에 포함된 샘플 코드에서 자세한 내용을 확인할 수 있습니다.
단계 10) 연결하기 Android USB 케이블을 통해 장치를 PC에 연결합니다. 관찰할 점 -
- 기기에 화면 잠금이 구성되어 있지 않은지 확인하세요.
- 장치는 selendroid-standalone 구성 요소가 실행되는 컴퓨터에 USB를 통해 연결되어야 합니다.
- 장치는 최소한 설치해야 합니다. Android Target 버전 API 10
단계 11) 테스트 앱 실행: 마우스 오른쪽 버튼 클릭 Guru99 테스트 -> 다음 계정으로 실행 -> TestNG test
단계 10) 스크립트는 다음과 같이 실행되기 시작합니다.
단계 12) 테스트 실행이 완료된 후, TestNG 다음과 같이 테스트 보고서가 자동으로 생성됩니다.
잘하셨습니다. 이제 테스트가 완료되었습니다.
제품 개요
- Selendroid 테스트를 위한 매우 강력한 도구입니다. Android 네이티브 앱, 하이브리드 앱, 웹 앱이 있습니다.
- 시뮬레이터뿐만 아니라 실제 장치에서도 사용할 수 있습니다.
- 또한 여러 장치에서 테스트를 실행하여 테스트를 병렬로 실행할 수도 있습니다.
- 전체 Selendroid 제품군은 다음 네 가지 구성 요소로 구성됩니다.
- 웹 드라이버 클라이언트,
- Selendroid-섬기는 사람,
- Android 드라이버 앱
- Selendroid-혼자서
- 사용 Selendroid 이 필요 Java JDK, Android SDK 및 Eclipse 설치.


































