Google Play 결제 라이브러리 통합 테스트

개발 과정 전체에서 통합을 테스트해야 합니다. 개발 단계 중에 테스트하려면 라이선스 테스터를 활용하여 이 주제에 설명된 시나리오를 살펴보는 것이 좋습니다. 라이선스 테스터를 구성하려면 애플리케이션 라이선스로 인앱 결제 테스트를 참조하세요.

라이선스 테스터를 사용하면 다음과 같은 이점이 있습니다.

  • 서명되지 않아 Google Play에 업로드되지 않은 앱의 경우 Google Play 결제 라이브러리가 일반적으로 차단됩니다. 라이선스 테스터는 이 검사를 건너뛸 수 있습니다. 즉, 앱의 새 버전에 업로드할 필요 없이 디버그 서명이 있는 디버그 빌드를 사용하는 앱의 경우에도 테스트용으로 앱을 사이드로드할 수 있습니다. 패키지 이름은 Google Play용으로 구성된 앱 이름과 일치해야 하며 Google 계정은 Google Play Console 계정의 라이선스 테스터여야 합니다.
  • 라이선스 테스터는 테스터에 실제 구매 비용을 청구하지 않는 테스트 결제 수단에 액세스할 수 있습니다. 또한 테스트 결제 수단을 사용하여 결제가 거부된 경우와 같은 특정 상황을 시뮬레이션할 수도 있습니다. 그림 1에서는 구매 흐름 내에서 나타나는 이러한 테스트 결제 방법을 보여줍니다.
  • 라이선스 테스터는 정기 결제 기능을 신속하게 테스트할 수 있습니다.
라이선스 테스터는 테스트 결제 수단에 액세스할 수 있습니다.
그림 1. 라이선스 테스터는 테스트 결제 수단에 액세스할 수 있습니다.

다음은 테스트 구매 프로세스에 관한 몇 가지 추가 세부정보입니다.

  • 테스트 구매에서는 실제 구매에 사용된 것과 동일한 앱 구매 흐름을 사용합니다.
  • 테스트 구매에는 세금이 계산되지 않습니다.
  • Google Play에서는 구매 대화상자 가운데에 알림을 표시하여 테스트 구매를 나타냅니다.

구매 대화상자를 펼쳐서 구매하는 계정을 확인할 수 있습니다. 다음 내용을 참고하세요.

  • 테스트 계정은 테스터의 Android 기기에 있어야 합니다.
  • 기기에 계정이 두 개 이상 있다면 앱을 다운로드한 계정으로 구매가 이루어집니다.
  • 어떤 계정으로도 앱을 다운로드하지 않았다면 첫 번째 계정으로 구매가 이루어집니다.

앱을 배포하기 전에 Google Play 테스트 트랙을 활용하여 추가 유효성 검사를 실행할 수 있습니다. 예를 들어 테스트 트랙을 활용하여 QA팀이 새 출시 버전을 받을 수 있도록 합니다.

테스트 트랙을 통해 사용자는 Google Play에서 앱을 설치하고 아직 공개되지 않은 앱 버전을 테스트할 수 있습니다. 사용자는 Google Play에서 결제 수단 중 하나를 사용하여 실제 구매를 진행할 수 있습니다.

테스트 트랙을 사용하여 Google Play 결제 라이브러리 통합을 테스트하려면 다음 단계를 따르세요.

  1. 테스트 트랙에 앱을 게시합니다. 테스트 트랙에 앱을 게시한 후 테스터가 앱을 사용할 수 있기까지 몇 시간이 걸릴 수 있습니다.
  2. 각 테스터가 앱의 테스트를 선택했는지 확인합니다. 테스트 참여 URL에서 테스터는 테스터의 역할에 관한 설명과 함께 참여 링크를 확인할 수 있습니다.

Android 1.6 이상을 실행하는 모든 Android 기반 하드웨어 기기에서 통합을 테스트할 수 있습니다. Google Play 애플리케이션의 최신 버전이 기기에 설치되어 있어야 합니다. Android 애플리케이션 개발에 사용할 기기를 설정하는 방법은 하드웨어 기기 사용을 참조하세요.

일회성 제품 테스트

소비성 제품 테스트

