Web Automation Test Tool
Web Automation Test Tool Guide
jake_kim
2018. 5. 31. 00:27
[ 출처 ] http://wingsh.tistory.com/148
Selenium
도구 명 | Selenium |
---|
구매 여부 | - 오픈 소스 (Apache License 2.0)
|
도구 설명(특징) | |
적용 장점 | - 다양한 프로그래밍 언어 지원 (Python, Ruby, .Net, Perl, Java, PHP)
현재 사용되고 있는 대부분의 Browser에서 실행 가능 (IE, FireFox, Opera, Safari, Chrome) 다양한 운영 체제에서 동작 가능 (Windows, Linux, Macintosh) 웹페이지 객체에 대해 다양한 접근 가능 (Id, Name, Identifier, XPath, Dom, CSS, Link 등) Flash, SilverLight, Ajax 지원 가능 (추가 설치 필요) 다양한 테스트 프레임워크와 연동 가능 (Bromine, JUnit, NUnit, TestNG, FitNesse) 언어를 자바로 선택했을 경우, 이클립스 사용 가능하고 이클립스 플러그인 사용가능 JUnit과 결합할 경우 개발자 Unit 테스트와 유사한 형태 (CI서버, Clover 등 연동 가능)
|
적용 범위 | - 서비스에 대한 브라우저 호환성 체크, 서비스 테스트 자동화 등
|
제약 사항 | - FireFox에서 가장 잘 수행되며, IE 등 다른 브라우저에서는 버그가 존재함(Cross Domain등)
- Flash 테스트는 외부에 노출된 External Interface에 한해서만 가능
|
사용 팁 | - 코드 작성시 Selenium IDE(레코딩 기능), XPath Checker, FireBug 툴을 사용하면 코드 작성이 용이함
- 코드 작성 이후 기존 Unit Test 하는 방법과 유사하게 진행됨.
- 다양한 이클립스 플러그인 사용하면 좀 더 쾌적한 환경을 구성할 수 있음
|
필요한 기술 | - JAVA를 베이스로 사용할 경우: JAVA, HTML, JAVA SCRIPT, 이클립스 사용법
|
관련 자료 다운로드 | |
AutoIt
도구 명 | AutoIT |
---|
구매 여부 | |
도구 설명(특징) | - 윈도우 GUI와 범용적인 동작들을 테스트 자동화 하기 위한 도구로 윈도우 기반의 웹, 어플리케이션에 대해 손쉬운 스크립트 작성 가능
|
적용 장점 | - Web Browser 뿐만 아니라, Windows Application에 대한 제어도 가능함
- 이미지 비교를 통해서 웹이나 어플리케이션에 대한 UI 테스트가 가능함
- Recording 기능 및 명령어 자동완성 기능을 통해 손쉽게 테스트 케이스를 만들 수 있음
- 외부 API, DLL 사용이 가능함
- ImageSearch.DLL을 이용하여 UI 테스트가 가능
- 국내/해외 사용자가 많아, 관련 문서나 Example을 찾기 쉬움(커뮤니티 활성화)
- SWAT과 연동 활용 가능함
- Compile 후 별도의 Framework 설치 필요 없이 독립적으로 실행 가능
- Random, For, IF 문 등의 사용이 가능하므로 복잡하고 다양한 테스트 시나리오 작성이 가능함
|
적용 범위 | - Flash를 제외한 모든 웹/윈도우 어플리케이션에서 제약 없이 테스트 자동화 가능
- 웹과 어플리케이션을 병행하는 서비스에 대해서 효율적인 결과를 도출할 수 있음
- 이미지 비교(ImageSearch.DLL)을 통해서 UI 테스트 자동화 가능
|
제약 사항 | - Flash는 테스트 불가능 (ImageSearch.DLL을 이용해 이미지 비교 후 해당 좌표에 대한 Action은 가능함)
- Recording이 가능하나, Recording 시 객체에 대한 확인 보다는 Low Recording으로 좌표에 대한 Action으로 Recording (Recording 효율성이 낮음)
- Low Level Action에 대해 Recording을 하게 되므로, UI 변경 시 Recording된 Script에 대한 효율성이 낮음
- 테스트 결과에 대한 View가 제공되지 않아, 별도의 Test Result를 볼 수 있도록 결과 페이지를 작성 해야 함
- 기본적인 스크립트를 작성하기 위해서는 기초적인 Language Skill이 요구되므로 지식이 없는 사용자가 사용하기에 진입장벽이 존재함
|
사용 팁 | - 결과에 대한 Result View가 존재하지 않으므로, 별도의 Result를 볼 수 있도록 Log나 Html, XML 형식으로 결과를 Write
- Object의 Name, ID가 존재하지 않을 경우에는 ImageSearch.DLL함수를 이용하여 해당 Object의 Position을 받아와 Action 수행
- 자주 사용되는 기능이나, 모듈에 대해서는 재사용성이 용이하도록 Function 또는 Module 화
- SWAT과 연동이 가능하므로 기본적인 웹 기능에 대해서는 SWAT을 이용하고, SWAT으로 Cover 하기 어려운 부분은 AutoIT을 이용
|
필요한 기술 | - WEB Object(HTML)와 COM 객체에 대한 개념
- AutoIT의 기본적인 개념 및 기본적인 Script Language 습득
|
관련 자료 다운로드 | |
SWAT
도구 명 | SWAT (Simple Web Automation Toolkit) |
---|
구매 여부 | |
도구 설명(특징) | - HTML 기반의 웹 어플리케이션 테스트 자동화 도구로 End-User 관점에서 다양한 브라우저를 이용하여 손쉽게 테스트 케이스 작성이 가능
|
적용 장점 | - 스크립트 구조가 간단하여 다른 자동화 도구에 비해 익히기 쉬움
- 다양한 브라우저 지원 (Internet Explorer 6.0이상 8.0지원, Firefox, Safari)
- Recording 기능 및 명령어 자동완성 기능을 통해 손쉽게 테스트 케이스를 만들 수 있음.
- FitNesse와 연동 가능
- Hudson CI서버와 연동하여 Regression Test 자동화 가능
- 테스트의 성공/실패에 따라 선택적으로 그 결과를 스크린샷으로 확인 가능
- RunScript 명령어를 이용하여 JavaScript 를 직접 실행 가능
- SWAT4NHN 20091111이후 버전부터 AutoIT 연동기능 제공
- Random, For, IF 문 등의 사용이 가능하므로 복잡하고 다양한 테스트 시나리오 작성이 가능함
|
적용 범위 | - 기본적으로 HTML과 JavaScript만으로 이루어진 웹 어플리케이션은 제약 없이 자동화 가능
- 간단한 Ajax와 ActiveX(예, 파일 업/다운로드 컴포넌트)가 사용된 경우도 가능
|
제약 사항 | - ActiveX / Flash는 테스트가 불가능 (단, AutoIt과 연동 기능을 제공하므로 비교적 단순한 테스트는 자동화가 가능함)
- Ajax를 지원하지만 제약사항이 존재함 (단순한 구조만 가능)
- 일부 Recording이 잘 되지 않는 경우가 존재함
- 테스트 케이스 실행 시 런타임 시점에 테스트 결과에 따라 실행 순서를 변경하거나 특정 테스트를 반복하는 등의 flow control 기능이 없음
(단, Command Modifier를 지원하여 간단한 컨트롤은 가능함)
- 명령어가 단순하므로 복잡한 로직을 포함하는 테스트 케이스는 작성이 불가능
- 현재 FireFox의 JSSH 플러그인 문제로 인해 한글 입력이 잘 되지 않음
|
사용 팁 | - SWAT Editor의 Recording 기능을 활용하여 기본적인 스크립트를 완성하고, Play해서 recording이 잘 되지 않는 부분은 명령어를 직접 typing하여 완성
- 검증 하고자 하는 값(check point)을 정하고 다양한 Assert 명령어를 추가하여 테스트의 성공/실패를 확인할 수 있도록 함
- 이렇게 작성된 스크립트를 FitNesse 위키 페이지에 옮겨서 저장하고 테스트를 수행
- FitNesse와 연동할 경우 관련 있는 테스트 케이스를 페이지 별로 구조화 시키고 다른 페이지 내에서 include와 variable를 통해 재사용 가능하도록 만들 수 있으므로 테스트 케이스 작성 및 유지보수성을 높일 수 있음
- 특히, 관련 있는 테스트는 FitNesse에서 제공하는 Suite기능을 통해 테스트가 작성된 모든 페이지들을 한번에 테스트 가능
- FitNesse와 연동 시 Hudson CI서버와도 연동이 가능하므로 주기적인 테스트 및 이전 테스트 결과를 비교 참조할 수 있음
|
필요한 기술 | - SWAT 개념 및 명령어 작성법
- Hudson 연동을 위한 STAF 커맨드 사용법
|
관련 자료 다운로드 | |
QTP
도구 명 | QTP (Quick Test Professional) |
---|
구매 여부 | |
도구 설명(특징) | - 기능 테스트 자동화 솔루션으로 MS Windows GUI 어플리케이션에 대한 기능 테스트 및 회귀 테스트 자동화가 가능함
|
적용 장점 | - 오브젝트 자동 인식 및 등록: 어플리케이션 스크린 구성 요소들을 한번의 마우스 클릭으로 Shared Object Repository에 등록함으로써 작업 그룹간에 협업 지원
- Keyword View를 통해 Coding 작업 없는 스크립트 작성 지원
- Auto-documentation: 테스트 단계 작성과 동시에 자동 설명 등록
- Integrated Data Table (간단한 테스트 데이터 등록 및 실행)
- 테스트 결과 검증이 용이
|
적용 범위 | - Web/Windows 서비스 모두 테스트 가능
|
제약 사항 | - 스크립트 오동작으로 오브젝트 인식이 안 되는 경우가 있음
|
사용 팁 | |
필요한 기술 | - SWAT 개념 및 명령어 작성법
- Hudson 연동을 위한 STAF 커맨드 사용법
|
관련 자료 다운로드 | |
WebDriver
도구 명 | WebDriver |
---|
구매 여부 | |
도구 설명(특징) | - Web UI 테스트 자동화 라이브러리로 다양한 드라이버를 통한 다중 브라우저 테스트 가능
- 개발자 관점의 웹 테스트 자동화 지원 도구 (only API)
|
적용 장점 | - 다양한 브라우저(Internet Explorer, Firefox, Safari, Chrome)에 대한 직접적인 컨트롤을 통한 네이티브한 테스트 지원
- HtmlUnit 드라이버 지원을 통한 플랫폼 독립적인 테스트 및 테스트 결과의 빠른 피드백 가능
- Support 라이브러리를 사용한 Java Object와 Web Page간 Binding
- 자바스크립트(Javascript) 지원
- 쿠키(Cookie)와 관련된 다양한 기능 지원
- Maven을 통한 Maven 프로젝트에의 손쉬운 테스트 케이스 추가 가능
- 다양한 키보드 제어 기능 지원
|
적용 범위 | - HtmlUnit이 지원하는 범위 내의 웹UI 테스트를 지원하며, 동일한 테스트케이스에 대해 여러 웹 브라우저에 대한 반복 테스트가 필요할 경우 사용 가능
|
제약 사항 | |
사용 팁 | |
관련 자료 다운로드 | |
WebAii
도구 명 | WebAii |
---|
구매 여부 | - 상용 도구이나 테스트 엔진 자체는 무료로 제공되므로 무료 사용 가능
|
도구 설명(특징) | - 웹 어플리케이션 테스트 자동화 도구로 End-User 관점에서 다양한 브라우저를 이용하여 손쉽게 테스트 케이스 작성이 가능
- Browser와 연계된 Win32 Native 이벤트 제어를 광범위하게 지원함으로써, 기존의 테스트 도구로 테스트하기 힘든 복잡한 어플리케이션도 테스트할 수 있음
- Test Recoder는 상용으로 제공되나, 테스트 엔진 자체는 무료로 제공됨
|
적용 장점 | - 타 테스트 도구에 비해 많은 API 셋을 제공함으로써, 테스트 코드가 간단함
- 다양한 브라우저 지원 (Internet Explorer 6.0이상 8.0지원, Firefox, Safari)
- SilverLight App에 대한 직접 지원(External API 필요 없음).
Flash에 대한 Window Native Event를 사용한 처리 지원 - 다양한 .NET 기반 Unit Test 프레임웍 지원 (MbUnit / MSTest / NUnit 등)
- Recording 기능을 통해 자동으로 테스트 케이스를 만들 수 있음 (단, 상용 버전 구매 필요)
|
적용 범위 | - 지나치게 복잡하여 다른 도구로 테스트하기에 힘든 Ajax Web Application
- Silverlight / Flash 를 많이 사용한 Web Application 테스트
- Web Game Launcher등 Windows Native App 테스트와 연계가 필요한 경우
(또 다른 Native App 테스트 환경인 White(http://www.codeplex.com/white)와 자연스럽게 연계 가능)
|
제약 사항 | - NET 지원 언어 습득 필요. Window 환경에서만 동작
- Visual Studio 구매 또는 Open Source. NET IDE인 SharpDevelop 사용 필요
- 한글 FireFox에 대한 JavaScript 다이얼로그 처리 기능 일부 미숙. 패치 필요
- API가 약간 직관적이지 않아 학습이 필요함스크립트 오동작으로 오브젝트 인식이 안 되는 경우가 있음
|
사용 팁 | |
필요한 기술 | - .NET 지원 언어 사용법.
- .NET Unit Test Framework 사용법
|
관련 자료 다운로드 | |
출처: http://wingsh.tistory.com/148 [꾸준함의 위대함]