Motion
스마트폰을 조작할 때 사용하는 동작들을 모아둔 곳입니다.
Variable
테스트 도중 특정 값을 저장해 두거나, 랜덤하게 값을 생성하는 기능이 있습니다. 여기서 저장해 둔 값들은 다른 스텝에서 사용됩니다.
Control
시나리오에 분기점이 필요하거나 동일 스텝들을 반복해야 할 때 사용할 수 있는 기능들이 있습니다.
Assertion
화면상 특정 위치에 요소나 문자열이 있는지 검사할 때 사용하는 기능들입니다. 실제 테스트를 위해 사용되는 스텝 액션으로 여기 있는 액션을 통과하지 못하면 빨간색으로 에러 메시지가 출력되면서 시나리오가 중지 됩니다.
주로 특정 스텝 수행 후 해당 스텝이 잘 진행되었는지 확인 하는 과정에서 사용됩니다. (예: 로그인 후 환영 메시지가 출력되는지 확인)
Event
Motion 이외에 디바이스에서 할 수 있는 다양한 컨트롤 동작들이 모여 있습니다.
예를 들어 세로 화면을 가로 화면으로 바꾸거나 앱 실행 혹은 종료 시키는 등의 이벤트를 발생시킬 수 있습니다.
Advanced
시나리오를 보다 풍성하게 작성하기 위한 고급 기능이 포함되어 있습니다.
Motion #
스마트폰을 조작할 때 사용하는 동작들을 모아둔 곳입니다.
Touch #
화면 요소를 터치하는 동작입니다. 스텝을 만들 때 가장 많이 사용되는 액션이며, 스텝을 새로 만들때도 액션의 기본값으로 설정되어 있습니다.
Touch Attributes
- UIObject: 터치 액션을 수행할 화면 요소가 출력됩니다.
(터치 액션 Attributes 예제) - type : 터치 액션의 타입을 결정할 수 있습니다.
– Single : 화면 요소를 한번 터치합니다.
– Double : 화면 요소를 두번 터치합니다.
– Long : duration 값을 설정하여 화면 요소를 duration 값 만큼 길게 터치합니다.
– duration: 얼마의 시간 동안 클릭을 유지할지 설정할 수 있습니다.
– 기본값: 3000 (ms)
– 값 범위: 1000 ~ 5000 (ms)
– N Times : 화면 요소를 설정한 count 값만큼 반복하여 클릭합니다.
– count: 액션을 수행할 횟수를 설정할 수 있습니다.
– 기본값: 2
– 값 범위: 1 ~ 100
– interval: 액션과 액션 사이에 얼마의 시간 동안 쉴지를 설정할 수 있습니다.
– 기본값: 1000 (ms)
– 값 범위: 500 ~ 5000 (ms)
Swipe #
UIObject를 대상으로 좌우로 스와이프하는 액션입니다.
Swipe Attributes
- UIObject: 스와이프를 수행하는 화면 요소가 출력됩니다.
- area: 스와이프가 수행될 영역의 비율입니다. 수치가 작을 수록 적은 면적을 스와이프합니다.
– 기본값: 60 (%)
– 최소값: 1 ~ 100 (%) - direction: 스와이프를 왼쪽으로 할지, 오른쪽으로 할지 설정할 수 있습니다.
– 기본값: LEFT
– 값 범위: LEFT/RIGHT - duration: 스와이프가 수행되는 시간을 나타냅니다.
– 기본값: 2500 (ms)
– 값 범위: 100 ~ 5000 (ms)
Scroll #
상하로 스크롤할 수 있는 화면 요소을 대상으로 스크롤하는 액션입니다.
전체 화면을 스크롤 할 때는 UIObject Selector 패널에서 Full Screen Strategy를 사용해 화면 요소를 생성한 스텝에 등록하면 됩니다.
주의) 다음과 같은 특정 조건에서 스크롤 수행이 되었지만, 실제 화면 변화가 없을 수 있습니다.
– 스크롤 시작점에 터치요소가 있는 경우
– Navigation bar가 Swipe gesture로 설정되어 있는 경우
Scroll Attributes
- UIObject: 스크롤을 수행하는 화면 요소가 출력됩니다.
- area: 스크롤 액션을 수행할 영역의 비율을 설정할 수 있습니다.
– 기본값: 60 (%)
– 값 범위: 1 ~ 100 (%) - direction: 스크롤을 위로 할지, 아래로 할지 설정할 수 있습니다.
– 기본값: DOWN
– 값 범위: DOWN/UP/BOTTOM/TOP (Bottom, Top은 화면이 각 방향으로 더이상 이동할 수 없을 때까지 스크롤하는 기능입니다.) - duration: 스크롤 액션을 수행하는 시간을 설정할 수 있습니다.
– 기본값: 2500 (ms)
– 값 범위: 100 ~ 5000 (ms) - Limit : direction을 BOTTOM/TOP으로 설정했을 때, 화면 이동에 제한시간을 설정합니다.
– 기본값: 10000 (ms)
– 값 범위: 5000 ~ 600000 (ms)
Drag #
드래그 할 수 있는 두 개의 화면 요소를 필요로 합니다. 첫번째 화면 요소에서 두번째 화면 요소로 드래그 합니다. 주로 날짜나 시간을 설정하는 화면에서 주로 사용되는 액션입니다.
Drag Attributes
- start UIObject: 드래그 액션을 시작하는 기준이 되는 화면 요소입니다.
- end UIObject: 드래그 액션을 끝내는 기준이 되는 화면 요소입니다.
- press duration: 드래그 액션을 시작하기 전에 오래 누르기를 먼저해야할 경우 설정할 수 있습니다. 바탕화면의 아이콘을 오래 눌어서 옮길 수 있게 한다음 다른 위치로 옮기는 동작을 구현할 수 있습니다.
– 기본값: 0 (ms)
– 값 범위: 0 ~ 5000 (ms) - drag duration: 드래그 액션이 수행되는데 걸리는 시간을 설정할 수 있습니다.
– 기본값: 2500 (ms)
– 값 범위: 500 ~ 5000 (ms)
Pinch In / Pinch Out #
Zoom in, Zoom out 액션을 수행합니다.
Pinch In / Pinch Out Attributes
- UIObject: Pinch In/Out을 수행하는 화면 요소가 출력됩니다.
- action area: Pinch In/Out이 수행될 영역의 비율입니다.
– 기본값: 60 (%)
– 값 범위: 50 ~ 100 (%) - direction : Pinch를 수행할때 방향을 설정할 수 있습니다. (IN 방향은 Zoom out, OUT 방향은 Zoom In 동작을 합니다.)
- duration: 액션을 수행하는데 걸리는 시간을 설정할 수 있습니다.
– 기본값: 2500 (ms)
– 값 범위: 1000 ~ 5000 (ms)
Input #
키보드로 특정 값을 입력하고자 할 때 사용합니다.
앱화면에 키보드가 활성화 된 상태에서 전체 화면을 UIObject로 설정하고 입력할 값을 Attributes 패널의 value 필드에 입력하세요.
Input Attributes
- UIObject: 문자열이 입력될 화면 요소를 나타냅니다. 만약 화면에 키보드가 활성화 되어 있을 경우에는 화면 전체를 UIObject로 설정하면 현재 활성화 되어 있는 입력 필드에 값이 입력됩니다.
- value: 입력 필드에 입력될 문자열을 설정합니다. Variable 액션 혹은 User variable로 저장한 값을 ${key name}으로 불러올 수도 있습니다.
Secure Keyboard #
화면에 띄워진 보안키보드에 Attributes에서 설정한 입력값을 입력합니다.
주의) 보안키보드가 켜진 상태의 Full Screen Strategy를 사용해야합니다.
Secure Keyboard Attributes
- UIObject: Secure Keyboard를 수행하는 UIObject 입니다.
- value: 보안키보드에 입력할 값입니다.
- typename: Secure Keyboard의 종류입니다. (AI가 인식한 종류로 자동 입력됩니다.)
- interval: 키 입력 사이에 유휴시간을 설정할 수 있습니다.
– 기본값: 1000 (ms)
– 값 범위: 500 ~ 5000 (ms)
Variable #
테스트 도중 특정 값을 저장해 두거나, 랜덤하게 값을 생성하는 기능이 있습니다. 여기서 저장해 둔 값들은 다른 스텝에서 사용됩니다.
주의) key 값은 대소문자를 구분하지 않습니다.
Store Value #
Store Value Attributes
- key: 값을 저장해 두고 다른 곳에서 사용할때 사용될 키값입니다.
- value: key 값으로 저장되어 있는 실제 데이터 입니다.
Store Content #
Store Content Attributes
- UIObject: 데이터를 읽어들일 화면 요소를 출력합니다.
- key: 다른 스텝에서 저장한 값을 사용할 때 쓰기 위한 식별자 입니다.
- type: 문자열을 어떻게 저장할 건지 선택할 수 있습니다.
– String: 문자열 그대로 저장합니다.
– Number: 문자열 중 숫자만 저장합니다. - pattern: 정규표현식을 사용할 수 있습니다. 만약 특정 위치에 대소문자 구분없이 “welcome”이라는 문구가 있을때만 값을 저장하고 싶으면 /welcome/i 정규표현식을 입력하면 됩니다.
Store Random Number #
랜덤으로 0~100 사이의 숫자를 생성해서 사용하고 싶을때 사용할 수 있는 기능입니다.
Store Random Number Atatributes
- key: 저장한 값을 사용할 때 쓰기 위한 식별자 입니다.
Store Random Text #
Store Random Text Attributes
- key: 저장한 값을 사용할 때 쓰기 위한 식별자 입니다.
- prefix (optional): 텍스트 앞부분에 고정된 값을 사용하고 싶을 때 설정할 수 있습니다.
- number of characters: 랜덤으로 생성할 문자 수를 지정할 수 있습니다.
– 기본값: 3
– 값 범위: 1 ~ 10
Control #
시나리오에 분기점이 필요하거나 동일 스텝들을 반복해야 할 때 사용할 수 있는 기능들이 있습니다.
If UIObject #
설정한 UIObject가 화면 상에 존재하는지를 판단해서 자식 스텝을 실행합니다.
If UIObject Attributes
- UIObject: 화면에 존재하는지 확인하는데 사용될 화면 요소가 출력됩니다.
- comparator: 비교 조건을 선택할 수 있습니다.
– EXISTS: 화면에 화면 요소가 존재한다면 자식 스텝을 실행합니다.
– NOT EXISTS: 화면에 화면 요소가 존재하지 않는다면 자식 스텝을 실행합니다.
If Content #
인식한 UIObject의 영역 안에 있는 실제 내용을 비교 대상으로 사용할 경우 쓰입니다. UIObject 영역 안의 Text 정보를 OCR로 읽어 들여 Value와 비교를 합니다.
If UIObject는 화면 요소 자체를 비교 대상으로 사용하는 반면, If Content는 화면 요소 자체 보다는 그 안에 포함되어 있는 Text 정보를 비교 대상으로 사용한다는 차이점이 있습니다.
If Content Attributes
- UIObject: 비교할 Text를 포함하고 있는 화면 요소가 출력됩니다.
- comparator: 비교 조건을 선택할 수 있습니다.
= : 화면 요소의 Text와 value가 똑같다면 자식 스텝을 실행합니다.
!= : 화면 요소의 Text와 value가 다르면 자식 스텝을 실행합니다.
> : 화면 요소의 Text가 숫자이고 value 보다 크면 자식 스텝을 실행합니다.
>= : 화면 요소의 Text가 숫자이고 value 보다 크거나 같으면 자식 스텝을 실행합니다.
< : 화면 요소의 Text가 숫자이고 value 보다 작으면 자식 스텝을 실행합니다.
<= : 화면 요소의 Text가 숫자이고 value 보다 작거나 같으면 자식 스텝을 실행합니다.
match : 정규 표현식을 사용합니다. 화면 요소의 Text 시작 부분부터 1개 이상의 문자가 정규 표현식과 일치하면 자식 스텝을 실행합니다.
만약, 화면 요소의 Text 전체와 일치여부를 조건으로 하려면 `/pattern$/`와 같이 `$`를 사용합니다.
search : 정규 표현식을 사용합니다. 화면 요소의 Text 일부 또는 전체가 정규 표현식과 일치하면 자식 스텝을 실행합니다.
color : 화면 요소의 정중앙에 있는 색 정보와 일치하는지 확인합니다. (RGB값 유사도를 비교하며 90% 이상 유사하면 PASS입니다.)
If Value #
Store Value/Content 또는 Random Number/Text 액션을 통해 저장된 값을 비교 대상으로 사용할 때 사용하는 액션입니다.
그래서 별도의 UIObject를 설정할 필요가 없습니다.
자세한 사용법은 다음 예제를 참고하세요.
예제5. 조건문 액션 사용하기
If Value Attributes
- key: 이전에 Store Value/Content등으로 저장해 두었던 값의 key값을 입력합니다.
- comparator: 비교 조건을 선택할 수 있습니다. 자세한 사항은 ‘If Content’ 의 comparator 부분을 참조하세요.
- value: 비교할 문자열 또는 숫자를 입력합니다.
If Changed #
If Changed 액션은 이전 스텝의 액션이 수행되기 직전 화면과 현재 디바이스 화면의 변화 여부를 비교해 조건을 충족할 경우 자식 스텝을 실행합니다.
화면의 특정 위치에 있는 컨텐츠의 내용 변화를 감지 할 수 있기 때문에 토스트 팝업이나 동영상 재생 여부 등을 판단해서 자식 스텝을 선택적으로 실행할 수 있습니다.
예를 들어 동영상이 재생중일 경우 동영상 재생을 중지하는 시나리오를 작성할 수 있습니다.
자세한 사용법은 아래 예제를 참고하세요.
예제6. 재생중인 동영상 정지하기
If Changed Attributes
- UIObject: 화면 변화를 감지할 공간 요소가 출력됩니다.
- threshold: 화면 요소가 얼만큼 변해야 변한 것으로 판정할지 수치를 지정할 수 있습니다. 수치가 작을수록 조금만 변해도 화면 요소가 변한것으로 간주합니다.
– 기본값: 10 (%)
– 값 범위: 1 ~ 100 (%) - limit: 화면 변화를 언제까지 감지할지 한계를 설정할 수 있습니다. 설정시간 동안 화면 변화가 없다면 자식 스텝들은 실행되지 않고 다음 스텝으로 넘어갑니다.
– 기본값: 5000 (ms)
– 값 범위: 3000 ~ 10000 (ms)
(If Changed Attributes 예제 )
Loop UIObject #
화면에 특정 화면 요소가 존재하는지 여부에 따라 자식 스텝을 반복하는 액션입니다.
가장 흔한 사용 예로, 리스트형 UI에서 원하는 컨텐츠가 나올때까지 스크롤을 반복해야 하는 경우를 시나리오로 작성할 때 주로 사용됩니다.
자세한 사용법은 아래 예제를 참고하세요.
예제2. 스크롤해서 아이템 찾기
Loop UIObject Attributes
- UIObject: 존재 여부 판단에 사용될 화면 요소가 출력됩니다.
- comparator: 비교 조건을 선택할 수 있습니다.
– EXISTS: 화면에 화면 요소가 존재한다면 자식 스텝을 실행합니다.
– NOT EXISTS: 화면에 화면 요소가 존재하지 않는다면 자식 스텝을 실행합니다. - limit: 자식 스텝의 최대 반복 횟수를 설정할 수 있습니다.
– 기본값: 5 (times)
– 값 범위: 1 ~ 1000 (times)
Loop Ntimes #
동일한 스텝을 여러번 반복해야 할 때 사용하면 좋은 액션입니다.
이 액션은 자식 스텝을 정해진 횟수만큼 반복 실행합니다.
Loop Ntimes Attributes
- limit: 반복 횟수를 지정할 수 있습니다.
– 기본값: 5 (times)
– 값 범위: 1 ~ 1000 (times)
Loop Content #
반복을 위한 조건이 횟수 이외에 한 가지가 더 추가된 액션입니다.
화면상의 특정 위치에 있는 문자를 읽어 작성자가 지정한 값과 비교해서 반복 여부를 판단합니다.
자세한 사용법은 아래 예제를 확인하세요.
예제7. 알람 시간 설정하기
Loop Content Attributes
- UIObject: 문자열을 읽어올 화면 요소가 출력됩니다.
- comparator: 비교 조건을 선택할 수 있습니다. 자세한 사항은 ‘If Content’ 의 comparator 부분을 참조하세요.
- value: 비교할 문자열 또는 숫자를 입력합니다.
- limit: 반복 횟수를 지정합니다.
– 기본값: 5 (times)
– 값 범위: 1 ~ 1000 (times)
Loop Value #
Store Value/Content 또는 Store Random Number/Text 로 미리 저장한 값과 사용자가 설정한 값을 비교해서 자식 스텝을 실행합니다.
미리 설정한 값을 사용하기 때문에 별도의 화면 요소를 지정할 필요가 없습니다.
이 액션을 이용하면 이전 화면에서 잔여포인트를 읽어서 저장해 두고,
잔여포인트가 특정 수치에 도달할때까지 포인트를 추가하는 스텝을 반복하는 시나리오를 작성 할 수 있습니다.
Loop Value Attributes
- key: 사전에 설정해 둔 값의 key값을 입력합니다.
- comparator: 비교 조건을 선택할 수 있습니다. 자세한 사항은 ‘If Content’ 의 comparator 부분을 참조하세요.
- value: 비교할 문자열 또는 숫자를 입력합니다.
- limit: 반복 횟수를 지정합니다.
– 기본값: 5 (times)
– 값 범위: 1 ~ 1000 (times)
Wait For #
설정한 화면 요소가 출력될때까지 기다리는 액션입니다. 화면 전환이 이뤄지는 곳에서 많이 사용됩니다.
로딩 시간이 불규칙적인 경우에 사용하면 테스트 수행 시간을 많이 단축할 수 있습니다.
(네트워크 속도가 느리거나 저사양 디바이스가 playstore에서 facebook 검색결과 문자열이 출현할 때까지 대기하는 예제)
Wait For Attributes
- UIObject: 화면에 출현되는 것을 기다리는 화면 요소가 출력됩니다.
- until : 화면 요소가 보일 때까지 기다릴건지, 사라질 때까지 기다릴건지 설정합니다. (EXISTS, NOT EXISTS)
- limit: 설정한 시간을 초과할때까지 화면 요소가 출력되지 않으면 대기를 중단하고 다음 스텝을 실행합니다.
– 기본값: 5000 (ms)
– 값 범위: 1000 ~ 600000 (ms)
(Wait For Attributes 예제)
Assertion #
화면상 특정 위치에 요소나 문자열이 있는지 검사할 때 사용하는 기능들입니다.
실제 테스트를 위해 사용되는 스텝 액션으로 여기 있는 액션을 통과하지 못하면 빨간색으로 에러 메시지가 출력되면서 시나리오가 중지 됩니다.
주로 특정 스텝 수행 후 그 스텝이 잘 진행되었는지 확인하는 과정에서 사용됩니다.
(예: 로그인 후 환영 메시지의 출현여부 확인)
Assert UIObject #
지정한 화면 요소가 화면상에 존재하는지 검사하는 액션입니다.
이전 스텝 실행 후 현재 화면이 제대로 출력 되었는지 판단하고 싶을 때 사용할 수 있습니다.
자세한 사용법은 아래 예제를 참고하세요.
예제 9. 바탕화면 아이콘 검사하기
Assert UIObject Attributes
- UIObject: 검사 대상이 될 화면 요소가 출력됩니다.
- comparator: 비교 조건을 선택할 수 있습니다.
– EXISTS: 화면에 화면 요소가 존재한다면 검사가 성공합니다.
– NOT EXISTS: 화면에 화면 요소가 존재하지 않는다면 검사가 성공합니다.
주의) Comparator 에서 설정한 조건의 결과가 참이어야 검사가 통과해서 다음 스텝으로 넘어갑니다.
만약 comparator 에서 설정한 조건의 결과가 거짓인 경우에는 custom message가 출력되고, type이 Error인 경우에는 여기서 시나리오가 멈추게 됩니다. - custom message: comparator 조건의 결과가 거짓일 경우, Output으로 출력할 메시지를 입력할 수 있습니다. 입력하지 않으면 거짓인 이유가 출력됩니다.
- type: comparator 조건의 결과가 거짓인 경우, 검사 결과를 Error로 출력할지 Warning으로 출력할지 선택할 수 있습니다.
– ERROR: 조건의 결과가 거짓이면, 빨간색으로 결과가 출력되며 시나리오가 중단됩니다.
– WARNING: 조건의 결과가 거짓이면, 노란색으로 결과가 출력되며 다음 스텝이 계속 진행됩니다.
(Assert UIObject Attributes 예시)
Assert Content #
지정한 화면 요소의 문자열 내용과 작성자가 입력한 값을 비교하는 검사 액션입니다. 화면 요소 자체의 존재 여부가 비교 대상인 Assert UIObject와는 다르게 화면 요소 안에 있는 문자 정보가 비교 대상이 됩니다.
Assert Content Attributes
- UIObject: 검사 대상이 될 화면 요소가 출력됩니다.
- comparator: 비교 조건을 선택할 수 있습니다. 자세한 사항은 ‘If Content’ 의 comparator 부분을 참조하세요.
- value: 화면 요소의 문장과 비교할 값을 입력합니다. 만약 이전에 설정해둔 값을 사용할 경우에는 ${key}를 입력합니다.
- limit: 화면 요소를 얼마나 기다릴 지 설정합니다.
– 기본값: 0 (ms)
– 값 범위: 0 ~ 600000 (ms) - custom message: comparator 조건의 결과가 거짓일 경우, Output으로 출력할 메시지를 입력할 수 있습니다. 입력하지 않으면 거짓인 이유가 출력됩니다.
- type: comparator 조건의 결과가 거짓인 경우, 검사 결과를 Error로 출력할지 Warning으로 출력할지 선택할 수 있습니다.
– ERROR: 조건의 결과가 거짓이면, 빨간색으로 결과가 출력되며 시나리오가 중단됩니다.
– WARNING: 조건의 결과가 거짓이면, 노란색으로 결과가 출력되며 다음 스텝이 계속 진행됩니다.
Assert Value #
이전 스텝에서 Store Value/Content 또는 Store Random Number/Text 등으로 저장된 값과 사용자가 지정한 값을 비교 검사하는 액션입니다.
사용자가 미리 저장한 값을 검사하는 액션이므로 Assert UIObject, Assert Content와 달리 별도의 UIObject를 필요로 하지 않습니다.
Assert Value Attributes
- key: 이전에 설정해둔 값의 key를 입력합니다.
주의) attributes의 value에 key를 입력할 때 ${key}와 같은 형태로 입력하는 것과 달리 key값 만을 입력해야 합니다. - comparator: 비교 조건을 선택할 수 있습니다. 자세한 사항은 ‘If Content’ 의 comparator 부분을 참조하세요.
- value: 화면 요소의 문장과 비교할 값을 입력합니다. 만약 이전에 설정해둔 값을 사용할 경우에는 ${key}를 입력합니다.
- custom message: comparator 조건의 결과가 거짓일 경우, Output으로 출력할 메시지를 입력할 수 있습니다. 입력하지 않으면 거짓인 이유가 출력됩니다.
- type: comparator 조건의 결과가 거짓인 경우, 검사 결과를 Error로 출력할지 Warning으로 출력할지 선택할 수 있습니다.
– ERROR: 조건의 결과가 거짓이면, 빨간색으로 결과가 출력되며 시나리오가 중단됩니다.
– WARNING: 조건의 결과가 거짓이면, 노란색으로 결과가 출력되며 다음 스텝이 계속 진행됩니다.
Assert Changed #
Assert Changed Attributes
- UIObject: 화면 변화를 감지할 공간 요소가 출력됩니다.
- threshold: 화면 요소가 얼만큰 변해야 변한것으로 판정할지 수치를 지정할 수 있습니다. 수치가 작을수록 조금만 변해도 화면 요소가 변한것으로 간주합니다.
– 기본값: 10 (%)
– 값 범위: 1 ~ 100 (%) - limit: 화면 변화를 언제까지 감지할지 한계를 설정할 수 있습니다. 설정시간 동안 화면 변화가 없다면 검사를 실패한 것으로 간주합니다.
– 기본값: 5000 (ms)
– 값 범위: 3000 ~ 10000 (ms) - custom message: comparator 조건의 결과가 거짓일 경우, Output으로 출력할 메시지를 입력할 수 있습니다. 입력하지 않으면 거짓인 이유가 출력됩니다.
- type: comparator 조건의 결과가 거짓인 경우, 검사 결과를 Error로 출력할지 Warning으로 출력할지 선택할 수 있습니다.
– ERROR: 조건의 결과가 거짓이면, 빨간색으로 결과가 출력되며 시나리오가 중단됩니다.
– WARNING: 조건의 결과가 거짓이면, 노란색으로 결과가 출력되며 다음 스텝이 계속 진행됩니다.
(Assert Changed Attributes 예시)
Assert Wait For #
Assert UIObject와 유사하게 지정한 화면 요소가 화면상에 존재하는지를 검사합니다. 다만 화면 요소가 나타날때까지 얼마나 기다릴지 작업자가 선택할 수 있는 옵션이 추가된 점이 다른 점입니다. 주로 화면 로딩 시간이 불규칙적인 경우에 유용하게 사용할 수 있습니다.
Assert Wait For Attributes
- UIObject: 검사 대상이 될 화면 요소가 출력됩니다.
- until: 화면 요소가 보일 때까지 기다릴건지, 사라질 때까지 기다릴건지 설정합니다. (EXISTS, NOT EXISTS)
- limit: 화면 요소가 나타날때까지 얼마나 기다릴지 설정할 수 있습니다.
– 기본값: 5000 (ms)
– 값 범위: 1000 ~ 60000(ms) - custom message: comparator 조건의 결과가 거짓일 경우, Output으로 출력할 메시지를 입력할 수 있습니다. 입력하지 않으면 거짓인 이유가 출력됩니다.
- type: comparator 조건의 결과가 거짓인 경우, 검사 결과를 Error로 출력할지 Warning으로 출력할지 선택할 수 있습니다.
– ERROR: 조건의 결과가 거짓이면, 빨간색으로 결과가 출력되며 시나리오가 중단됩니다.
– WARNING: 조건의 결과가 거짓이면, 노란색으로 결과가 출력되며 다음 스텝이 계속 진행됩니다.
Assert Message #
특정 액션 이후 토스트 팝업이 잘 뜨는지 검사하는 액션입니다.
Assert Message는 limit으로 정해진 시간 동안 화면에 변화가 감지되면 변한 부분에 있는 문자를 읽어서 작성자가 입력한 value값과 비교하게 됩니다.
Assert Message Attributes
- comparator: 비교 조건을 선택할 수 있습니다. 자세한 사항은 ‘If Content’ 의 comparator 부분을 참조하세요.
- value: 토스트 팝업의 메세지를 입력합니다. 모든 메세지 내용을 입력할 수도 있고, 일부 값 만을 입력할 수도 있습니다. 만약 이전에 설정한 값을 사용할 경우에는 ${key}를 입력합니다.
- limit: 화면 요소가 나타날때까지 얼마나 기다릴지 설정할 수 있습니다.
– 기본값: 5000 (ms)
– 값 범위: 3000 ~ 10000 (ms) - use previous screen: 이전 스텝의 액션이 수행되기 전의 화면 정보부터 화면 변화를 감지하거나, 액션 이후 화면부터 변화를 감지할지 선택할 수 있습니다. true로 설정하면 이전 스텝의 액션 수행 전 화면부터 화면 감지를 시작합니다.
- custom message: comparator 조건의 결과가 거짓일 경우, Output으로 출력할 메시지를 입력할 수 있습니다. 입력하지 않으면 거짓인 이유가 출력됩니다.
- type: comparator 조건의 결과가 거짓인 경우, 검사 결과를 Error로 출력할지 Warning으로 출력할지 선택할 수 있습니다.
– ERROR: 조건의 결과가 거짓이면, 빨간색으로 결과가 출력되며 시나리오가 중단됩니다.
– WARNING: 조건의 결과가 거짓이면, 노란색으로 결과가 출력되며 다음 스텝이 계속 진행됩니다.
Event #
Motion 이외에 디바이스에 줄 수 있는 다양한 이벤트들이 모여 있습니다.
예를 들어 세로 화면을 가로 화면으로 바꾸거나 앱 실행 혹은 종료 시키는 등의 이벤트를 발생 시킬 수 있습니다.
Rotate #
디바이스의 스크린 방향을 변경할 수 있습니다.(시계방향 270도로 회전)
Rotate Attributes
- orientation: 회전 방향을 지정합니다.
– PORTRAIT: 디바이스의 화면을 세로 방향으로 회전합니다.
– LANDSCAPE: 디바이스의 화면을 가로 방향으로 회전합니다.
Wait #
다음 스텝을 실행할 때까지 설정한 시간만큼 대기합니다.
Wait Attributes
- value: 대기 시간을 설정할 수 있습니다.
– 기본값: 2000 (ms)
– 값 범위: 500 ~ 600000 (ms)
Launch #
Launch 액션은 선택한 모드로 앱을 실행하거나, 브라우저 앱을 통해 URL 이동을 합니다.
Launch Attributes (APP Mode)
- Package Name: 실행할 앱이 안드로이드 앱일 경우, 앱의 Package Name을 입력합니다.
- Bundle ID: 실행할 앱이 아이폰 앱일 경우, 앱의 Bundle ID를 입력합니다.
Launch Attributes (BROWSER Mode)
- URL: 이동할 URL 주소를 입력합니다.
- Android: 테스트를 진행하는 OS가 안드로이드인 경우, 실행할 브라우저 앱을 지정합니다.
- iOS: 테스트를 진행하는 OS가 iOS인 경우, 실행할 브라우저 앱을 지정합니다.
APP Mode를 사용하여 앱을 실행하려면 앱 ID가 필요합니다.
Stego상에서 간단하게 앱 ID를 알아낼 수 있습니다.
“App ID를 알아내는 방법”을 참고해주세요.
Terminate #
실행중인 앱을 종료합니다.
Terminate Attributes
- Package Name: 실행할 앱이 안드로이드 앱일 경우 앱의 Package Name을 입력합니다.
- Bundle ID: 실행할 앱이 아이폰 앱일 경우 앱의 Bundle ID를 입력합니다.
두 값 모두 입력했을 경우 테스트가 실행되는 디바이스의 종류에 따라 사용될 값이 정해집니다.
Activate #
백그라운드에서 실행 중인 앱을 디바이스 화면에 띄웁니다.
Activate Attributes
- Package Name: 실행할 앱이 안드로이드 앱일 경우 앱의 Package Name을 입력합니다.
- Bundle ID: 실행할 앱이 아이폰 앱일 경우 앱의 Bundle ID를 입력합니다.
두 값 모두 입력했을 경우 테스트가 실행되는 디바이스의 종류에 따라 사용될 값이 정해집니다.
Home #
디바이스의 홈 화면으로 이동합니다. (홈 버튼 누르는 것과 동일 동작)
Lock #
디바이스를 잠금 상태로 변경합니다.
Unlock #
디바이스를 잠금 해제 합니다.
Wake Up #
장치가 슬립 상태일 때 슬립 모드를 해제합니다.
Keycode #
다양한 Keycode값을 통해, 안드로이드 기기에 명령을 내릴 수 있습니다.
주의) Keycode 액션은 안드로이드 전용 액션입니다. 아이폰에서는 동작하지 않고 바로 다음 스텝으로 넘어갑니다.
Keycode Attributes
– value: 입력할 Keycode값을 설정합니다. 직접 입력할 수도 있고, 클릭하면 나오는 기본 값을 선택할 수 도 있습니다. 아래는 자주 쓰이는 예시입니다.
– Back(4): 안드로이드 Back 버튼 동작을 수행합니다.
– Enter(66): 키보드 UI의 Go 버튼 동작을 수행합니다.
– Del(67): 키보드 UI의 백스페이스 동작을 수행합니다.
– AppSwitch(187): 안드로이드 앱전환 버튼 동작을 수행합니다.
– count: 액션을 수행할 횟수를 설정할 수 있습니다.
– 기본값: 1
– 값 범위: 1 ~ 100
– interval: 액션과 액션 사이에 얼마의 시간 동안 쉴지를 설정할 수 있습니다.
– 기본값: 1000 (ms)
– 값 범위: 500 ~ 5000 (ms)
Advanced #
시나리오를 보다 풍성하게 작성하기 위한 고급 기능이 포함되어 있습니다. 현재는 Shared Scenario 기능만 있지만, 지속적으로 기능들이 업데이트 될 예정입니다.
Shared Scenario #
공유 상태로 설정된 시나리오를 불러와서 사용하는 액션입니다.
공유 시나리오를 만들고 사용하는 방법은 예제를 통해서 익히세요.
자세한 사용법은 아래 예제를 참고하세요.
예제10. 공유시나리오 사용하기
Shared Scenario Attributes
- Shared Scenario: 사용할 공유 시나리오를 선택합니다.
Script #
숫자연산, 외부 API 호출 등 코드상의 도움이 필요할 경우에 사용하는 기능입니다.
Variable 로 저장된 값을 Script에 가져와 연산을 하거나, Script 안에서 코드로 처리된 값을 Variable로 저장할 수 있습니다.
- Value : Stego Tool 안에 내장된 Bash Script를 사용합니다.
(Script Attributes 예제)
Block #
시나리오의 유지보수성을 높이기 위해 제공되는 기능입니다.
여러 스텝을 하나의 Block 스텝으로 묶어서 어떤 단계가 진행되는지 표시할 수 있습니다.
- description : Block 내용에 대한 설명을 적을 수 있는 공간입니다.
(Block 예제)
Finish #
임의로 테스트를 종료시키는 스텝입니다.
테스트 수행 도중 Finish 스텝을 실행하면 즉시 시나리오 실행이 중지됩니다.
Finish 스텝으로 중지된 시나리오는 설정한 type 값에 따라
결과 상태를 PASS/ERROR/WARNING 으로 표기합니다.
또한, 설정한 메시지 값으로 Output Log에 기록을 남길 수 있습니다.
- type : PASS / WARNING / ERROR 중에 선택한 값으로 테스트 결과를 지정하고, 시나리오 수행을 종료합니다.
- message : 테스트를 종료시키는 이유에 대해 메시지를 남깁니다.
(Finish 예제)