소비성 제품을 테스트할 때는 다음을 비롯하여 다양한 상황을 테스트하는 것이 좋습니다.

  • 사용자가 항목을 받는 성공적인 구매 상황. 라이선스 테스터를 통해 테스트 도구, 항상 승인 결제 수단을 사용할 수 있습니다.
  • 결제 수단으로 비용이 청구되지 않으며 사용자가 항목을 받지 못하게 되는 구매 상황. 라이선스 테스터를 통해 테스트 도구, 항상 거부 결제 수단을 사용할 수 있습니다.
  • 항목을 여러 번 구매할 수 있는 상황.

또한 구매 처리에 설명된 대로 구매가 제대로 확인되었는지 인증해야 합니다. 라이선스 테스터로부터 구매하는 경우 앱에서 구매를 확인하지 않으면 3분 후에 구매가 환불되며, 취소에 관한 이메일을 받게 됩니다. Google Play Console의 주문 탭을 확인하여 3분 후에 주문이 환불되었는지 확인할 수도 있습니다.

비소비성 제품 테스트

비소비성 구매는 소비성 구매와 동일하게 테스트해야 하지만 앱 내에서 항목을 다시 구매할 수 없는지 확인해야 합니다. 두 가지 구매 유형을 처리하는 논리가 각각 다르므로 비소비성 제품과 소비성 제품 둘 다의 구매 확인을 인증해야 합니다(해당되는 경우).

구매 대기 중 테스트

구매 상태가 PURCHASED가 되면 항목이 승인되어야 하는 구매 대기 중을 테스트해야 합니다. 라이선스 테스터는 몇 분 후에 결제가 자동으로 완료되거나 취소되는 지연된 결제 수단을 위한 두 가지 테스트 도구에 액세스할 수 있습니다.

  1. 그림 2와 같이 지연된 결제 수단 '느린 테스트 카드, 몇 분 후 거부됨'을 사용해 구매합니다. 앱을 다시 시작하고 구매가 승인되지 않았는지 확인합니다.

    거부된 느린 테스트 카드로 구매 테스트
    그림 2. 거부된 느린 테스트 카드로 구매 테스트

  2. 그림 3과 같이 지연된 결제 수단 '느린 테스트 카드, 몇 분 후 승인됨'을 사용하여 구매합니다. 몇 분 정도 기다린 후 구매가 승인되었는지 확인합니다.

    승인된 느린 테스트 카드로 구매 테스트
    그림 3. 승인된 느린 테스트 카드로 구매 테스트

자세한 내용은 대기 중인 거래 처리를 참고하세요.

정기 결제 관련 기능 테스트

일회성 제품 및 정기 결제의 구매 흐름은 비슷하지만, 정기 결제에는 정기 결제 갱신의 성공 또는 거부와 같은 추가 시나리오가 있습니다. 갱신을 테스트하기 위해 그림 1과 같이 라이선스 테스터가 이용할 수 있는 테스트 도구, 항상 승인테스트 도구, 항상 거부 결제 수단을 사용할 수 있습니다. 성공적인 정기 결제 시나리오 이상의 시나리오를 테스트하려면 이러한 결제 수단을 사용하세요.

일회성 제품과 유사하게, 구매 처리에 설명된 대로 구매가 제대로 확인되었는지 인증해야 합니다. 라이선스 테스터로부터 구매한 경우 앱에서 구매를 확인하지 않으면 3분 후에 구매가 환불되며 취소에 관한 이메일을 받게 됩니다. Google Play Console의 주문 탭을 확인하여 3분 후에 주문이 환불되었는지 확인할 수도 있습니다.

갱신 기간

테스트 정기 결제는 실제 정기 결제보다 더 빨리 갱신되며 테스트 정기 결제는 최대 6회까지 갱신할 수 있습니다.

다음 표에는 기간이 다양한 정기 결제의 테스트 갱신 시간이 나와 있습니다. 이 시간은 대략적인 시간입니다. 이벤트의 정확한 시간에는 약간의 변동이 있을 수 있습니다. 이러한 변동을 보완하려면 각 정기 결제 만료일 이후 API를 호출하여 현재 상태를 확인하세요.

프로덕션 정기 결제 기간 테스트 정기 결제 갱신
1주 5분
1개월 5분
3개월 10분
6개월 15분
1년 30분

무료 체험판과 같은 시간 기반 정기 결제 기능도 테스트를 위해 단축되었습니다. 다음 표에는 시간 기반 정기 결제 기능과 관련된 테스트 기간이 나와 있습니다.

기능 테스트 기간
구매 확인 5분
무료 체험판 3분
신규 할인 가격 기간 정기 결제 테스트 기간과 동일
유예 기간(3일 및 7일 모두) 5분
계정 보류 10분
일시중지(1개월) 5분
일시중지(2개월) 10분
일시중지(3개월) 15분

