selendroid tutorial android mobile test automation framework
Selendroid를 사용한 모바일 자동화 (파트 -I) :
물건을 보내는 제품 테스트 사이트
지금까지 Android를 플랫폼으로 사용하여 이미 수백만 개의 앱이 개발되었으며 그 수는 여전히 날로 증가하고 있습니다.
문제는 각각의 모든 앱을 어떻게 검증 할 것인가? 인력, 실제 장치 (예 : 모바일) 등과 같은 전용 리소스가 필요하므로 시간이 많이 걸리는 작업입니다. 반면, 안드로이드 버전, 애플리케이션 (.apk) 버전, 기기 크기 등은 일정하지 않습니다.
따라서 전체 테스트 범위를 정의 할 수 없기 때문에 테스트 종료 기준을 정의하는 것이 매우 어려워 져 정확한 테스트 노력을 추정 할 수 없습니다.
기기 의존성을 극복하기 위해 에뮬레이터가 개발되고 있으며, 이는 Android 버전, 기기 및 버전에 대한 걱정없이 애플리케이션을 테스트 할 수있는 실시간 유사 환경을 제공 할 수 있습니다. 그러나 여전히 에뮬레이터를 통한 애플리케이션 (.apk) 테스트는 수동 작업이며 시간이 많이 걸리는 작업입니다. 따라서 모바일 테스트 자동화 아이디어가 발전하고 있습니다.
모바일 자동화를 수행하기 위해 스크립팅 언어를 사용하여 Android 기반 애플리케이션을 자동화 할 수있는 테스트 자동화 프레임 워크를 개발합니다.
Selendroid, Appium, Robotium, Espresso와 같은 많은 자동화 프레임 워크가 개발되었습니다.
이 튜토리얼은 두 부분으로 나뉩니다.
튜토리얼 # 1 : Selendroid 소개 : Android 모바일 테스트 자동화 프레임 워크
튜토리얼 # 2 : Selendroid 프레임 워크를 사용하여 모바일 애플리케이션을 통한 사용자 상호 작용을 자동화하는 방법 (출시 예정)
학습 내용 :
Selendroid는 무엇입니까?
Selendroid는 몇 가지 중요한 기능을 갖춘 놀라운 Android 모바일 애플리케이션 테스트 자동화 프레임 워크 도구입니다. Selendroid는 여러 장치와 동시에 상호 작용할 수있는 매우 강력한 자동화 도구이며 Selendroid를 사용하여 수정 또는 변경없이 애플리케이션을 테스트 할 수 있습니다.
그것은 또한 불린다 “Android 용 Selenium” 네이티브 및 하이브리드 모바일 앱과 모바일 웹을 테스트합니다.
왜 셀렌 드로이드인가?
- 오픈 소스 (무료 사용)
- 스크립팅 언어로 Selenium 지원
- Java, C #, Perl과 같은 웹 드라이버 호환 언어 지원
- 모든 Android 버전 지원
- 에뮬레이터와 실제 장치 모두에서 작동합니다.
- 네이티브, 하이브리드 및 웹 기반 애플리케이션에서 작동
- 네이티브 애플리케이션과 클라우드 기반 애플리케이션을 실행하는 동안 효과적입니다. 셀레늄 그리드를 지원하므로
- 객체 속성을 이용한 객체 인식 지원
- 구현하기 쉬움
- 테스트를 다시 시작하거나 중지하지 않고도 테스트 실행 중에 하드웨어 장치를 PC에서 연결하거나 분리 할 수 있습니다. Selendroid는 새 장치를 자동으로 인식 할 수 있습니다. 이 기능을 '핫 플러깅'이라고합니다.
Selendroid의 간단한 아키텍처
셀렌 드로이드 부품
Selendroid-클라이언트
기본적으로 자바 클라이언트 라이브러리입니다. 이 구성 요소에서 HTTP 및 WebDriver 요청은 JSON을 사용하여 Selendroid Standalone 서버로 전송됩니다.
Selendroid-독립형
이 구성 요소는 Selendroid-server 및 테스트중인 앱을 설치하여 .apk뿐만 아니라 다양한 기기를 관리합니다. Http 요청 (실제 장치 / 시뮬레이터를 통해 실행 됨)이 Selendroid 독립형 서버에서 장치 및 테스트중인 APK로 전송됩니다.
Selendroid-서버
이 서버는 테스트중인 애플리케이션과 함께 장치에서 실행됩니다. 서버와 테스트중인 응용 프로그램간에 양방향 통신이 있습니다.
AndroidDriverApp
기본 제공 Android 드라이버이자 모바일 웹을 테스트하기위한 Web View 앱입니다.
다음과 같은 또 다른 테스트 프레임 워크 APPI Selendroid와 유사하게 작동합니다.
다음은 둘 사이의 작은 비교입니다.
특색 | 셀렌 드로이드 | appium |
---|---|---|
낮은 안드로이드 버전 지원 (<4.1) | 예 | 아니 |
핫 플러깅 | 예 | 아니 |
사용자 에이전트 테스트 | 아니 | 예 |
iOS 기반 애플리케이션 지원 | 아니 | 예 |
환경 요구 사항 | Android-Mac, Linux, Windows (모든 버전) | iOS 용 – Mac OSX 107. Android – Windows 7 이상, Linux, Mac OSX 107. |
전제 조건 :
의도 된 청중과 함께 시작하려면 이클립스와 같은 IDE 도구와 셀레늄 사용에 대해 잘 알고 있어야합니다. 프로그래밍의 기본 개념에는 Java, C 등이 있으며 Maven 및 기타 TESTING 도구 사용에 대해 알고 있어야합니다.
- 시뮬레이터를 보려면 Intel x86 Emulator Accelerator (필수 아님)를 설치하십시오. 여기
- Java SDK, JRE가 이미 테스트 환경에 설치되었습니다. 또는 다음에서 동일한 파일을 다운로드 할 수 있습니다. 여기
설치하는 동안 SDK 경로를 기록해 둡니다.
내 컴퓨터에 존재하는 환경 변수 설정-> 마우스 오른쪽 버튼 클릭-> 속성-> 고급 시스템 설정
- Eclipse는 이미 컴퓨터에 설치되어 있습니다. 그렇지 않은 경우 다음에서 동일한 파일을 다운로드 할 수도 있습니다. 여기
- Selenium jar 파일이 다운로드됩니다. 같은 것을 다운로드 할 수 있습니다. 여기에서도
- TestNG jar가 이미 다운로드되었습니다.
- Android SDK를 다운로드하여 설치할 수 있습니다. 다음에서 같은 것을 다운로드 할 수도 있습니다. 여기
설치하는 동안 Android SDK 경로 기록
다운로드가 끝나면 ANDROID_HOME은 다음과 같은 환경 변수에 설정되어야합니다.
내 컴퓨터-> 마우스 오른쪽 버튼 클릭-> 속성-> 고급 시스템 설정
- Selendroid jar 파일이 다운로드됩니다. 다음에서 같은 것을 다운로드 할 수도 있습니다. 여기
생각해 내다 위 위치에서 Selendroid 독립형 jar 파일을 다운로드합니다. 일반적으로 이름은 selendroid-standalone-0.9.0-with-dependencies.jar과 같습니다. 또한 위 위치에서 selendroid-test-app-0.8.0.apk라는 샘플 APK 파일 하나를 다운로드하십시오.
노트 :
- 우리는 또한 사용할 수 있습니다 메이븐 저장소 모든 jar에 대한 참조를 제공하려면 수동으로 다운로드하여 빌드 경로에 첨부해야합니다 (Eclipse 프로젝트 사용).
- 장치 / 에멀 레이터 – Android에서 설치된 모든 응용 프로그램은 .apk 확장자를 갖습니다. 다른 방법으로 Android 기기에 설치된 애플리케이션 목록과 실제 이름, 크기 등에 대해 알려주는 APK 정보와 같은 앱을 다운로드 할 수 있습니다.
환경 설정
# 1) 적절한 위치에 설치해야하는 APK 보관
제 경우에는 계속해서 G : \ Jars \ selendroid-test-app-0.8.0.apk
# 2) 다음으로 응용 프로그램을 프로젝트 폴더 위에 둡니다.
제 경우에는 500 : AppiumAutomation SelendroidFirst
# 3) 실제 장치를 PC에 연결
USB 디버깅 모드가 활성화되어 있고 USB 연결을 통해 외부 앱을 설치할 수 있는지 확인합니다.
팁 :
# 4) Windows에서 명령 프롬프트 열기
Selendroid 독립 실행 형 jar와 다운로드 한 apk 파일이있는 폴더로 이동합니다.
이제 비슷한 명령을 지정하고 명령 프롬프트에서 Enter 키를 누릅니다.
예 : java --jar selendroid-standalone-0.15.0-with-dependencies.jar -aut selendroid-test-app-0.8.0.apk
또는 java –jar selendroid-standalone-0.15.0-with-dependencies.jar
APK 파일 : selendroid-test-app-0.8.0.apk
노트 : 위 명령이 실행되면 APK가 서명되어 있고 실제 장치가 PC에 연결되어 있고 장치에서 디버깅이 활성화되어 있는지 확인하십시오.
(노트: 이미지를 클릭하시면 크게보실 수 있습니다.)
명령 프롬프트에서 다음 사항을 확인하여 환경이 자동화 할 준비가되었는지 확인하십시오.
- '유효한 번호로 지정된 장치'메시지 확인
- “server is started in default port say (4444)…”메시지 확인
- '세션 생성 중…'메시지 확인
다시 한번 우리는 웹 브라우저에서 다음 URL을 사용하여 서버가 시작되었는지 여부를 항상 재확인 할 수 있습니다.
예 : http : // localhost : 4444 / wd / hub / status
# 5) APK 검사
- 실제 모바일 장치를 연결하여 Real Apps를 사용할 수 있습니다.
- 다운로드 한 모든 오프라인 APK 파일을 사용할 수 있습니다.
Selendroid Inspector는 APK의 웹 요소를 디버깅 / 검사하는 데 유용합니다.
기기가 식별되고 시작되면 APK (가상 모드)를보고 웹 브라우저에서 다음 URL을 사용하여 스크립트 작성에 유용한 참조를 찾을 수 있습니다.
예 : http : // localhost : 4444 / inspector
여기에 테스트중인 애플리케이션의 스크린 샷이 있고 요소를 검사 할 수있는 기능도 있습니다.
또는 항상 사용할 수 있습니다 uiautomatorviewer 테스트중인 응용 프로그램에서 개체를 찾습니다.
이에 대한 기본 경로는 다음과 같습니다.
C : 사용자 관리자 android-sdks tools
C : Users admin – Android SDK를 설치 한 위치이지만 설치시 지정한 위치에 따라 다를 수 있습니다.
실제 장치에서 APK 파일을 사용하여 첫 번째 스크립트 작성
객관적인:
- 서버 시작 (기본 포트에서 4444라고 함)
- 세션 생성
- 연결된 실제 장치에 응용 프로그램 (.apk 파일) 설치
- 일부 데이터로 텍스트 필드 자동화
- 버튼을 자동으로 클릭
package SelendroidFirst; import io.selendroid.client.SelendroidDriver; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import io.selendroid.common.SelendroidCapabilities; import io.selendroid.common.device.DeviceTargetPlatform; 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.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.*; import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME; import static org.openqa.selenium.remote.CapabilityType.PLATFORM; import static org.openqa.selenium.remote.CapabilityType.VERSION; public class RealDevices{ public SelendroidLauncher selendroidServer = null; public WebDriver driver = null; public void conf() throws Exception { //**Configuration**// SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp('G:\Jars\selendroid-test-app-0.8.0.apk'); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); //**Creating capabilities**// SelendroidCapabilities sc = new SelendroidCapabilities(); sc.setAut('io.selendroid.testapp:0.8.0'); sc.setEmulator(false); //**Instantiating new Selendroid driver**// WebDriver driver = new SelendroidDriver(sc); //**Sending data to the text field**// driver.findElement(By.id('my_text_field')).sendKeys('Selendroid Test'); //**Clicking on the button**// driver.findElement(By.id('visibleButtonTest')).click(); Thread.sleep(10000); }
결론
Selendroid는 시뮬레이터뿐만 아니라 모든 Android 기기에서 네이티브, 하이브리드 및 웹 앱을 테스트하는 데 사용할 수있는 매우 강력한 자동화 테스트 프레임 워크 도구입니다.
핫 플러깅을 지원하므로 사용자는 한 번에 여러 장치를 테스트 할 수 있으므로 여러 장치에서 병렬 테스트 실행이 가능합니다. 길게 누르기, 터치 동작 등과 같은 다양한 종류의 상호 작용을 지원합니다.
그것의 복잡성 만이 다른 프레임 워크에도 존재하는 환경 설정입니다. 올바르게 설정되면 아무 어려움없이 스크립트를 실행할 수 있습니다.
에2 부이 Selendoid 자습서에서 다룰 것입니다 – Selendroid 프레임 워크를 사용하여 모바일 애플리케이션에서 사용자 상호 작용을 자동화하는 방법.
최고의 PC 클리너 소프트웨어는 무엇입니까
다음 기사에서는 pCloudy 실습 검토 자습서.
추천 도서
- 초보자를위한 심층 이클립스 튜토리얼
- SeeTest 자동화 자습서 : 모바일 테스트 자동화 도구 가이드
- JCF (Java Collections Framework) 자습서
- 예제가 포함 된 Java 리플렉션 자습서
- Ranorex 자습서 : 강력한 데스크톱, 웹 및 모바일 자동화 테스트 도구
- Android 및 iOS 모바일 앱 테스트를위한 Appium 자습서
- Selendroid를 사용하여 모바일 앱을 통한 사용자 상호 작용 자동화 (2 부)
- 실시간 모바일 자동화 프로젝트에서 SeeTest 자동화의 고급 사용