ホームページ >ウェブフロントエンド >jsチュートリアル >ワンタイム パスワード (OTP) テストの自動化: カジュアル ガイド

ワンタイム パスワード (OTP) テストの自動化: カジュアル ガイド

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 06:01:11817ブラウズ

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?フェッチ?あなたの電話です。
  • テスト フレームワーク: 劇作家、人形遣い、Selenium... 好きなものは何でも。
  • 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。