모바일 애플리케이션 테스트를 위한 Appium 아키텍처

게시 됨: 2020-06-26

목차

앱피움 개요

Appium은 iOS 및 Android 모바일 애플리케이션에 대한 자동화를 제공하는 무료 모바일 애플리케이션 테스트 도구/프레임워크입니다. Appium은 Java, Python, Ruby, JavaScript 등으로 작성된 테스트 코드를 허용하는 클라이언트-서버 아키텍처입니다.

Appium은 기본적으로 JSON 유선 프로토콜을 사용하여 iOS 및 Android 세션을 생성하는 Node.js 프로그래밍 언어로 작성된 웹 서버입니다.

Appium 서버는 다음 작업을 수행합니다.

  • HTTP를 통해 JSON 객체 형태로 클라이언트로부터 연결을 받습니다.
  • 세션을 시작한 다음 세션 ID를 반환합니다.
  • 발행된 명령을 수신합니다.
  • 모바일 장치에서 이러한 명령을 실행합니다.
  • HTTP 응답으로 응답

원천

Appium 핵심 개념

Appium 아키텍처 에 대해 자세히 알아보기 전에 먼저 Appium 아키텍처 와 관련된 주요 개념을 이해하겠습니다 .

아피움 클라이언트

Appium 클라이언트는 PHP, Java , Phyton 등 사용자에게 익숙한 모든 언어로 작성된 자동화된 스크립트 코드입니다 . Appium 클라이언트는 테스트 케이스를 실행하기 위한 로직/코드와 함께 모바일 장치 및 애플리케이션의 구성 세부사항을 보유합니다.

아피움 서버

Appium 서버는 Appium 클라이언트로부터 JSON 형식의 연결 및 명령 요청을 수신하고 모바일 장치에서 해당 명령을 실행하는 Node.js 프로그래밍 언어로 작성된 HTTP 서버입니다. Appium Server는 자동화 코드를 호출하기 전에 시작됩니다.

서버는 iOS 및 Android 플랫폼과 상호 작용하고 모바일 애플리케이션의 최종 장치와 상호 작용하는 세션을 생성합니다.

읽기: 초보자를 위한 인기 있는 Android 프로젝트 아이디어 및 주제 상위 20개

최종 장치

최종 장치는 대부분 실시간 모바일 장치 또는 에뮬레이터입니다. 자동화된 스크립트는 클라이언트의 명령에 의해 Appium 서버에 의해 최종 장치에서 실행됩니다.

JSON 유선 프로토콜

Appium 아키텍처에서 JSON 유선 프로토콜은 Appium 클라이언트와 Appium 서버 간의 통신을 설정하는 데 사용되는 전송 메커니즘입니다. 이 프로토콜은 세션에서 다양한 모바일 장치의 동작을 제어합니다. RESTful API를 통해 노출되는 미리 정의된 엔드포인트 집합입니다. 예를 들어 클라이언트가 서버에 데이터를 보내려는 경우 클라이언트는 이를 JSON 객체로 변환하여 서버에 푸시합니다. 그런 다음 서버는 수신된 JSON 개체를 구문 분석하고 사용할 데이터로 다시 변환합니다.

아피움 아키텍처

이제 Appium 아키텍처 를 이해합시다 .

위에서 언급했듯이 Appium 서버는 JSON 형식의 클라이언트 라이브러리 에서 HTTP 요청을 읽고 이러한 요청을 적절한 플랫폼으로 보내는 HTTP 서버입니다. Appium 서버는 이러한 요청을 인식하고 해당 최종 장치와 자동화 세션을 생성합니다. 세션이 생성되면 Appium 서버는 최종 장치에서 테스트 케이스의 실행을 시작합니다.

Appium 서버는 실행 중인 플랫폼에 따라 iOS 및 Android에 대해 요청을 다르게 처리합니다. 다음 섹션에서는 Appium이 이러한 플랫폼에서 명령을 다르게 실행하는 방법을 설명합니다.

iOS 기기에서 작동하는 Appium

iOS 장치에서 Appium은 UIAutomation API(Apple Company에서 제공하는 JavaScript 라이브러리)를 사용하여 응용 프로그램의 사용자 인터페이스 요소와 연결합니다.

위의 Appium iOS 아키텍처 그림은 iOS 자동화를 위한 Appium 아키텍처 를 설명합니다. iOS Appium 아키텍처 그림을 단계별로 디코딩해 보겠습니다 .

  • Appium 클라이언트는 JSON 유선 프로토콜을 사용하여 Appium 서버와 통신하고 JSON 형식의 명령을 서버에 보냅니다.
  • 그런 다음 서버는 클라이언트와 연결을 설정하고 요청을 ICS(Instruments Command Server)로 전달합니다. Appium 서버는 또한 bootstrap.js 파일을 iOS 장치에 푸시합니다. 그런 다음 ICC(Instruments Command 클라이언트)는 명령을 선택하고 iOS 장치 환경 내의 bootstrap.js 파일에서 실행합니다.
  • 위의 작업이 완료되면 실행된 명령의 로그 세부 정보가 클라이언트에서 서버로 다시 전송됩니다.

Android 기기에서 작동하는 Appium

Android 기기에서 Appium은 Android 개발자가 개발한 UIAutomator 프레임워크를 사용하여 애플리케이션의 사용자 인터페이스 요소와 상호 작용합니다. UI Automator는 사용자 인터페이스를 테스트하는 데 사용되는 프레임워크입니다.

위의 Appium Android 아키텍처 그림은 Android 자동화를 위한 Appium 아키텍처를 설명합니다. 위의 그림은 bootstrap.js를 bootstarp.jar로 대체합니다.

배우기: Android SDK: 초보자를 위한 자세한 자습서

Android Appium 아키텍처 그림을 단계별로 디코딩해 보겠습니다.

  • Appium 클라이언트는 JSON 유선 프로토콜을 사용하여 Appium 서버와 통신하고 JSON 형식의 명령을 서버에 보냅니다.
  • 그러면 Appium 서버는 클라이언트와 연결을 설정하고 요청을 ICS UiAutomator 컨트롤러로 전달합니다. Appium 서버는 또한 bootstrap.jar 파일을 Android 장치에 푸시합니다. UiAutomator 명령은 클라이언트가 명령을 선택하고 Android 장치 환경 내의 bootstrap.jar 파일에서 실행합니다.
  • 위의 작업이 완료되면 실행된 명령의 로그 세부 정보가 클라이언트에 의해 Appium 서버로 다시 전송됩니다.

또한 읽기: 전체 스택 대 Android 개발자: 무엇을 선택해야 합니까?

결론

Appium은 의심할 여지 없이 모바일 애플리케이션 테스트를 위한 가장 인기 있는 플랫폼 중 하나입니다. 지금까지 Appium 아키텍처 , 워크플로 및 iOS 및 Android 플랫폼에서 Appium 작동에 대한 개요를 배웠습니다 .

전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

미래의 직업을 위한 준비

전체 스택 소프트웨어 개발에서 업그레이드 및 IIIT-BANGALORE의 PG 디플로마
지금 신청