튜토리얼: 샘플 IDT 테스트 도구 모음 구축 및 실행 - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

튜토리얼: 샘플 IDT 테스트 도구 모음 구축 및 실행

AWS IoT Device Tester 다운로드에는 샘플 테스트 제품군의 소스 코드가 포함되어 있습니다. 이 튜토리얼을 완료하여 샘플 테스트 스위트를 빌드하고 실행하여 IDT for 를 사용하여 사용자 지정 테스트 스위트를 실행하는 AWS IoT Greengrass 방법을 이해할 수 있습니다.

사전 조건

이 튜토리얼을 완료하려면 다음이 필요합니다.

  • 호스트 컴퓨터 요구 사항
    • AWS IoT Device Tester의 최신 버전

    • Python 3.7 이상

      컴퓨터에 설치된 Python 버전 번호를 확인하려면 인스턴스에서 다음 명령을 실행합니다.

      python3 --version

      Windows에서 이 명령을 사용하여 오류가 반환되면 python --version을 대신 사용하세요. 반환된 버전 번호가 3.7 이상인 경우 Powershell 터미널에서 다음 명령을 실행하여 python 명령의 별칭으로 python3을 설정합니다.

      Set-Alias -Name "python3" -Value "python"

      버전 정보가 반환되지 않았거나 버전 번호가 3.7 미만이면 Python 다운로드의 지침에 따라 Python 3.7 이상을 설치합니다. 자세한 내용은 Python 설명서를 참조하세요.

    • urllib3

      urllib3이 제대로 설치되었는지 확인하려면 다음 명령을 실행합니다.

      python3 -c 'import urllib3'

      urllib3가 설치되지 않은 경우에는 다음 명령을 실행하여 설치합니다.

      python3 -m pip install urllib3
  • 디바이스 요구 사항
    • Linux 운영 체제를 사용하고 호스트 컴퓨터와 동일한 네트워크에 네트워크로 연결된 디바이스.

      Raspberry Pi OS와 함께 Raspberry Pi를 사용하는 것이 좋습니다. Raspberry Pi에 원격으로 연결하려면 Pi에서 SSH를 설정해야 합니다.

IDT용 디바이스 정보 구성

IDT가 테스트를 실행할 수 있도록 디바이스 정보를 구성합니다. <device-tester-extract-location>/configs 폴더에 있는 device.json 템플릿을 다음 정보로 업데이트해야 합니다.

[ { "id": "pool", "sku": "N/A", "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh", "ip": "<ip-address>", "port": "<port>", "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", "privKeyPath": "/path/to/private/key", "password": "<password>" } } } } ] } ]

devices 객체에 다음 정보를 제공합니다.

id

테스트 대상 디바이스의 고유한 사용자 정의 식별자입니다.

connectivity.ip

디바이스의 IP 주소입니다.

connectivity.port

선택 사항으로, 디바이스에 대한 SSH 연결에 사용할 포트 번호입니다.

connectivity.auth

연결에 대한 인증 정보입니다.

이 속성은 connectivity.protocolssh로 설정된 경우에만 적용됩니다.

connectivity.auth.method

지정된 연결 프로토콜을 통해 디바이스에 액세스하는 데 사용되는 인증 방법입니다.

지원되는 값은 다음과 같습니다.

  • pki

  • password

connectivity.auth.credentials

인증에 사용되는 자격 증명입니다.

connectivity.auth.credentials.user

디바이스에 로그인하는 데 사용되는 사용자 이름입니다.

connectivity.auth.credentials.privKeyPath

디바이스에 로그인하는 데 사용되는 프라이빗 키의 전체 경로입니다.

이 값은 connectivity.auth.methodpki로 설정된 경우에만 적용됩니다.

devices.connectivity.auth.credentials.password

디바이스에 로그인하기 위해 사용되는 암호입니다.

이 값은 connectivity.auth.methodpassword로 설정된 경우에만 적용됩니다.

참고

methodpki로 설정된 경우에만 privKeyPath를 지정합니다.

methodpassword로 설정된 경우에만 password를 지정합니다.

샘플 테스트 제품군 빌드

<device-tester-extract-location>/samples/python 폴더에는 제공된 빌드 스크립트를 사용하여 테스트 제품군에 결합할 수 있는 샘플 구성 파일, 소스 코드 및 IDT 클라이언트 SDK가 포함되어 있습니다. 다음 디렉터리 트리는 이러한 샘플 파일의 위치를 보여줍니다.

<device-tester-extract-location> ├── ... ├── tests ├── samples │ ├── ... │ └── python │ ├── configuration │ ├── src │ └── build-scripts │ ├── build.sh │ └── build.ps1 └── sdks ├── ... └── python └── idt_client

테스트 제품군을 빌드하려면 호스트 컴퓨터에서 다음 명령을 실행합니다.

Windows
cd <device-tester-extract-location>/samples/python/build-scripts ./build.ps1
Linux, macOS, or UNIX
cd <device-tester-extract-location>/samples/python/build-scripts ./build.sh

그러면 <device-tester-extract-location>/tests 폴더 내 IDTSampleSuitePython_1.0.0 폴더에 샘플 테스트 제품군이 생성됩니다. IDTSampleSuitePython_1.0.0폴더의 파일을 검토하여 샘플 테스트 도구 모음의 구조를 이해하고 테스트 사례 실행 파일 및 테스트 구성 JSON 파일의 다양한 예를 확인하세요.

참고

샘플 테스트 제품군에는 python 소스 코드가 포함되어 있습니다. 테스트 제품군 코드에 민감한 정보를 포함하지 마십시오.

다음 단계: IDT를 사용하여 생성한 샘플 테스트 제품군을 실행합니다.

IDT를 사용하여 샘플 테스트 제품군을 실행합니다.

샘플 테스트 제품군을 실행하려면 호스트 컴퓨터에서 다음 명령을 실행합니다.

cd <device-tester-extract-location>/bin ./devicetester_[linux | mac | win_x86-64] run-suite --suite-id IDTSampleSuitePython

IDT는 샘플 테스트 제품군을 실행하고 결과를 콘솔로 스트리밍합니다. 테스트 실행이 완료되면 다음 정보가 표시됩니다.

========== Test Summary ========== Execution Time: 5s Tests Completed: 4 Tests Passed: 4 Tests Failed: 0 Tests Skipped: 0 ---------------------------------- Test Groups: sample_group: PASSED ---------------------------------- Path to IoT Device Tester Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/awsiotdevicetester_report.xml Path to Test Execution Logs: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/logs Path to Aggregated JUnit Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/IDTSampleSuitePython_Report.xml

문제 해결

다음 정보를 사용하면 자습서 완료와 관련된 문제를 해결하는 데 도움이 됩니다.

테스트 사례가 성공적으로 실행되지 않습니다.

테스트가 성공적으로 실행되지 않을 경우 IDT는 오류 로그를 콘솔로 스트리밍하여 테스트 실행 문제를 해결하는 데 도움을 줍니다. 이 자습서의 모든 사전 조건을 충족하는지 확인하세요.

테스트 대상 디바이스에 연결할 수 없습니다.

다음을 확인합니다.

  • device.json 파일에는 올바른 IP 주소, 포트 및 인증 정보가 들어 있습니다.

  • 호스트 컴퓨터에서 SSH를 통해 디바이스에 연결할 수 있습니다.