현재 Android로 구동하는 셋톱박스만 지원합니다.
장비 등록하기 #
iOS / Android 디바이스를 연결하는 방법과 다르게,
IPTV 셋톱박스는 USB로 직접 연결이 불가능하며 Stego에 IP를 입력하여 원격 접속을 해야합니다.
연결을 하기 위해 셋톱박스의 내부 IP주소(DHCP)가 필요합니다.
Step 1. Stego – Settings – License 에 IPTV 연결을 지원하는 라이센스 파일을 등록해주세요.
(라이센스 파일 발급은 contact@apptest.ai 에 문의 바랍니다. )
Step 2. 올바른 라이센스 파일을 등록했다면 IPTV 탭이 활성화 됩니다.
Step 3. IPTV 탭을 클릭하여 Name에 원하는 장비명을 입력하고, 연결할 셋톱박스의 IP주소와 포트번호(필요한 경우)를 Host에 입력합니다.
+ Add 버튼을 클릭하면 동시에 여러대의 셋톱박스를 저장할 수 있으며, – 버튼을 눌러 삭제가 가능합니다.
Step 4. 저장 버튼을 클릭하여 정상적으로 장비가 등록 되었는지 오른쪽 하단의 팝업 문구를 확인합니다.
(등록에 성공한 경우)
(등록에 실패한 경우)
Step 5. 메인 화면의 Device 창에서 등록한 셋톱박스를 연결하기 위해 오른쪽 상단의 + 버튼을 클릭합니다.
장비 연결과 관련된 자세한 사항은 “Stego 설치 및 디바이스 연결” 을 참조해주세요.
Step 6. 정상적으로 연결 되었다면 위와 같은 화면을 확인할 수 있습니다.
연결된 디바이스 화면 설명 #
① 연결된 셋톱박스의 이름입니다.
② 연결된 디바이스 중 선택한 디바이스의 화면을 보여줍니다.
③ 툴박스
- 시나리오 저작을 위해 현재 화면의 UIObject를 분석합니다.
- 현재 활성화된 화면을 캡처합니다.
- App ID를 클립보드에 복사합니다.
- 셋톱박스의 연결이 끊기거나 미러링 화면이 불안정한 경우, 새로고침으로 재연결을 시도할 수 있습니다.
참고) iOS/Android 디바이스 연결과는 다르게 셋톱박스에서는 Touch를 이용한 동작을 지원하지 않습니다.
리모컨 사용 #
화면 터치가 가능한 Android / iOS 디바이스의 시나리오 작성과는 다르게 리모컨으로만 동작하는 IPTV의 시나리오 작성은 Keycode 작동을 기반으로 이루어집니다.
시나리오 작성과 셋톱박스의 화면 조작을 위해 Stego는 리모컨 UI를 제공합니다.
2024.01.02 기준, 리모컨을 지원하는 기기 목록
- LGU+ IPTV – UHD2
- LGU+ IPTV – UHD3
- LGU+ IPTV – UHD4T
- LGU+ IPTV – UHD4K
- LGU+ IPTV – UHD_SoundBarBlack
리모컨 버튼 및 새로운 리모컨 추가는 contact@apptest.ai 로 문의해주세요.
리모컨 모드 변경 #
① Control Mode : 리모컨 UI로 셋톱박스를 조작합니다. Edit Mode가 활성화되면 자동으로 OFF가 됩니다.
② Record Mode : Control Mode일 때, 시나리오 스텝을 편리하게 저작할 수 있도록 돕는 기능입니다. 리모컨 동작과 함께 스텝이 생성됩니다.
③ Edit Mode : 현재 선택된 시나리오의 Keycode 스텝의 Attribute 값을 선택한 리모컨 버튼의 동작으로 수정합니다.
특수한 액션을 사용 #
Touch가 불가능함, 하드웨어 스펙이 높지 않음 등 IPTV가 가진 특수한 상황이 있습니다.
이런 문제들을 해결하기 위해 특수한 액션들을 지원합니다.
Input 액션 #
검색창에 입력을 하는 시나리오의 작성을 위해 지원하는 기능입니다.
리모컨으로 자음/모음을 하나씩 입력하는 것이 아닌 한/영/특수 및 숫자 문구를 한번에 입력할 수 있도록 Input 기능을 지원합니다.
IPTV 영상 이상 감지 액션 #
IPTV의 핵심 기능 중 하나인 영상 재생 모니터링 특화 액션으로, 영상 재생 중에 발생할 수 있는 비정상 현상(예: 영상 멈춤, 음성 묵음)을 감지하는 액션입니다.
주의) 해당 액션은 IPTV License 적용 시 활성화 됩니다.
If Abnormal Video 액션 #
영상 재생 중 발생하는 영상 및 오디오 이상 상태를 감지하며, 이상 감지 조건이 충족될 경우 추가 작업(자식 스텝)을 실행합니다.
주로 이상 상태를 탐지하고, 후속 작업을 처리하는 데 사용됩니다.
If Abnormal Video Attributes #
- monitoring duration : 영상 관측 시간을 설정할 수 있습니다.
- 기본값 : 10 (sec)
- 값 범위 : 5 ~ 3,600 (sec)
- indicators : 영상 품질 관측 지표 중 video freeze (영상 정지) 및 audio silence (음성 묵음) 구간을 설정할 수 있습니다.
- video freeze (영상 정지) : 지속 시간 (sec) 설정값 이상 동안 프레임 변화량(%)이 설정값 이하로 유지되면 영상 정지로 판단합니다.
– 기본값 : 2 (%) 5 (sec)
– 값 범위 : 0 ~100 (%) 1 ~ 3,600 (sec) - audio silence (음성 묵음) : 지속 시간 (sec) 설정값 이상 동안 음압 세기(dB)가 설정값 이하로 유지되면 음성 묵음으로 판단합니다.
– 기본값 : 2 (dB) 5 (sec)
– 값 범위 : 0 ~100 (dB) 1 ~ 3,600 (sec) - AND/OR 조건 : 영상 정지와 음성 묵음 감지에 대한 조건을 설정할 수 있습니다.
(AND 조건은 두 조건이 모두 충족될 때만 이상 감지로 판단하며, OR 조건은 둘 중 하나의 조건만 충족해도 이상 감지로 판단합니다.)
– 기본값 : AND
– 값 범위 : AND/OR
- video freeze (영상 정지) : 지속 시간 (sec) 설정값 이상 동안 프레임 변화량(%)이 설정값 이하로 유지되면 영상 정지로 판단합니다.
(If Abnormal Video 액션 Attributes 예제)
If Abnormal Video 액션 결과 화면 #
영상 재생 중 발생하는 영상 및 오디오 이상 현상을 감지하여 재생 이상 여부를 판단한 결과를 제공합니다.
재생 구간별 지표를 통해 화면 멈춤 및 음성 묵음 현상이 발생한 구간을 상세히 확인할 수 있습니다.
(영상 재생 중 이상이 감지되지 않은 경우, ‘If Abnormal Video’ 액션 결과 예제)
① 실행된 해당 스텝의 이름이 출력됩니다.
② 실행된 스텝의 결과 메시지가 출력됩니다.
③ 테스트된 구간의 동영상 플레이어가 제공됩니다.
④ 영상 멈춤 지표에 대한 결과가 출력됩니다.
⑤ 영상 묵음 지표에 대한 결과가 출력됩니다.
⑥ 사용자가 입력한 기준값을 노란색 선으로 출력됩니다.
(영상 재생 중 이상이 감지된 경우, ‘If Abnormal Video’ 액션 결과 예제)
① 실행된 해당 스텝의 이름이 출력됩니다.
② 해당 스텝의 결과 메시지가 출력됩니다.
③ 테스트된 구간의 동영상을 재생할 수 있는 플레이어가 제공됩니다.
④ 이상 감지 영역 활성화 여부를 설정할 수 있는 체크박스가 제공됩니다.
⑤ 영상 멈춤에 대한 이상 감지 구간이 붉은색으로 표시됩니다.
⑥ 영상 묵음에 대한 이상 감지 구간이 붉은색으로 표시됩니다.
⑦ 사용자가 입력한 기준값을 노란색 선으로 출력됩니다.
⑧ 이상 감지 구간에 마우스를 올리면, 감지된 시간에 대한 정보가 Tooltip 형태로 표시됩니다.
Assert Video 액션 #
영상 재생 중 발생하는 영상 및 오디오 이상 상태를 검사합니다. 이상 감지 조건이 충족되면 type 속성에서 정의한 오류 메시지가 출력되며, 테스트 시나리오가 중단됩니다.
Assert Video Attributes #
- monitoring duration : 영상 관측 시간을 설정할 수 있습니다.
- 기본값 : 10 (sec)
- 값 범위 : 5 ~ 3,600 (sec)
- indicators : 영상 품질 관측 지표 중 video freeze (영상 정지) 및 audio silence (음성 묵음) 구간을 설정할 수 있습니다.
- video freeze (영상 정지) : 지속 시간 (sec) 설정값 이상 동안 프레임 변화량(%)이 설정값 이하로 유지되면 영상 정지로 판단합니다.
– 기본값 : 2 (%) 5 (sec)
– 값 범위 : 0 ~100 (%) 1 ~ 3,600 (sec) - audio silence (음성 묵음) : 지속 시간 (sec) 설정값 이상 동안 음압 세기(dB)가 설정값 이하로 유지되면 음성 묵음으로 판단합니다.
– 기본값 : 2 (dB) 5 (sec)
– 값 범위 : 0 ~100 (dB) 1 ~ 3,600 (sec) - AND/OR 조건 : 영상 정지와 음성 묵음 감지에 대한 조건을 설정할 수 있습니다.
(AND 조건은 두 조건이 모두 충족될 때만 이상 감지로 판단하며, OR 조건은 둘 중 하나의 조건만 충족해도 이상 감지로 판단합니다.)
– 기본값 : AND
– 값 범위 : AND/OR
- video freeze (영상 정지) : 지속 시간 (sec) 설정값 이상 동안 프레임 변화량(%)이 설정값 이하로 유지되면 영상 정지로 판단합니다.
- custom message : indicators 조건을 충족할 경우에, Output으로 출력할 메시지를 입력할 수 있습니다.
- type : indicators 조건을 충족할 경우에, 검사 결과를 Error로 출력할지 Warning으로 출력할 지 선택할 수 있습니다.
- ERROR : 조건의 결과가 거짓이면, 빨간색으로 결과가 출력되며 시나리오가 중단됩니다.
- WARNING : 조건의 결과가 거짓이면, 노란색으로 결과가 출력되며 다음 스텝이 계속 진행됩니다.
- label : label 속성의 입력 필드 선택 시 label 값을 입력 할 수 있습니다.
– label 추가는 10개로 한정됩니다.(삭제 가능)
– 이전에 사용한 label이 존재한다면 Drop Down 형식으로 목록이 출력됩니다.
– Assertion 실패 시 Ptero의 Test Runs에 라벨로 추가됩니다.
(Assert Video 액션 Attributes 예제)
Assert Video 액션 결과 화면 #
영상 재생 중 발생하는 영상 및 오디오 이상 현상을 검증하여 그 결과를 확인할 수 있습니다.
재생 구간별 지표를 제공하며, 화면 멈춤 및 음성 묵음 현상이 발생한 구간을 상세히 검토할 수 있습니다.
이를 통해 실행된 스텝의 결과를 직관적으로 파악하고, 영상 모니터링의 신뢰성을 확보하는 데 활용됩니다.
(영상 재생 중 이상이 감지되지 않은 경우, ‘Assert Video’ 액션 결과 예제)
① 실행된 해당 스텝의 이름이 출력됩니다.
② 실행된 스텝의 결과 메시지가 출력됩니다.
③ 테스트된 구간의 동영상 플레이어가 제공됩니다.
④ 영상 멈춤 지표에 대한 결과가 출력됩니다.
⑤ 영상 묵음 지표에 대한 결과가 출력됩니다.
⑥ 사용자가 입력한 기준값을 노란색 선으로 출력됩니다.
(영상 재생 중 이상이 감지된 경우, ‘Assert Video’ 액션 결과 예제)
① 실행된 해당 스텝의 이름이 출력됩니다.
② 해당 스텝의 결과 메시지가 출력됩니다.
③ 테스트된 구간의 동영상을 재생할 수 있는 플레이어가 제공됩니다.
④ 이상 감지 영역 활성화 여부를 설정할 수 있는 체크박스가 제공됩니다.
⑤ 영상 멈춤에 대한 이상 감지 구간이 붉은색으로 표시됩니다.
⑥ 영상 묵음에 대한 이상 감지 구간이 붉은색으로 표시됩니다.
⑦ 사용자가 입력한 기준값을 노란색 선으로 출력됩니다.
⑧ 이상 감지 구간에 마우스를 올리면, 감지된 시간에 대한 정보가 Tooltip 형태로 표시됩니다.
Runtime 설정 및 Wait 액션 #
셋톱박스의 성능에 따라 키 입력이 누락되어 다음 단계로 제대로 넘어가지 않는 문제가 발생할 수 있습니다.
이를 방지하기 위해 시나리오 단계 간 대기시간을 설정하는 방법을 안내드립니다.
다음의 기능은 하나의 시나리오에 적용되며, 각 단계 사이에 충분한 대기 시간을 설정할 수 있도록 합니다.
① 시나리오에서 설정 아이콘을 선택합니다.
② ‘Runtime’ 메뉴를 클릭하여 진입합니다.
③ 다음 단계로 원활하게 진행되기 위한 적절한 ‘Runtime’ 값을 설정합니다.
④ ‘Save’ 버튼을 클릭하여 설정을 저장합니다.
또한, 특정 스텝에 대해 별도의 대기시간 설정이 필요한 경우, 다음과 같은 방법으로 개별 적용이 가능합니다.
① 새로운 스텝을 생성합니다.
② 각 단계 간 ‘Wait’ 액션을 추가합니다
③ 대기시간을 설정할 ‘value’ 값을 지정합니다.
이러한 방식으로 시나리오 혹은 스텝 마다 필요한 대기시간을 유연하게 설정할 수 있어, 보다 안정적인 키 입력 인식이 가능합니다.
주의) 해당 스텝이 수행된 이후로 적용됩니다.