기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
장기간 테스트
장기간 테스트는 디바이스가 장기간 작동할 때 디바이스의 동작을 모니터링하는 새로운 테스트 제품군입니다. 디바이스의 특정 동작에 초점을 맞춘 개별 테스트를 실행하는 것과 달리, 장기간 테스트는 디바이스 수명 동안 다양한 실제 시나리오에서 디바이스의 동작을 검사합니다. Device Advisor는 최대한 효율적인 순서로 테스트를 오케스트레이션합니다. 이 테스트에서는 테스트 중인 디바이스의 성능에 대한 유용한 지표가 포함된 요약 로그를 비롯한 결과 및 로그가 생성됩니다.
MQTT 장기 테스트 사례
MQTT 장기 테스트 사례에서는 처음에 MQTT 연결, 구독, 게시 및 재연결과 같은 만족 사례 시나리오에서 디바이스의 동작이 관찰됩니다. 그런 다음 MQTT 재연결 백오프, 긴 서버 연결 해제 및 간헐적 연결과 같은 여러 복잡한 장애 시나리오에서 디바이스가 관찰됩니다.
MQTT 장기 테스트 사례 실행 흐름
MQTT 장기 테스트 사례 실행에는 세 단계가 있습니다.
기본 테스트 실행
이 단계에서 테스트 케이스는 간단한 테스트를 병렬로 실행합니다. 테스트에서는 디바이스에 구성에서 선택된 작업이 있는지 확인합니다.
기본 테스트 세트에는 선택한 작업에 따라 다음이 포함될 수 있습니다.
CONNECT
이 시나리오는 디바이스가 브로커와 성공적으로 연결할 수 있는지 확인합니다.
PUBLISH
이 시나리오는 디바이스가 브로커에 대해 성공적으로 게시하는지 확인합니다.
QoS 0
이 테스트 케이스는 QoS 0으로 게시하는 동안 디바이스가 브로커에 PUBLISH
메시지를 성공적으로 전송하는지 확인합니다. 이 테스트는 디바이스에서 PUBACK
메시지를 수신할 때까지 기다리지 않습니다.
QoS 1
이 테스트 케이스에서는 디바이스가 QoS 1을 사용하여 브로커에 두 개의PUBLISH
메시지를 보낼 것으로 예상합니다. 첫 번째 PUBLISH
메시지 이후 브로커는 응답하기 전에 최대 15초 동안 기다립니다. 디바이스는 15초 이내에 동일한 패킷 식별자로 원본 PUBLISH
메시지를 재시도해야 합니다. 이렇게 하면 브로커가 PUBACK
메시지로 응답하고 테스트에서 검증합니다. 디바이스가 PUBLISH
를 재시도하지 않으면 원본 PUBACK
이 디바이스로 전송되고 테스트는 시스템 메시지와 더불어 경고와 함께 통과로 표시됩니다 테스트 실행 중에 디바이스의 연결이 끊겼다가 다시 연결되면 테스트 시나리오가 오류 없이 재설정되며 디바이스에서 테스트 시나리오 단계를 다시 수행해야 합니다.
SUBSCRIBE
이 시나리오는 디바이스가 브로커에 대해 성공적으로 구독하는지 확인합니다.
QoS 0
이 테스트 케이스는 QoS 0으로 구독하는 동안 디바이스가 브로커에 SUBSCRIBE
메시지를 성공적으로 전송하는지 확인합니다. 테스트는 디바이스가 SUBACK 메시지를 수신할 때까지 기다리지 않습니다.
QoS 1
이 테스트 케이스에서는 디바이스가 QoS 1을 사용하여 브로커에 두 개의SUBSCRIBE
메시지를 보낼 것으로 예상합니다. 첫 번째 SUBSCRIBE
메시지 이후 브로커는 응답하기 전에 최대 15초 동안 기다립니다. 디바이스는 15초 이내에 동일한 패킷 식별자로 원본 SUBSCRIBE
메시지를 재시도해야 합니다. 이렇게 하면 브로커가 SUBACK
메시지로 응답하고 테스트에서 검증합니다. 디바이스가 SUBSCRIBE
를 재시도하지 않으면 원본 SUBACK
이 디바이스로 전송되고 테스트는 시스템 메시지와 더불어 경고와 함께 통과로 표시됩니다 테스트 실행 중에 디바이스의 연결이 끊겼다가 다시 연결되면 테스트 시나리오가 오류 없이 재설정되며 디바이스에서 테스트 시나리오 단계를 다시 수행해야 합니다.
RECONNECT
이 시나리오는 성공적인 연결에서 디바이스의 연결이 끊어진 후 디바이스가 브로커와 성공적으로 다시 연결되는지 확인합니다. Device Advisor는 테스트 제품군을 실행하는 동안 이전에 디바이스를 두 번 이상 연결한 경우 디바이스의 연결을 끊지 않습니다. 대신 테스트가 통과로 표시됩니다.
고급 테스트 실행
이 단계에서 테스트 케이스는 디바이스가 모범 사례를 준수하는지 확인하기 위해 더 복잡한 테스트를 순차적으로 실행합니다. 이러한 고급 테스트는 선택할 수 있으며 필요하지 않은 경우 선택 취소할 수 있습니다. 각 고급 테스트에는 시나리오에서 요구하는 내용에 따라 고유한 제한 시간 값이 있습니다.
RETURN PUBACK ON QoS 1 SUBSCRIPTION
참고
디바이스가 QoS 1 구독을 수행할 수 있는 경우에만 이 시나리오를 선택합니다.
이 시나리오는 디바이스가 주제를 구독하고 브로커에서 PUBLISH
메시지를 수신한 후 PUBACK
메시지를 반환하는지 확인합니다.
RECEIVE LARGE PAYLOAD
참고
디바이스가 QoS 1 구독을 수행할 수 있는 경우에만 이 시나리오를 선택합니다.
이 시나리오는 페이로드가 큰 QoS 1 주제에 대해 브로커에서 PUBLISH
메시지를 수신한 후 디바이스가 PUBACK
메시지로 응답하는지 확인합니다. 예상 페이로드의 형식은 LONG_PAYLOAD_FORMAT
옵션을 사용하여 구성할 수 있습니다.
PERSISTENT SESSION
참고
디바이스가 QoS 1 구독을 수행할 수 있고 영구 세션을 유지할 수 있는 경우에만 이 시나리오를 선택합니다.
이 시나리오에서는 영구 세션을 유지하는 디바이스 동작을 확인합니다. 테스트는 다음 조건이 충족될 때 유효성을 검증합니다.
-
디바이스가 활성 QoS 1 구독 및 영구 세션이 활성화된 상태로 브로커에 연결됩니다.
-
세션 중에 디바이스에서 브로커의 연결이 성공적으로 해제됩니다.
-
디바이스가 브로커에 다시 연결되고 해당 주제를 명시적으로 다시 구독하지 않고도 트리거 주제에 대한 구독을 재개합니다.
-
디바이스가 구독한 주제에 대해 브로커가 저장한 메시지를 성공적으로 수신하고 예상대로 실행됩니다.
AWS IoT 영구 세션에 대한 자세한 내용은 MQTT 영구 세션 사용을 참조하세요.
KEEP ALIVE
이 시나리오는 디바이스가 브로커로부터 ping 응답을 받지 못한 후 연결이 성공적으로 해제되는지 확인합니다. 연결에는 유효한 연결 유지 타이머가 구성되어 있어야 합니다. 이 테스트의 일환으로 브로커는 PUBLISH
, SUBSCRIBE
및 PINGREQ
메시지에 대해 전송된 모든 응답을 차단합니다. 또한 테스트 중인 디바이스가 MQTT 연결을 끊는지 확인합니다.
INTERMITTENT CONNECTIVITY
이 시나리오는 브로커가 임의의 시간 동안 임의의 간격으로 디바이스 연결을 해제한 후 디바이스가 브로커에 다시 연결될 수 있는지 확인합니다.
RECONNECT BACKOFF
이 시나리오는 브로커가 여러 번 연결을 해제할 때 디바이스에 백오프 메커니즘이 구현되어 있는지 확인합니다. Device Advisor는 백오프 유형을 지수, 지터, 선형 또는 상수로 보고합니다. 백오프 시도 횟수는 BACKOFF_CONNECTION_ATTEMPTS
옵션을 사용하여 구성할 수 있습니다. 기본값은 5입니다. 값은 5~10으로 구성 가능합니다.
이 테스트를 통과하려면 테스트 중인 디바이스에서 지수 백오프 및 지터
LONG SERVER DISCONNECT
이 시나리오는 브로커가 오랜 시간(최대 120분) 동안 디바이스 연결을 해제한 후 디바이스가 성공적으로 다시 연결될 수 있는지 확인합니다. 서버 연결 해제 시간은 LONG_SERVER_DISCONNECT_TIME
옵션을 사용하여 구성할 수 있습니다. 기본값은 120분입니다. 이 값은 30분~120분으로 구성할 수 있습니다.
추가 실행 시간
추가 실행 시간은 위의 모든 테스트를 완료한 후 테스트 케이스를 종료하기 전에 테스트가 대기하는 시간입니다. 고객은 이 추가 기간을 사용하여 디바이스와 브로커 간의 모든 통신을 모니터링하고 기록합니다. ADDITIONAL_EXECUTION_TIME
옵션을 사용하여 추가 실행 시간을 구성할 수 있습니다. 기본적으로 이 옵션은 0분으로 설정되며 0분~120분이 될 수 있습니다.
MQTT 장기 테스트 구성 옵션
MQTT 장기 테스트에 제공된 모든 구성 옵션은 선택 사항입니다. 다음과 같은 옵션을 사용할 수 있습니다.
- OPERATIONS
디바이스에서 수행하는 작업 목록(예:
CONNECT
,PUBLISH
,SUBSCRIBE
)입니다. 테스트 케이스는 지정된 작업을 기반으로 시나리오를 실행합니다. 지정되지 않은 작업은 유효한 것으로 간주됩니다.{ "OPERATIONS": ["PUBLISH", "SUBSCRIBE"] //by default the test assumes device can CONNECT }
- SCENARIOS
선택한 작업에 따라 테스트 케이스는 시나리오를 실행하여 디바이스의 동작을 검증합니다. 다음 두 가지 유형의 시나리오가 있습니다.
기본 시나리오는 디바이스가 구성의 일부로 위에서 선택한 작업을 수행할 수 있는지 확인하는 간단한 테스트입니다. 이는 구성에 지정된 작업을 기반으로 미리 선택됩니다. 구성에 더 이상 입력할 필요가 없습니다.
고급 시나리오는 실제 조건이 충족되었을 때 디바이스가 모범 사례를 따르는지 확인하기 위해 디바이스에 대해 수행되는 보다 복잡한 시나리오입니다. 이는 선택 사항이며 테스트 제품군의 구성 입력에 시나리오 배열로 전달할 수 있습니다.
{ "SCENARIOS": [ // list of advanced scenarios "PUBACK_QOS_1", "RECEIVE_LARGE_PAYLOAD", "PERSISTENT_SESSION", "KEEP_ALIVE", "INTERMITTENT_CONNECTIVITY", "RECONNECT_BACK_OFF", "LONG_SERVER_DISCONNECT" ] }
- BASIC_TESTS_EXECUTION_TIME_OUT:
테스트 케이스에서 모든 기본 테스트가 완료될 때까지 기다리는 최대 시간입니다. 기본값은 60분입니다. 이 값은 30분~120분으로 구성할 수 있습니다.
- LONG_SERVER_DISCONNECT_TIME:
Long Server Disconnect 테스트 중에 테스트 케이스가 디바이스의 연결을 해제했다가 다시 연결하는 데 걸리는 시간입니다. 기본값은 60분입니다. 이 값은 30분~120분으로 구성할 수 있습니다.
- ADDITIONAL_EXECUTION_TIME:
이 옵션을 구성하면 모든 테스트가 완료된 후 디바이스와 브로커 간의 이벤트를 모니터링할 수 있는 시간이 제공됩니다. 기본값은 0분입니다. 이 값은 0분~120분으로 구성할 수 있습니다.
- BACKOFF_CONNECTION_ATTEMPTS:
이 옵션은 테스트 케이스에서 디바이스의 연결을 해제하는 횟수를 구성합니다. 이는 Reconnect Backoff 테스트에서 사용됩니다. 기본값은 5회입니다. 이 값은 5~10으로 구성할 수 있습니다.
- LONG_PAYLOAD_FORMAT:
테스트 케이스가 디바이스에서 구독하는 QoS 1 주제에 게시할 때 디바이스에서 예상하는 메시지 페이로드의 형식입니다.
API 테스트 사례 정의:
{ "tests":[ { "name":"my_mqtt_long_duration_test", "configuration": { // optional "OPERATIONS": ["PUBLISH", "SUBSCRIBE"], "SCENARIOS": [ "LONG_SERVER_DISCONNECT", "RECONNECT_BACK_OFF", "KEEP_ALIVE", "RECEIVE_LARGE_PAYLOAD", "INTERMITTENT_CONNECTIVITY", "PERSISTENT_SESSION", ], "BASIC_TESTS_EXECUTION_TIMEOUT": 60, // in minutes (60 minutes by default) "LONG_SERVER_DISCONNECT_TIME": 60, // in minutes (120 minutes by default) "ADDITIONAL_EXECUTION_TIME": 60, // in minutes (0 minutes by default) "BACKOFF_CONNECTION_ATTEMPTS": "5", "LONG_PAYLOAD_FORMAT":"{"message":"${payload}"}" }, "test":{ "id":"MQTT_Long_Duration", "version":"0.0.0" } } ] }
MQTT 장기 테스트 사례 요약 로그
MQTT 장기 테스트 사례는 일반 테스트 사례보다 더 긴 기간 동안 실행됩니다. 실행 중 디바이스 연결, 게시 및 구독과 같은 중요한 이벤트를 나열하는 별도의 요약 로그가 제공됩니다. 세부 정보에는 테스트된 항목, 테스트되지 않은 항목 및 실패한 항목이 포함됩니다. 로그 끝부분에는 테스트 케이스 실행 중에 발생한 모든 이벤트의 요약이 포함됩니다. 여기에는 다음이 포함됩니다.
-
디바이스에 구성된 연결 유지 타이머
-
디바이스에 구성된 영구 세션 플래그
-
테스트 실행 중 디바이스 연결 수
-
디바이스 재연결 백오프 유형(재연결 백오프 테스트에 대해 검증된 경우)
-
테스트 케이스 실행 중에 디바이스가 게시한 주제
-
테스트 케이스 실행 중에 디바이스가 구독한 주제