추출된 변수: 응답 본문에서 EXTRACTED_TOKEN이라는 변수 추출을 수행합니다. 이때 토큰 필드와 일치하는 jsonpath 식(예: $.access_token)을 사용합니다. 토큰이 테스트 결과에 표시되지 않도록 Hide and obfuscate variable value를 선택합니다.
토큰이 실행 사이에 만료되지 않도록 테스트 주기를 토큰의 만료 기간보다 짧게 설정합니다. 예를 들어, 1시간 후에 만료되는 토큰의 경우 30분마다 테스트를 실행하세요. 테스트에 실패 경보를 연결하여 토큰 새로 고침이 중단되었는지 확인할 수도 있습니다.
2단계: 테스트에서 전역 변수 생성
모바일 앱 테스트가 해당 값을 참조할 수 있도록 토큰 가져오기 테스트에서 전역 변수를 생성하세요.
Settings 페이지의 Global Variables 탭으로 이동합니다. + New Global Variable를 클릭합니다.
Create From Test 탭을 선택하고 토큰 가져오기 테스트를 선택합니다.
Variable Name을 입력합니다(예: MOBILE_AUTH_TOKEN).
토큰이 테스트 결과에 표시되지 않도록 Hide and obfuscate variable value를 선택합니다.
값을 가져올 위치를 선택합니다.
토큰 가져오기 테스트가 단일 HTTP 요청인 경우, Response Body를 선택하고 테스트 어설션의 jsonpath 식(예: $.access_token)을 재사용합니다.
토큰 가져오기 테스트에 여러 단계가 있는 경우, 1단계에서 추출한 EXTRACTED_TOKEN 로컬 변수를 선택합니다.
이 변수의 값은 토큰 가져오기 테스트가 실행될 때마다 자동으로 업데이트됩니다.
3단계: 모바일 앱 테스트에 토큰 전달
모바일 앱 테스트는 고급 옵션을 통해 앱 실행 시 key:value 쌍을 앱에 전달하는 기능을 지원합니다. 전역 변수를 참조하려면 필드에 {{를 입력합니다. 그러면 런타임에 현재 값으로 대체됩니다.
{"auth_token":"{{ MOBILE_AUTH_TOKEN }}"}
{"auth_token":"{{ MOBILE_AUTH_TOKEN }}"}
4단계: 앱에서 토큰 처리
앱은 시작 시 주입된 값을 읽어 안전하게 저장하고, 이를 사용하여 로그인 흐름을 건너뛰어야 합니다. 이 동작을 빌드 플래그 뒤에 두어 코드 경로가 테스트 또는 자동화 빌드에만 존재하도록 하세요.
react-native-launch-arguments는 하나의 API를 통해 iOS의 프로세스 인수와 Android의 인텐트 엑스트라를 읽습니다. react-native-keychain은 AsyncStorage 대신 플랫폼 키체인 또는 키스토어에 토큰을 저장합니다.
보안 고려 사항
주입된 인증 토큰은 테스트 또는 자동화 빌드에서만 허용하고, 프로덕션 빌드에서는 절대 허용하지 마세요. 인수를 읽기 전에 빌드 플래그를 확인하고, 앱 스토어에 배포하는 빌드에서는 해당 플래그가 설정되지 않았는지 확인하세요.
이는 Android에서 가장 중요합니다. 내보낸 런처 Activity로 전송된 인텐트 엑스트라는 Datadog의 테스트 러너뿐만 아니라 기기의 모든 앱에서 올 수 있습니다. 빌드 플래그 확인이 없으면, 시작 인텐트에서 auth_token을 읽고 신뢰하는 프로덕션 앱은 모든 로컬 앱이 테스트 계정으로 인증하도록 허용하게 됩니다.