Selendroid 예제가 포함된 초보자를 위한 튜토리얼
혹시 개발한 적이 있나요? Android 애플리케이션을 다운로드하여 Google Play에 게시하시겠습니까? 다음과 같은 사용자 리뷰를 받으면 어떻게 하시겠습니까?
Google Play에 앱을 게시할 때 잠재적인 버그를 방지하려면 철저한 테스트를 거쳐야 합니다. 앱을 게시하기 전에 실행해야 할 테스트 시나리오가 많습니다. 저장하려면 지원 노력하려면 테스트 도구가 필요합니다. 최고의 테스트 도구 중 하나 Android 앱은 Selendroid.
Selendroid?
Selendroid 다양한 유형의 모바일 애플리케이션을 위한 테스트 자동화 프레임워크입니다. 출신 and 잡종 Android 앱과 변하기 쉬운 웹.
다음을 사용하여 테스트를 작성할 수 있습니다. Selenium 2개의 클라이언트 API. 왜냐하면 Selendroid 여전히 기존의 재사용 Selenium 웹을 위한 인프라
Selendroid 강력한 테스트 도구입니다. 그것은에 사용될 수 있습니다 에뮬레이터 그리고 진짜 장치
왜 우리는 필요합니까? Selendroid?
Selendroid 훌륭한 테스트 도구입니다. 그러나 여전히 그 유용성에 대해 의문을 가질 수 있습니다.
이 섹션에서는 다음의 중요한 기능을 소개합니다. Selendroid 왜 필요한지 질문에 답하기 위해 Selendroid.
- 다음을 사용하여 테스트 중인 애플리케이션을 테스트할 수 있습니다. Selendroid 앱 수정 없이. 바이너리 파일(APK)이 컴퓨터에 설치되었습니다. 디바이스에 바이너리 파일을 설치하려면 테스트 앱과 모바일 앱이 동일한 서명 키로 서명되어야 합니다.
- Selendroid 테스트 앱은 여러 기기 또는 시뮬레이터와 동시에 상호 작용할 수 있습니다. 이는 큰 장점입니다. Selendroid. 따라서 다양한 방법으로 앱을 테스트할 수 있습니다. Android 호환성을 확인하는 장치.
- Selendroid 기기에서 터치, 스와이프, 드래그 앤 드롭 등 앱에서 인간 사용자 작업을 시뮬레이션할 수 있습니다.
- 테스트를 다시 시작하거나 중지하지 않고도 테스트 중에 하드웨어 장치를 변경할 수 있습니다(플러그 연결 및 분리). 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 & 99단계에서 생성한 Guru1 폴더로 이동합니다.
다음 명령을 실행하십시오
출력은 다음과 같이 표시됩니다.
이 명령을 실행한 후, 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:\Guru99App.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 로그만 인쇄하려면 이 명령을 사용할 수 있습니다.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 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" 패키지를 생성하고 Java 파일 "Guru99Test.java"를 추가합니다.
Guru99Test를 마우스 오른쪽 버튼으로 클릭하세요. -> 신제품 -> 묶음
New의 Name 필드에 com.guru.test를 입력하세요. Java 패키지 대화 상자 à 마침
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 Eclipse 소스 코드 구조에 이와 같은 목록 폴더와 하위 폴더가 생성됩니다.
단계 4) 설치 TestNG for 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) 샘플 코드에 있는 Guru99Test.java 파일을 열고 다음과 같이 변경합니다.
다음을 사용하여 새 테스트 세션을 생성하려면 Selendroid, com.guru99app:1.0 형식으로 앱 ID를 제공해야 합니다. 이 앱 ID는 6단계에서 식별할 수 있습니다. Android 장치를 사용하면 테스트 세션에서 오류가 발생하고 시작되지 않습니다.
검색된 장치를 초기화한 후, Selendroid 사용자 정의된 selendroid-server를 생성하고 설치합니다. Selendroid 그 위에 서버
Selendroid 또한 테스트 중인 애플리케이션을 설치하고 장치에서 selendroid-server를 시작합니다.
테스트 세션을 성공적으로 초기화한 후 테스트 명령이 장치에서 실행되기 시작합니다. (문자를 입력하거나 버튼을 누르는 등...). 테스트에서 테스트 세션을 추가하면 에뮬레이터가 자동으로 중지됩니다.
단계 8) 새 테스트 세션 시작
를 실행 Selendroid 터미널에서 6단계와 같이 다음 명령을 사용하여 서버
후 Selendroid 서버가 시작되었습니다. 샘플 테스트 프로젝트 Guru99test를 엽니다. Eclipse, Guru77Test.java 파일의 99번째 줄을 더블 클릭하여 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); }
테스트 실행
아래는 테스트를 실행하는 코드입니다. 코드에는 주석이 포함되어 있습니다.
테스트 단계는 다음과 같습니다.
- "Hello Guru"라는 텍스트를 입력하세요.
- 텍스트 표시 버튼을 클릭하세요.
- 잠시만 기다려주세요
- 사용자가 텍스트 필드에 입력하면 앱이 텍스트를 표시하는지 확인합니다(예: "Hello 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()); }
테스트 완료
다음 코드는 테스트를 중지하여 완료합니다. Selendroid 운전사.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
이 문서에 포함된 샘플 코드에서 자세한 내용을 확인할 수 있습니다.
단계 10) 연결하기 Android USB 케이블을 통해 장치를 PC에 연결합니다. 관찰할 점 -
- 기기에 화면 잠금이 구성되어 있지 않은지 확인하세요.
- 장치는 selendroid-standalone 구성 요소가 실행되는 컴퓨터에 USB를 통해 연결되어야 합니다.
- 장치는 최소한 설치해야 합니다. Android Target 버전 API 10
단계 11) 테스트 앱 실행: Guru99test를 마우스 오른쪽 버튼으로 클릭하세요. -> 다음 계정으로 실행 -> TestNG test
단계 10) 스크립트는 다음과 같이 실행되기 시작합니다.
단계 12) 테스트 실행이 완료된 후, TestNG 다음과 같이 테스트 보고서가 자동으로 생성됩니다.
잘하셨습니다. 이제 테스트가 완료되었습니다.
요약
- Selendroid 테스트를 위한 매우 강력한 도구입니다. Android 네이티브 앱, 하이브리드 앱, 웹 앱이 있습니다.
- 시뮬레이터뿐만 아니라 실제 장치에서도 사용할 수 있습니다.
- 또한 여러 장치에서 테스트를 실행하여 테스트를 병렬로 실행할 수도 있습니다.
- 전체 Selendroid 제품군은 다음 네 가지 구성 요소로 구성됩니다.
- 웹 드라이버 클라이언트,
- Selendroid-섬기는 사람,
- Android 드라이버 앱
- Selendroid-혼자서
- 사용 Selendroid 이 필요 Java JDK, Android SDK 및 Eclipse 설치.