웹 및 모바일 테스트 자동화 드라이버 비교 및 ​​결합

최종 업데이트 2019년 2월 8일 — Continuous Testing 전문가

웹 및 모바일 테스트 자동화 드라이버 간의 유사점과 차이점 Appium과 Selenium더 자세한 내용을 알아보려면 계속 읽어보세요.

웹 및 모바일 테스트 자동화에는 다양한 도구가 사용됩니다. 각 도구는 기능, 지원 플랫폼, 사용 약관이 다릅니다. 여기서는 그중 Appium과 Selenium 두 가지에 집중하겠습니다.

개발자와 테스터는 웹, 네이티브 및 하이브리드 모바일 애플리케이션 자동화를 위해 Appium 프레임워크를 사용합니다. Selenium 프레임워크는 웹 애플리케이션 자동화에 사용됩니다. 또한 Selenium은 JAVA로 작성되고, Appium은 JavaScript로 작성됩니다. 언뜻 보기에는 서로 다르지만, 한 가지 공통점이 있습니다. Appium과 Selenium은 webDriver 프로토콜을 사용하여 대상 플랫폼과 통신합니다. 즉, Appium은 모바일 기기와, Selenium은 웹 브라우저와 통신합니다. 일반적으로 Selenium webDriver 스크립트는 모바일 기기 브라우저와 데스크톱 브라우저 모두에서 실행되어 동일한 웹 애플리케이션에 대해 동일한 작업을 수행합니다.

웹 및 모바일 테스트 자동화 드라이버의 차이점

무엇보다도 웹과 모바일의 차이점 테스트 자동화 드라이버는 기능, 지원 플랫폼, 그리고 테스트를 실행하기 위한 테스트 벤치 구성에 따라 결정됩니다. 특히 Appium은 Java, JavaScript, Python, C#, Ruby 등 여러 클라이언트를 지원하는 HTTP 서버 역할을 합니다. 실제로 Appium 클라이언트는 Selenium webDriver 클라이언트 라이브러리를 기반으로 합니다. Appium은 Selenium 외에도 모바일 기기와의 상호 작용을 위해 확장된 webDriver API 세트를 사용합니다. 예를 들어, Appium에는 멀티터치 제스처 및 화면 방향 지원, 위치 정보 데이터 관리, 기기 로그 접근 등 다양한 기능을 제공하는 명령이 포함되어 있습니다.

Appium 서버는 Appium 사용자에게 테스트 세션 중 애플리케이션 설치 및 제거와 같은 테스트 대상 기기의 기능을 제어할 수 있는 권한을 제공합니다. Selenium에도 동일한 클라이언트 구현이 있습니다. 하지만 분산 테스트 실행을 위해서는 Selenium 그리드를 설치해야 하는 경우에만 Selenium 서버가 필요합니다.

Selenium은 주요 데스크톱 운영 체제에서 실행되는 주요 브라우저를 지원합니다. Appium은 공식적으로 지원되는 iOS 및 Android 버전에 대해 다양한 iOS 및 Android 기기를 지원합니다. 또한 Appium은 MS Windows 애플리케이션 자동화 기능을 제공합니다. 한편, Appium과 Selenium 테스트를 위한 인프라 구성에는 차이가 있습니다. Appium 테스트를 수행하려면 Node.JS, Appium을 설치하고 SDK, 특정 장치 드라이버 및 프레임워크를 구성해야 합니다. Selenium 테스트의 경우, Selenium Grid에 대한 테스트를 실행하기 위해 Selenium 서버를 설치하지 않는 한 테스트 개발 및 실행 환경을 구성하는 단계는 그리 많지 않습니다. Appium 및 Selenium 스택 다이어그램은 아래 그림과 같습니다.

모바일 웹 자동화를 위한 두 프레임워크 사용의 예

두 프레임워크의 공통 기반 덕분에 위에 나열된 차이점에도 불구하고 웹 및 모바일 테스트 자동화에 함께 사용할 수 있습니다. 모바일 브라우저에서 웹 애플리케이션을 테스트해야 할 때 Appium과 Selenium 프레임워크를 모두 사용할 수 있으며, 하나의 테스트에서 서로 보완됩니다. 아래에서는 GIT에서 간단한 테스트 링크를 볼 수 있습니다. 예를 들어, 모바일 기기의 Android Chrome 브라우저에서 Amazon.com 사이트 페이지를 엽니다.

안드로이드 샘플 테스트.

테스트 코드는 Selenium과 Appium 라이브러리를 모두 사용하여 모바일 기기의 브라우저와 상호 작용합니다. Appium 클라이언트 객체는 장치 드라이버를 초기화하고, Android Chrome 브라우저를 정의하고, 제어하는 ​​데 사용됩니다. Selenium은 "Desired capabilities" 객체를 정의하는 데 사용되며, 이 객체는 장치 드라이버, 모바일 브라우저를 제어하고 Selenium 객체 "By"를 통해 웹 애플리케이션(테스트에서는 Amazon.com 웹사이트 사용)과 상호 작용합니다. 이러한 객체를 사용하면 모바일 브라우저의 웹 요소에 접근할 수 있습니다.

