> 웹 프론트엔드 > JS 튜토리얼 > 일회용 비밀번호(OTP) 테스트 자동화: 일반 가이드

일회용 비밀번호(OTP) 테스트 자동화: 일반 가이드

Patricia Arquette
풀어 주다: 2024-12-18 06:01:11
원래의
818명이 탐색했습니다.

Automate One-Time Password (OTP) Testing: A Casual Guide

일회용 비밀번호(OTP) 테스트 자동화: 일반 가이드

일회용 비밀번호(OTP)를 테스트하는 것은 정말 힘든 일이겠죠? 앱과 SMS 받은 편지함 사이를 끊임없이 오가며 코드를 찾고 있습니다. 이제 이 문제를 해결할 때입니다. 작업을 완료하는 도구를 사용하여 전체 프로세스를 자동화하는 방법에 대해 이야기해 보겠습니다. 그리고 네, 임시 전화번호도 사용할 예정입니다. 하지만 침착하게 개발 워크플로의 실제 가치에 집중하겠습니다.

Playwright, Puppeteer, Selenium과 같은 도구와 약간의 창의성을 사용하여 OTP 게임의 수준을 높이는 방법은 다음과 같습니다. 귀하의 스택에 관계없이 여기에서 몇 가지 덩어리를 찾을 수 있습니다.


왜 OTP 자동화를 귀찮게 하나요?

일반적인 투쟁

  • 테스트와 SMS 받은편지함 간 전환
  • 2005년처럼 복사해서 붙여넣기
  • 여러 기기에서 테스트하시나요? 윽.

스마트 픽스

임시 전화번호를 프로그래밍 방식으로 확보하고 API를 통해 OTP를 확보한 후 나머지를 자동화하세요. 더 이상 앞뒤로 움직이지 않고 드라마도 없습니다. 스프린트 리뷰에서는 마치 마법사처럼 보일 것입니다.


왜 Quackr.io인가?

임시 전화번호 서비스가 많이 있는데 왜 Quackr.io를 선택해야 할까요? 거래 내용은 다음과 같습니다.

  • 빠르고 안정적입니다: Quackr.io는 SMS 메시지를 몇 초 만에 전달합니다. 이는 OTP 흐름을 테스트할 때 꼭 필요한 것입니다.
  • 간단한 API: API는 통합하기가 매우 쉽습니다. 즉시 실행이 가능합니다.
  • 글로벌 숫자: 지역별 사용 사례를 다루기 위해 다양한 국가의 숫자로 테스트합니다.
  • 저렴한 요금제: 품질 저하 없이 비용 효율적인 솔루션을 원하는 개발자와 팀에 적합합니다.

우리는 이 모든 조건을 충족하는 Quackr.io를 사용했습니다. 다른 것을 시도해도 좋지만, 신뢰할 수 있는 것을 찾고 있다면 Quackr.io가 좋은 출발점이 됩니다.


당신에게 필요한 것

  • 임시 전화번호: 신뢰할 수 있는 서비스이면 충분합니다. (여기서는 Quackr.io가 잘 작동하므로 이를 사용하겠습니다.)
  • 가장 선호하는 HTTP 클라이언트: Axios? 술책? 전화주세요.
  • 테스트 프레임워크: 극작가, 인형사, 셀레늄... 원하는 대로 무엇이든 가능합니다.
  • Node.js: 왜 안 되겠어요?

재미있는 부분: 코딩하기

OTP 자동화 스크립트를 작성하는 방법은 다음과 같습니다. 이를 시작점으로 생각하고 자신의 것으로 만드세요.

1단계: 임시 전화번호 받기

먼저 임시 전화번호를 제공하는 서비스에 가입하세요(저희는 Quackr.io를 사용하고 있습니다). API 키를 잡고 시작해 보세요.

2단계: 몇 가지 기본 사항 설치

Node.js를 사용하려면 몇 가지 패키지가 필요합니다.

npm install playwright axios dotenv
로그인 후 복사

3단계: 스크립트

다음은 Playwright와 Axios를 사용한 예입니다. 설정에 맞게 자유롭게 조정하세요.

const { chromium } = require('playwright');
const axios = require('axios');
require('dotenv').config();

(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();

  // Fetch a temporary phone number
  const phoneResponse = await axios.get('https://quackr.io/api/phones', {
    headers: { 'Authorization': `Bearer ${process.env.API_KEY}` }
  });

  const phoneNumber = phoneResponse.data.number;
  console.log(`Using phone number: ${phoneNumber}`);

  // Simulate your app’s signup flow
  await page.goto('https://yourapp.com/signup');
  await page.fill('#phone-input', phoneNumber);
  await page.click('#send-otp');

  // Wait for the OTP
  let otp;
  while (!otp) {
    const messages = await axios.get(`https://quackr.io/api/messages?phone=${phoneNumber}`, {
      headers: { 'Authorization': `Bearer ${process.env.API_KEY}` }
    });

    const otpMessage = messages.data.find(msg => msg.body.includes('Your OTP is'));
    if (otpMessage) {
      otp = otpMessage.body.match(/\d{6}/)[0];
      console.log(`Got OTP: ${otp}`);
    } else {
      console.log('Waiting for OTP...');
      await new Promise(resolve => setTimeout(resolve, 2000));
    }
  }

  // Enter the OTP and complete verification
  await page.fill('#otp-input', otp);
  await page.click('#verify-otp');

  console.log('OTP verification done!');

  await browser.close();
})();
로그인 후 복사

4단계: 비밀을 유지하세요...비밀

API 키에 .env 파일을 사용하세요. 예:

API_KEY=your_api_key_here
로그인 후 복사

보너스 팁

  1. 병렬로 테스트 실행: 작업 속도를 높이려면 여러 전화번호를 사용하세요.
  2. CI용 모의: OTP 흐름을 모의하여 CI/CD 중 일부 API 호출을 저장합니다.
  3. 복원력 유지: 불안정한 네트워크 문제에 대한 재시도를 추가합니다.
  4. 모든 것을 기록: 디버깅을 위한 OTP 및 응답을 추적하세요.

다음은 무엇입니까?

이 설정을 다음으로 확장할 수 있습니다.

  • 2단계 인증(2FA)
  • 전화번호 확인 테스트
  • 원활한 온보딩 흐름

최종 생각

이건 단지 표면적인 내용일 뿐입니다. OTP를 자동화하면 많은 시간을 절약하고 테스트가 세련되게 느껴질 수 있습니다. 이를 더욱 개선할 수 있는 아이디어가 있다면 듣고 싶습니다. OTP 처리에 대한 멋진 요령이 있나요? 아래에 드롭하세요. 서로에게서 배워보세요!

위 내용은 일회용 비밀번호(OTP) 테스트 자동화: 일반 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