가격 변경사항

라이선스 테스터를 사용하여 가격 변경사항을 테스트할 수도 있습니다. 테스트 기간을 계획할 때는 다음 사항을 고려하세요.

  • 라이선스 테스터의 갱신 기간이 짧기 때문에 콘솔에서의 가격 이전이 라이선스 테스터에게 등록되지 않을 수 있습니다. 가격 변경 알림과 이메일이 테스트될 수 있도록 개발자는 가격 변경을 트리거한 후 1시간까지 결제를 연기해야 합니다.
  • 가격 인하에는 알림 기간이 없습니다. 사용자 집단 이전 직후 사용자에게 인하에 관한 알림이 전송됩니다. 테스트 중에는 변경되지 않습니다.
  • 가격 인상의 경우 테스트 알림 시간은 실제 인상과 동일하게 계산됩니다.
    • 필수 알림 기간 후 첫 번째 결제일이 되면 사용자에게 첫 번째 요금이 청구됩니다.
    • 알림 시간은 첫 청구 날짜부터 역방향으로 계산됩니다.
    • 최종 알림은 결제 기간과 관계없이 항상 청구 1분 전입니다.

다음 표에서는 여러 실제 결제 기간의 테스트 결제 및 알림 기간을 보여줍니다.

실제 기본 요금제 결제 기간 테스트 결제 기간 테스트 알림 기간(30일 고지가 제공되는 수신 동의 및 거부 지역) 테스트 알림 기간(60일 고지가 제공되는 거부 지역)
1주 5분 5분 10분
1개월 5분 5분 10분
3개월 10분 3분 6분
6개월 15분 2분 4분
1년 30분 3분 6분

테스트 사례

정기 결제 통합을 확인하는 데 사용할 테스트 시나리오를 표시하려면 표시/숨기기를 클릭하여 다음 섹션을 확장합니다.

프로모션 코드 테스트

Google Play Console을 사용하여 자체 테스트를 위한 코드를 생성할 수 있습니다. 앱에서 모든 관리 제품에 대해 분기당 500개의 프로모션 코드만 만들 수 있습니다.

다음과 같은 프로모션 코드 사용 시나리오를 테스트해야 합니다.

  • 앱 내에서 실행된 구매 대화상자에 프로모션 코드 입력 시
  • Google Play 스토어 앱에서 프로모션 코드 사용 시
  • 왼쪽 탐색의 사용 버튼을 사용하여 https://play.google.com/store에서 프로모션 코드 사용 시

이러한 시나리오 내에서 가능한 다양한 방식으로 코드 사용을 테스트해야 합니다. 최소한 다음 테스트를 실행하는 것이 좋습니다.

  • 앱을 설치하기 전에 코드를 사용합니다.
  • 앱이 포그라운드에서 실행되는 동안 코드를 사용합니다. 이 테스트에는 Google Play 스토어 앱을 사용하여 테스트할 또 다른 기기가 필요합니다. 앱의 다양한 화면에서 코드 사용을 테스트해야 합니다.
  • 앱과 Google Play 스토어 앱이 모두 동시에 표시되는 멀티 윈도우 모드에서 코드를 사용합니다.

각 테스트에서 항목이 올바르게 감지되고 사용자가 알림을 받는지 확인합니다.

다양한 지역에서 구매 환경 테스트

라이선스 테스터를 사용하면 해당 국가의 실제 결제 수단을 사용하지 않고도 모든 지역에서 구매 흐름을 테스트할 수 있습니다. 다음 단계를 따라 테스트하세요.

  1. 새 Gmail 계정을 만듭니다. 모든 국가에서 계정을 만들 수 있습니다.
  2. 사용자를 라이선스 테스터로 설정합니다.
  3. 원하는 국가로 VPN을 연결하여 테스트합니다.
  4. 구매 흐름을 시작합니다.

Play 스토어 데이터와 캐시를 지우고 테스트하려는 국가에서 3단계와 4단계를 반복할 수 있습니다. 새로운 국가로 전환한 후에는 Google Play 스토어의 데이터를 삭제하여 이전 국가와 관련된 데이터를 삭제해야 합니다.

구매를 테스트하는 이 방법을 사용하면 실제 테스트하는 위치와 관계없이 모든 지역의 혜택 자격요건과 사용자 환경을 테스트할 수 있습니다.