테스트는 다음에서 실행됩니다. SeeTest 플랫폼 – 클라우드 기반 플랫폼개발 및 웹/모바일 테스트 자동화를 위해 다양한 브라우저와 모바일 기기를 제공합니다. 비교를 위해, 클라우드.시테스트.io Mac 플랫폼의 Google Chrome 브라우저에서 웹사이트 페이지를 열고, 페이지에서 몇 개의 링크를 찾아 클릭합니다. 이 경우, SeeTest 클라우드 플랫폼의 원격 브라우저를 제어하고 테스트에 지정된 작업을 수행하는 Selenium 객체만 사용됩니다. 아래 링크에서 테스트 코드를 확인하세요.

크롬 샘플 테스트.

두 번째 테스트도 SeeTest 플랫폼에서 실행되었으며 실행할 준비가 되었습니다. 두 테스트 모두 가능합니다 다운로드, 컴파일하고 실행했습니다. 'mvn clean install' 명령을 사용하세요. 두 테스트 모두 SeeTest 플랫폼에서 실행되어야 하므로 테스트를 시작하기 전에 SeeTest 계정의 액세스 키를 시스템 변수에 추가하는 것을 잊지 마세요.

위에 표시된 첫 번째 예시는 Appium과 Selenium 테스트를 모두 보여주며, 웹 및 모바일 테스트 자동화의 한 예입니다. 이 사례는 웹 애플리케이션을 데스크톱과 모바일 브라우저 모두에서 실행해야 할 때 발생하는데, 요즘은 이러한 경우가 흔합니다.

네이티브 모바일 애플리케이션 자동화를 위한 Appium 및 Selenium 사용 사례

다양한 모바일 및 데스크톱 플랫폼에서 다양한 브라우저를 지원해야 한다는 요구 사항 외에도, 최신 애플리케이션은 웹, 데스크톱, 모바일 등 여러 유형의 클라이언트를 가질 수 있으며, 이는 다양한 운영 체제의 다양한 하드웨어 플랫폼에서 실행될 수 있습니다. QA 엔지니어에게 이는 무엇보다도 하드웨어, OS, 브라우저의 모든 조합에 대한 테스트를 수행해야 한다는 것을 의미합니다. 예를 들어, 두 개의 서로 다른 클라이언트가 사용되는 경우, 모바일 클라이언트의 한 사용자가 특정 작업을 수행하면 웹 클라이언트의 다른 사용자가 해당 작업의 결과를 가져오거나 그 반대의 경우가 발생할 수 있습니다.

이러한 사례의 예로는 여러 클라이언트에서 확인해야 하는 소셜 네트워크 게시물이 있습니다. 또 다른 예로는 모바일 클라이언트 사용자가 메시지를 보내고 웹 클라이언트 사용자가 메시지를 받거나, 그 반대로 채팅하는 경우가 있습니다. 테스트 케이스 관점에서는 모바일 클라이언트와 웹 클라이언트, 두 가지 유형의 클라이언트 간의 상호 작용을 모방해야 합니다. 따라서 한 테스트에서는 Appium과 Selenium 프레임워크를 모두 사용하며, 이 유형의 테스트는 Selenium과 Appium 테스트를 결합합니다. 이 테스트에서 Appium 객체는 모바일 기기를 관리하는 데 사용되고, Selenium 객체는 데스크톱 플랫폼의 브라우저를 관리하고 상호 작용하는 데 사용됩니다. 또한, SeeTest 클라우드 서비스에서도 테스트를 실행해야 합니다.

구현 측면에서, 이러한 클라이언트에 대한 테스트는 별도의 모듈로 작성하고 해당 인스턴스에 대해 SeeTest를 사용하여 병렬로 실행할 수 있습니다. 이 예에서 Selenium과 Appium은 서로 보완적입니다. 이는 웹 및 모바일 테스트 자동화의 또 다른 예입니다.

Appium 프레임워크는 Selenium을 기반으로 하나요?

마지막으로 네이티브 모바일 애플리케이션 자동화에 대한 참고 사항을 알려드리겠습니다. 네이티브 모바일 애플리케이션용 UI 테스트를 작성하고 모바일 페이지의 요소와 상호작용할 때, org.openqa.selenium.remote.RemoteWebElement에서 확장된 io.appium.java_client.MobileElement 클래스의 인스턴스인 객체를 통해 해당 요소에 접근합니다. 즉, 네이티브 모바일 애플리케이션 테스트는 Selenium을 암묵적으로 사용하여 모바일 페이지 요소에 접근합니다.

맺음말

요약하자면, Selenium과 Appium은 웹 및 모바일 테스트 자동화에만 사용할 수 있는 독립된 프레임워크가 아닙니다. 이 두 프레임워크는 모바일 브라우저에서 웹 애플리케이션을 테스트하고 웹 및 모바일 클라이언트와의 상호작용을 포함하는 복잡한 테스트 케이스를 구현하기 위해 하나의 테스트에서 함께 사용될 수 있습니다. 이러한 모든 테스트 케이스는 SeeTest 플랫폼간단히 말해, 다양한 모바일 기기와 브라우저에서 테스트를 수행할 수 있도록 지원합니다. 또한, SeeTest는 웹 및 모바일 테스트 자동화를 위한 클라우드 플랫폼 중 최상위에 자리 잡고 있습니다.

모든 것이 어떻게 작동하는지 직접 확인하려면 무료 체험판을 보려면 여기를 클릭하세요.

당신은 또한 좋아할 거라