introduction sikuli gui automation tool sikuli tutorial 1
항상 그렇듯이 우리는 독자들을 위해 새로운 것을 배우려고 노력합니다. 오늘은 흥미로운 GUI 자동화 도구 인 Sikuli를 살펴 보겠습니다.
Sikuli 그래픽 사용자 인터페이스 (GUI) 자동화 도구를 사용하여 '보이는 모든 것을 자동화'– 완벽한 초보자 가이드 빠르게 설정하고 Sikuli 스크립트 도구 사용 시작 이 심층적 인 Sikuli 튜토리얼과 함께.
Sikuli는 GUI 요소를 식별하기 위해 이미지 인식 방법을 사용하여 화면에 표시되는 모든 것을 자동화합니다. Sikuli 스크립트를 사용하면 스크린 샷을 사용하여 GUI 상호 작용을 자동화 할 수 있습니다.
이 Sikuli 시리즈의 튜토리얼 목록
이 시리즈는 세 부분으로 나뉩니다.
튜토리얼 # 1 : 작동 원리, 간단한 Sikuli 프로젝트 생성 방법.
튜토리얼 # 2 : Sikuli를 Selenium 웹 드라이버와 함께 사용하여 웹 페이지를 자동화하는 방법.
튜토리얼 # 3 : Sikuli 도구를 사용하여 플래시 기반 애플리케이션 자동화
학습 내용 :
Sikuli GUI 자동화 도구
이 시리즈의 1 부부터 시작하겠습니다.
Sikuli 'Visual Image Match'방법을 사용하여 그래픽 사용자 인터페이스 (GUI)를 자동화하는 도구입니다. Sikuli에서는 모든 웹 요소를 이미지로 가져 와서 프로젝트 내부에 저장해야합니다. Sikuli는 모든 메소드와 함께 매개 변수로 전달한 이미지 인 이미지 시각적 일치를 기반으로 GUI 상호 작용을 트리거합니다.
Sikuli는 ID 나 이름이없는 플래시 개체를 자동화하는 데 매우 유용 할 수 있습니다. 안정적인 GUI가있는 상황에서 유용 할 수 있습니다 (즉, GUI 구성 요소가 변경되지 않음).
Window 기반 애플리케이션도 Sikuli를 사용하여 자동화 할 수 있습니다. Sikuli는 Selenium WebDriver와 함께 쉽게 사용할 수있는 매우 친숙한 Sikuli-script.jar를 제공합니다. Sikuli를 사용하여 웹 사이트에서 Adobe 비디오 / 오디오 플레이어, Flash Games를 자동화 할 수도 있습니다. 간단한 API를 사용하면 코딩이 더 쉬워집니다.
실용적인 용도
- Sikuli는 Flash Objects / Flash 웹 사이트를 자동화하는 데 사용할 수 있습니다.
- Window 기반 애플리케이션을 자동화하는 것이 유용 할 수 있습니다. 우리는 화면에서보고있는 것을 자동화 할 수 있습니다.
- 간단한 API를 제공합니다. 즉, 모든 메서드는 화면 클래스 개체를 사용하여 액세스 할 수 있습니다.
- Selenium 및 기타 모든 도구와 쉽게 통합 할 수 있습니다.
- Sikuli를 사용하여 데스크톱 애플리케이션을 자동화 할 수 있습니다.
- 대부분의 자동화 테스트 도구는 플래시 객체 자동화 (예 : Selenium)를 지원하지 않습니다. Sikuli는 플래시 개체를 자동화하는 광범위한 지원을 제공합니다.
- 강력한 'Visual Match'메커니즘을 사용하여 데스크탑 및 플래시 개체를 자동화합니다.
혜택
- 오픈 소스 도구.
- Sikuli의 가장 큰 장점 중 하나는 Flash 개체를 쉽게 자동화 할 수 있다는 것입니다.
- Windows 응용 프로그램을 쉽게 자동화 할 수 있습니다.
- 개발중인 애플리케이션을 테스트 할 때 요소의 ID / 이름을 모르는 경우 Sikuli를 사용할 수 있습니다. 이미지의 모양을 확인하고 일치하는 항목이 발견되면 그에 따라 이미지와 상호 작용합니다.
전제 조건 :
시작하기 전에 다음 소프트웨어를 다운로드하여 설치해야합니다.
- 모든 스크린 샷 캡처 도구 ( 예를 들어, DuckCapture , 또는 qSnap )
- JDK
- Eclipse (상세 단계 여기 JDK 및 Eclipse 설치)
Sikuli Java 프로젝트를 만드는 단계
1 단계 : Sikuli 다운로드 - Sikuli 다운로드 여기 .
2 단계: 다운로드 한 zip 파일을 추출합니다. Sikuli-script.jar 파일이 포함됩니다. 이 추출 된 파일을 로컬 파일 시스템에 저장하십시오.
3 단계 : Eclipse를 엽니 다.
4 단계 : 자바 프로젝트 파일 만들기-> 새로 만들기-> 자바 프로젝트
5 단계 :
- 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.
- 빌드 경로-> 빌드 경로 구성으로 이동하십시오.
- 라이브러리 탭으로 전환
- “Add External Jars”버튼을 클릭하고 Build Path에 Sikuli-Script.jar를 추가합니다.
- '확인'을 클릭하십시오.
Sikuli-script.jar이 프로젝트 빌드 경로에 추가됩니다. 끝났습니다. 이제이 프로젝트 내에서 Sikuli 스크립트 작성을 시작할 수 있습니다.
일부 Sikuli 방법
# 1) 스크린 클래스 용 객체 생성
화면은 Sikuli에서 제공하는 기본 클래스입니다. 먼저이 화면 클래스에 대한 개체를 만들어야합니다. 그러면 Sikuli가 제공하는 모든 메서드에 액세스 할 수 있습니다.
통사론:
화면 s = new Screen ();
# 2) 요소 클릭
이 방법은 화면에있는 특정 이미지를 클릭하는 데 사용됩니다.
통사론:
s.click (“<>”);
예를 들어,
s.click ( 'test.png');
# 3) 요소를 마우스 오른쪽 버튼으로 클릭
일부 소프트웨어 오류는 물리적 연결 문제를 나타냅니다.
이 방법은 화면에있는 특정 이미지를 마우스 오른쪽 버튼으로 클릭하는 데 사용됩니다.
통사론:
s.rightClick (“<>”);
예를 들어,
s.rightClick ( 'test.png');
# 4) 요소 찾기
이 방법은 화면에있는 특정 요소를 찾는 데 사용됩니다.
통사론:
s.find (“<>”);
예를 들어,
s.find ( 'test.png');
# 5) 요소를 두 번 클릭
이 메서드는 화면에있는 특정 이미지에서 더블 클릭 이벤트를 트리거하는 데 사용됩니다.
통사론:
s.doubleClick (“<>”);
예를 들어,
s.doubleClick ( 'test.png');
# 6) 화면에 요소가 있는지 확인
이 메서드는 지정된 요소가 화면에 있는지 확인하는 데 사용됩니다.
통사론:
s.exists (“<>”);
예를 들어,
s.exists ( 'test.png');
# 7) 텍스트 상자에 문자열 입력
이 방법은 텍스트 상자에 지정된 텍스트를 입력하는 데 사용됩니다.
통사론:
s.type (“<>”,”입력 할 문자열”);
예를 들어,
s.type ( 'test.png', 'HI !!');
# 8) 특정 이미지에 휠링
이 메서드는 요소 이미지에서 휠링 동작을 수행하는 데 사용됩니다.
통사론:
s.wheel (“<>”,<>,<>);
예를 들어,
s.wheel ( 'test.png', 25,0);
# 9) 이미지 / 요소 드래그 앤 드롭
이 방법은 지정된 이미지를 소스 위치에서 대상 위치로 끌어서 놓는 데 사용됩니다.
통사론:
s.dragDrop (“<>','<>”);
예를 들어,
s.dragDrop ( 'test.png', 'test1.png');
경험이 풍부한 오라클 PL SQL 인터뷰 질문 및 답변
# 10) 특정 이미지에 롤오버
이 메서드는 지정된 이미지에서 롤 호버 이벤트를 수행하는 데 사용됩니다.
통사론:
s.hover (“<>”);
예를 들어,
s.hover ( 'test.png');
# 11) 복사 된 문자열 붙여 넣기
이 방법은 지정된 텍스트 상자에 텍스트를 붙여 넣는 데 사용됩니다.
통사론:
s.paste (“<>','테스트');
예를 들어,
s.paste ( 'test.png', 'test');
Sikuli 예
# 1) YouTube 동영상 – 동영상 일시 중지 및 재생
1 단계) YouTube 비디오 링크를 열고 화면 캡처 도구를 사용하여 재생 및 일시 중지 요소 이미지를 캡처합니다.
일시 중지 버튼 ( 노트 : 파일 이름은 pause.png)
재생 버튼 ( 노트 : 파일 이름은 play.png)
프로젝트 내에서 이러한 이미지를 복사하십시오.
2 단계) 생성 된 Sikuli 자바 프로젝트 내부에 패키지를 생성하고 그 안에“Youtube”라는 클래스를 생성합니다.
3 단계) 해당 클래스 안에 다음 코드를 입력하십시오.
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class Youtube { public static void main(String() args) throws FindFailed, InterruptedException { // TODO Auto-generated method stub Screen s=new Screen(); s.find('pause.png'); //identify pause button s.click('pause.png'); //click pause button System.out.println('pause button clicked'); s.find('play.png'); //identify play button s.click('play.png'); //click play button } }
단계 # 4) 클래스를 마우스 오른쪽 단추로 클릭하고 실행 도구-> Java 애플리케이션을 선택하십시오.
# 2) 메모장을 열고 텍스트 입력
단계 # 1) 화면의 바탕 화면에있는 메모장 아이콘을 캡처합니다.
notepad_icon.png
notepad.png
단계 # 두) 프로젝트 내에서 이러한 이미지를 복사하십시오.
3 단계) 프로젝트 내에 'NotepadExample'이라는 클래스를 만들고 다음 코드를 입력합니다.
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class NotepadExample { public static void main(String() args) throws FindFailed { // TODO Auto-generated method stub Screen s=new Screen(); s.click('notepad_icon.png'); s.find('notepad.png'); s.type('notepad.png','This is Nice Sikuli Tutorial!!!!'); } }
4 단계) 코드를 실행하기 전에 테스트 할 화면을 엽니 다.
실행 도구-> Java 애플리케이션을 마우스 오른쪽 단추로 클릭하여이 파일을 실행하십시오.
# 3) 드래그 앤 드롭
1 단계) 화면에서 필요한 항목의 스크린 샷을 찍어 Sikuli 프로젝트에 넣습니다.
( 노트 : 여기에서 다운로드 아이콘은“source.png”이고 꽃 이미지는“destination.png”입니다.)
단계 # 두) 이 사진을 프로젝트에 넣으십시오.
단계 #삼) 'DragAndDrop'이라는 이름으로 클래스를 만들고 다음 코드를 작성합니다.
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class DragAndDrop { public static void main(String() args) throws FindFailed, InterruptedException { // TODO Auto-generated method stub Screen s=new Screen(); s.find('source.png'); System.out.println('Source image found'); s.find('target.png'); System.out.println('target image found'); s.dragDrop('source.png', 'target.png'); } }
단계 # 4) 실행 도구-> Java 애플리케이션을 마우스 오른쪽 단추로 클릭하여이 스크립트를 실행하십시오.
이 스크립트를 실행하면 다운로드 아이콘이 대상으로 표시된 이미지에 드래그 앤 드롭됩니다.
실행 전 :
실행 후 :
이 도구의 단점
- 이미지 일치가 항상 정확하다고 보장 할 수는 없습니다. 때로는 화면에서 두 개 이상의 유사한 이미지를 사용할 수있는 경우 Sikuli가 잘못된 이미지를 선택하려고 시도합니다.
- 그리고 이미지 모양이 픽셀 크기에 따라 다를 경우 '찾기 실패'예외도 발생합니다.
- 너무 많은 스크린 샷을 찍는 오버 헤드.
- 스크린 샷이 누락 된 경우 프로그램 실행에 영향을줍니다.
추가 리소스 :
결론
Sikuli는 플래시 개체를 자동화하는 데 매우 유용합니다. 창 기반 응용 프로그램을 자동화하는 데 사용할 수 있습니다. 시각적 요소를 기반으로 화면의 요소를 가지고 놀 수있는 훌륭한 도구입니다.
저자 정보 : Anitha Eswari의 게스트 게시물입니다. 그녀는 현재 수동 및 자동화 테스트와 다양한 테스트 관리 도구에 대한 건전한 지식을 갖춘 선임 테스트 엔지니어로 일하고 있습니다.
다음 튜토리얼 : 이 시리즈의 다음 부분에서는 Sikuli maven 프로젝트를 만들고 Selenium을 Sikuli와 통합하는 방법에 대해 자세히 살펴 보겠습니다.
이미이 도구를 사용하고 계십니까? 귀하의 경험과 팁을 공유하십시오. 시작하고 싶지만 질문이있는 경우 알려주십시오.
추천 도서
- Sikuli GUI 자동화 테스트 도구-초보자 가이드 파트 # 2
- GUI 테스트 자동화를위한 30 가지 최고의 GUI 테스트 도구 (2021 목록)
- SeeTest 자동화 자습서 : 모바일 테스트 자동화 도구 가이드
- Rational Robot의 기초 학습-IBM 테스트 자동화 도구
- Geb 자습서-Geb 도구를 사용한 브라우저 자동화 테스트
- 테스터를위한 유용한 무료 화면 캡처 및 주석 도구-qSnap Review
- Katalon Studio 튜토리얼 : 기다려온 무료 테스트 자동화 도구
- Sikuli 도구를 사용하여 플래시 기반 애플리케이션 자동화