앱 실행하기 #
아래의 튜토리얼을 통해, 스마트폰에 설치되어있는 YouTube 앱을 실행하는 세 가지 방법을 실습해보겠습니다.
- 바탕화면의 아이콘을 클릭해서 실행하기
- 앱이름을 검색해서 실행하기
- 앱 고유 아이디값(Package Name 혹은 Bundle ID)을 이용해 바로 실행하기
1. 바탕화면의 아이콘 클릭해서 실행하기 #
스마트폰의 바탕 화면에 있는 아이콘을 클릭해서 앱을 실행해 보겠습니다.
Step1. 새 스텝을 만들고 “Touch”액션을 선택합니다. (새 스텝을 생성 하면 기본 액션이 “Touch”로 지정됩니다.)
Step2. 화면 분석 후 분석 도구로 “OD”를 선택합니다.
Step3. 화면에서 “Youtube”를 선택한 다음 드래그&드롭으로 선택해서 스텝의 UIObject로 추가합니다.
Step4. 작성한 스텝을 실행합니다.
2. 앱 이름을 검색하여 실행하기 #
앱 이름을 검색하기 위해서는 먼저 검색 창으로 이동해야 합니다.
Step1. 새 스텝을 만들고 ” Scroll ” 액션을 선택합니다.
Step2. 화면 분석 후 분석 도구로 ” Full Screen “을 선택합니다.
Step3. 선택된 “Full Screen”을 드래그&드롭 하여 스텝의 UIObject로 추가합니다.
Step4. 새로운 스텝을 만들고 액션은 “Touch”로 선택, 디바이스 화면 분석 도구로 OCR을 선택한 다음 화면에서 “Search”를 드래그&드롭하여 UIObject로 추가합니다.
Step5. 새로운 스텝을 만들고 액션은 “Input”을 선택, 디바이스 화면 분석 도구로 Full Screen을 선택한 다음 전체화면을 드래그&드롭 하여 UIObject로 설정합니다. 그 후 value 값에 “Youtube”를 입력합니다.
Step6. 새로운 스텝을 만들고 액션은 “Touch”를 선택, 디바이스 화면 분석에서 Crop image를 선택한 다음 앱의 아이콘 부분을 마우스로 드래그하여 선택한 후, 드래그&드롭 하여 UIObject로 추가합니다.
3. 앱 고유 아이디값을 이용해 바로 실행하기 #
Step1. 새 스텝을 만들고 “Launch”액션을 선택합니다.
Step2. 실행하고자 하는 앱(Youtube)의 App ID를 입력합니다. 테스트 할 기기가 Android일 경우 화면 하단 Attributes의 Package Name에 , iOS일 경우 Bundle ID에 입력합니다.
Step3. 작성한 스텝을 실행합니다.
스크롤해서 아이템 찾기 #
재생해야 할 동영상이 긴 목록의 중간 쯤에 위치해 있을 경우 원하는 동영상이 나올때까지 스크롤하는 시나리오를 작성해 보겠습니다.
💡 Youtube에서 "apptest ai"를 검색하여 "Introducing...Apptest AI" 영상을 재생하는 시나리오를 작성해보겠습니다.
Step1. Youtube를 실행하고 apptest ai를 검색한 후에 원하는 동영상을 찾습니다.
Step2. 새 스텝을 만들고 액션으로 “Loop UIObject”를 선택합니다.
Step3. 화면 분석 후 분석 도구로 “OCR”을 선택합니다.
Step4. 화면에서 “Fully Automated”를 선택한 다음 드래그&드롭하여 UIObject로 추가합니다.
Step5. 위 스텝을 마우스 오른쪽 버튼으로 클릭 후 “Insert Child” 버튼을 클릭하여 자식 스텝을 만듭니다.
액션으로 “Scroll”을 설정하고, 화면 분석 후 “Full Screen”을 선택한 뒤 전체화면을 드래그&드롭하여 자식 스텝의 UIObject로 추가합니다.
Step6. Loop UIObject 스텝을 클릭해서 Attributes 패널을 활성화합니다.
화면상에 찾는 영상이 없으면 화면을 스크롤해야 하므로 comparator를 NOT EXISTS 로 변경합니다.
Step7. Stego에 연결된 디바이스의 화면을 초기 화면으로 바꾸고 작성한 스텝을 실행합니다
특정 위치 단어 확인 #
💡 바탕화면에 있는 스마트폰 모델명을 읽어서 검색창에서 검색하기
Step1. 새 스텝을 만들고 “Store Content”액션을 선택합니다.
Step2. 화면 분석 후 분석 도구로 “OCR”을 선택합니다.
Step3. 화면에서 “Model”을 선택한 다음, 화면 분석 도구에서 “Relative”를 선택하고 Model 옆에 있는 모델명 부분을 드래그&드롭으로 선택 후 스텝의 UIObject로 추가합니다.
Step4. Stego에 연결된 디바이스 바탕화면의 검색창을 클릭하는 스텝을 만들고, input 스텝을 만든 다음 input 액션 attributes의 value에 ${device_model} 입력합니다.
최종 결과. 디바이스를 초기 화면으로 바꾸고 시나리오를 실행하여 검색어 입력란에 Store Content 스텝에서 설정한 값이 입력된 것을 확인합니다.
구글 맵 확대하기 #
💡 구글 맵에서 원하는 장소를 찾은 다음 지도를 확대하는 시나리오를 작성해 보겠습니다.
첫번째로 구글 맵에서 Los Angelus 를 검색합니다.
Step1. 구글 맵을 실행한 뒤 새 스텝을 만들고 “Touch”액션을 선택합니다.
Step2. 화면 분석 후 분석 도구로 “OCR”을 선택합니다.
Step3. 화면에서 “Search”를 선택한 다음 드래그&드롭하여 스텝의 UIObject로 추가합니다.
Step4. 새로운 스텝을 만들고 액션은 “Input”으로 선택 후, 디바이스 화면 분석 도구로 Full Screen을 선택한 다음 전체화면을 드래그&드롭하여 스텝에 UIObject로 추가합니다. 그 후 Attributes의 value 값에 Los Angelus를 입력합니다.
Step5. 새로운 스텝을 만들고 액션은 “Touch”로 선택 후, 디바이스 화면 분석에서 OCR을 선택한 다음 화면의 “Angelus”를 드래그&드롭하여 스텝에 UIObject로 추가합니다.
Step7. 새로운 스텝을 만들고 액션은 “Pinch Out”으로 선택 후, 디바이스 화면 분석 도구로 Custom Box를 선택하고 화면 중앙 부분을 드래그로 선택합니다. 선택된 중앙 부분을 드래그&드롭하여 스텝에 UIObject로 추가합니다.
Step8. 구글맵의 검색창에 글씨가 입력되지 않은 상태로 바꾸고 시나리오를 실행합니다.
조건문 액션 사용하기 #
💡 Store Content 액션과 If Value 액션을 이용해 play store의 현재 1위 게임의 카테고리가 Role Playing이 아닐 경우 Category를 Role Playing으로 변경하는 시나리오를 작성해 보겠습니다.
이 예제를 통해서 화면 분석 도구 중 Relative의 사용법과 화면 특정 지점의 문장을 저장해서 사용하는 방법, 그리고 조건에 따라 동작하는 시나리오를 작성하는 방법을 익힐 수 있습니다.
Step1. Play store를 켜고 하단의 메뉴 중 게임 메뉴로 이동합니다. 그 후 Top charts 화면에서 현재 1위인 App의 Category를 읽어서 저장합니다. 1위 앱의 Category는 화면 분석 도구 중 Relative를 사용해서 읽어 올 수 있습니다.
Step2. 새 스텝을 만들고 Store Content 액션을 선택한 다음 1위 앱의 카테고리 부분을 UIObject로 추가합니다.
Step3. 위에서 만든 스텝을 클릭하여 Attributes 패널을 활성화 한 다음, Attributes의 key 입력란에 first_category를 입력합니다.
(If Value 액션의 Attributes)
Step4. 새 스텝을 만들고 If Value액션을 선택한 뒤, 스텝을 클릭해서 Attributes 패널을 활성화 한 다음, Attributes의 key 입력란에 first_category를 입력합니다. comparator는 “!=”를 선택하고, value에는 Role Playing을 입력합니다.
위와 같이 입력할 경우 first_category 라는 key에 저장된 value가 Role Playing이라는 글자와 일치하지 않으면 (first_category != Role Playing) 자식스텝을 실행합니다.
Step5. If Value 스텝의 자식 스텝으로 Categories를 터치하는 스텝과 Categories 선택창에서 Role Playing을 터치하는 스텝을 만듭니다.
(시나리오 실행을 마친 화면)
Step6. Stego에 연결된 기기에서 play store 상단의 Categories를 클릭하여 All categories를 클릭한 뒤 작성한 스텝을 처음부터 실행합니다.
재생중인 동영상 정지하기 #
Youtube 플레이어에 동영상이 정지된 상태라면 재생 버튼을 눌러 재생시키는 시나리오를 작성해 보겠습니다.
이 예제를 통해서 화면 분석 도구 중 Custom Box 사용법과 If Changed 액션을 사용하는 방법에 대해서 학습할 수 있습니다.
Step 1.새 스텝을 만들고 If Changed 액션을 선택하고 화면 분석 후 화면 분석 도구에서 Custom Box를 선택합니다. 디바이스 화면 중 동영상 재생 영역을 드래그로 선택한 후 드래그&드롭하여 스텝의 UIObject로 추가합니다.
Step 2. If Changed 스텝을 마우스 오른쪽 버튼으로 클릭, insert child 버튼을 클릭하여 자식 스텝을 만들고 동영상 화면을 두번 터치하도록 Double Touch 액션을 지정합니다. 이 액션을 통해 재생중인 동영상을 중지 시키게 됩니다.
(드래그 & 드롭으로 UIObject를 재활용하는 방법)
Step 3. 동영상이 재생되는 영역을 화면 분석 도구 중 Custom Box로 선택해서 자식 스텝의 UIObject로 추가할 수도 있지만, 첫스텝에서 이미 동일한 과정을 거쳐서 UIObject를 만들었기 때문에 이번에는 첫번째 스텝에서 만들었던 UIObject를 재활용하도록 하겠습니다. UIObject를 재활용하는 방법은 간단합니다.
기존에 작성된 스텝에 등록된 UIObject 중 가져다 쓰고 싶은 UIObject를 사용하려는 스텝에 드래그&드롭하기만 하면 됩니다.
알람 시간 설정하기 #
안드로이드 시계 앱에서 오전 9시로 알람시간을 설정하는 예제 입니다.
이번 예제에서는 Loop Content와 If Content 액션에 대한 사용법을 익히실 수 있습니다.
Step 1.새로운 스텝을 만들고 “Touch”액션을 선택 후, 디바이스 화면 분석 도구에서 OD를 선택한 다음 화면의 “+”를 드래그&드롭 하여 스텝의 UIObject로 추가합니다.
Step 2. 새로운 스텝을 만들고 “Loop UIObject”액션을 선택, 디바이스 화면 분석에서 OCR을 선택한 다음 “9”를 드래그&드롭하여 스텝의 UIObject로 추가합니다. 그 후에 Attributes 탭에서 comparator를 NOT EXISTS로 변경합니다. 시간은 1 ~ 12까지 있기 때문에 자식 스텝을 12번 반복할 수 있도록 limit을 12로 설정합니다.
Step 3.자식 스텝을 만들고 “Scroll”액션을 선택, 디바이스 화면에 9보다 작은 숫자가 화면에 보이도록 조작한 상태로 화면 분석한 뒤 화면 분석 도구 중 “Custom Box”를 선택합니다. 시간 중 “시”에 해당하는 영역을 드래그로 지정하고 드래그&드롭 하여 자식 스텝의 UIObject로 추가합니다.
Step 4. 아래 사진처럼 8시와 10시일때도 9시가 화면에 표시됩니다. 사진과 같이 설정된 시간이 8시일 경우 9시가 되도록 조작 하려면 “시” 영역을 아래로 1칸 내려야 하고, 10시일 경우 위로 1칸 올려야 합니다. 8시일 경우부터 작성합니다. 우선 새로운 스텝을 만들고 “If UIObject”액션을 선택, 디바이스 화면 분석도구로 OCR을 선택한 다음 화면의 “7”을 드래그&드롭 하여 UIObject로 추가합니다.
Step 5. If UIObject 액션 스텝을 마우스 오른쪽 버튼으로 클릭, Insert child 버튼을 클릭하여 자식 스텝을 만들고 “Scroll”액션을 선택합니다. 화면 분석 후 화면 분석 도구 중 “Custom Box”를 선택한 뒤 드래그로 알람 시간 중 “시”에 해당하는 영역을 지정하고 드래그&드롭하여 자식 스텝의 UIObject로 추가합니다.
Step 6.아래로는 설정된 시간이 10시일 경우를 작성합니다. 새로운 스텝을 만들고 “If UIObject”액션을 선택, 디바이스 화면 분석 도구 중 OCR을 선택한 다음 화면의 “11”을 드래그&드롭하여 스텝의 UIObject로 추가합니다.
Step 7. 자식 스텝을 만들고 “Scroll”액션을 선택, 화면 분석도구로 “Custom Box”를 선택한 후 드래그로 알람 시간 중 “시”에 해당하는 영역을 지정하고 드래그&드롭하여 자식 스텝의 UIObject로 추가합니다. 알람 시간을 9시로 맞추려면 “시”가 위로 한 칸 올라가야하기 때문에 direction을 DOWN으로 설정합니다.
참고) Scroll액션의 Attributes중 direction은 손으로 디바이스를 조작할 때 손가락이 움직이는 방향을 의미합니다.
이 상황의 경우 숫자 10을 손가락으로 터치하여 손가락을 내려야 숫자 9가 시간 영역 중앙에 위치하기 때문에 direction을 DOWN으로 설정합니다.
Step 8.새로운 스텝을 만들고 “Touch”액션을 선택, 디바이스 화면 분석도구 중 OCR을 선택한 다음 화면의 “Save”를 드래그&드롭하여 스텝의 UIObject로 설정합니다.
Step 9. Stego에 연결된 디바이스를 첫 스텝을 작성할 때의 화면으로 바꾸고 시나리오를 실행합니다.
사라지는 UI 확인하기 #
짧은 시간 출력 되었다가 자동으로 사라지는 UI(ex. 토스트 팝업)를 테스트하는 예제 입니다.
Youtube 앱의 동영상 옵션에서 “Save to Watch later”을 클릭 했을 때 옵션 메뉴가 제대로 사라졌는지 확인하는 테스트를 진행합니다.
이 예제를 통해서 Assert Message액션의 사용법을 익힐 수 있습니다.
Step 0. 시나리오 사전준비
– Stego에 디바이스를 연결하고, 디바이스에서 Youtube를 실행합니다.
Step 1. “+” 버튼을 클릭해서 새 스텝을 만듭니다.
Step 2.디바이스 패널의 툴바에서 화면 분석 버튼을 클릭합니다.
Step 3.화면 분석 결과에서 동영상 옵션 버튼을 드래그&드롭으로 새로 만든 스텝에 옮겨 줍니다.
Step 4. 아이콘이 한 화면에 여러개 있기 때문에 UIObject 속성값 중 Selector값을 수정해야 합니다. 이번 예제는 동영상의 옵션을 활성화 해야 하기 때문에 세번째 아이콘이 터치 되도록 Selector 값을 3으로 수정해야 합니다. UIObject 속성패널을 띄우기 위해서는 스텝의 UIObject Field를 클릭하면 됩니다.
Step 5. 작성한 스텝을 실행합니다.
Step 6. 새로운 스텝을 만들고 “Touch”액션 선택, 디바이스 화면 분석 도구 중 OCR을 선택한 다음 화면의 “Save to Watch later”를 드래그&드롭하여 스텝의 UIObject로 추가합니다.
참고) OCR로 분석할 경우 단어별로 잘려서 인식이 될 수 있는데, 한 문장을 선택하고 싶을 때는 OCR 결과에서 한 문장을 드래그&드롭으로 선택하면 한 문장으로 인식합니다.
Step 7. 새 스텝을 만들고 Assert Changed 액션 선택 후 화면 분석 도구에서 Custom Box를 선택, 옵션 메뉴 위치를 드래그로 지정합니다. 조금 더 정확한 변화 감지를 위해 Attributes 중 threshold 값을 50%로 수정합니다. Custom Box로 지정한 범위 면적의 50% 이상이 다를 경우 화면이 변한 것으로 감지합니다.
Step 8. 테스트 실행 후 Output 패널의 결과를 클릭 합니다.
Step 9. 스텝 결과창에서 테스트 결과를 확인 합니다. 아래 결과창은 설정 했던 영역에서 69%의 변화를 감지 했다는 내용입니다.
바탕화면 아이콘 검사하기 #
💡 바탕화면에 Play Store 앱아이콘이 있는지 검사하는 예제입니다.
만약 바탕화면에 Play Store 앱 아이콘이 없다면 테스트 결과로 “Play Store 앱 아이콘이 바탕화면에 없습니다.”라는 에러 문구를 출력하게 됩니다.
Step1. 새 스텝을 만들고, 액션으로 “Assert UIObject”를 선택합니다.
Step2. 디바이스 패널에서 “화면 분석” 버튼을 클릭 합니다.
Step3. 화면 분석 도구 중 “OD”를 선택(기본값)하고 Play Store 앱 아이콘 화면 요소를 스텝의 UIObject Field 영역으로 드래그&드롭 합니다.
Step4. Assert UIObject의 Attributes 에서 comparator는 “EXISTS”로, custom message는 “Play Store 앱아이콘이 바탕화면에 없습니다.”로 입력합니다.
주의) comparator 조건이 거짓인 경우 custom message가 출력됩니다.
Step5. 디바이스에서 Play Store 앱 아이콘을 삭제한 상태에서 작성한 시나리오를 실행하면 다음과 같은 결과값이 출력됩니다.
공유 시나리오 사용하기 #
공유 시나리오란?
반복되는 부분을 하나의 시나리오 작성한 다음 다른 시나리오에서 불러와 사용할 수 있습니다. 이렇게 다른 시나리오에서 불러와 사용할 수 있는 시나리오를 “공유 시나리오”라고 부릅니다.
예로, 로그인이 필요한 앱인 경우 로그인 부분을 시나리오로 작성하여 공유 시나리오로 두면 다른 시나리오를 작성할 때 로그인 부분을 다시 작성할 필요 없이 미리 작성한 공유 시나리오를 재활용할 수 있습니다.주의) 공유 시나리오는 같은 워크스페이스 내에서만 사용할 수 있습니다. 그리고 공유 시나리오를 포함하고 있는 일반 시나리오를 공유 시나리오로 변경하는 것은 불가능합니다.
💡 Youtube를 실행하는 시나리오를 작성한 다음 공유 시나리오로 만들고 Youtube 기능을 테스트하는 시나리오에서 불러와 사용해 보겠습니다.
이 예제를 통해서 공유 시나리오를 만들고 사용하는 방법에 대해서 익힐 수 있습니다.
공유 시나리오 만들기 #
앱을 실행하는 방법 중 Package Name(Bundle ID)를 이용해 실행하는 방식으로 시나리오를 작성할 예정입니다. 그리고 앱을 실행하기 전에 백그라운드에서 실행중일 수 있는 youtube 앱을 먼저 종료 시킨 다음 초기 화면 상태로 앱이 실행되도록 작성하겠습니다.
Step1. 새 스텝을 만들고 Youtube앱을 종료시키기 위해 액션을 “Terminate”로 설정하고 Attributes의 Package Name을 “com.google.android.youtube”로 설정합니다.
Step2. 다시 새 스텝을 만들어 액션은 “Launch”로 설정하고 Package Name을 “com.google.android.youtube”로 설정합니다.
(시나리오 목록 패널에서 마우스 오른쪽 버튼을 클릭해 Context 메뉴를 띄운 상태)
Step3. 시나리오 목록 패널에서 방금 작성한 시나리오를 마우스 오른쪽 버튼으로 클릭하여 context 메뉴를 띄운 다음 “Share” 버튼을 클릭해 해당 시나리오를 공유 시나리오로 만듭니다.
(시나리오 공유가 완료된 상태 – Shared Scenario 패널에 새로 추가된 공유 시나리오의 모습)
Step4. 시나리오 목록에서 공유 상태로 만든 시나리오가 사라지고, 아래에 있는 공유 시나리오 목록 패널에 시나리오가 추가된 것을 확인할 수 있습니다.
공유 시나리오 사용하기 #
Step1. 새로운 시나리오를 만들고 그 안에 새 스텝을 생성합니다.
Step2. 액션을 “Shared Scenario”로 설정하고, Attributes 패널에서 “Select a Shared Scenario”를 클릭합니다.
Step3. Shared Scenario List 창에서 사용할 공유 시나리오를 선택하고 “Select” 버튼을 클릭 합니다.
Step4. 추가된 공유 시나리오를 확인합니다. 공유 시나리오를 불러온 시나리오에서는 공유 시나리오 수정을 할 수 없기 때문에 공유 시나리오의 스텝들이 흐릿하게 출력됩니다.