Heim > Web-Frontend > js-Tutorial > Automatisieren Sie das Testen von Einmalkennwörtern (OTP): Ein einfacher Leitfaden

Automatisieren Sie das Testen von Einmalkennwörtern (OTP): Ein einfacher Leitfaden

Patricia Arquette
Freigeben: 2024-12-18 06:01:11
Original
818 Leute haben es durchsucht

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

Automatisieren Sie das Testen von Einmalkennwörtern (OTP): Ein einfacher Leitfaden

Das Testen von Einmalpasswörtern (OTPs) kann so mühsam sein, oder? Ständiges Hin- und Herwechseln zwischen Ihrer App und dem SMS-Posteingang auf der Suche nach Codes ... Es ist an der Zeit, das zu beheben. Lassen Sie uns über die Automatisierung des gesamten Prozesses mit Tools sprechen, die einfach die Arbeit erledigen. Und ja, wir werden auch temporäre Telefonnummern verwenden, aber wir bleiben locker und konzentrieren uns auf den echten Mehrwert für Ihren Entwicklungsworkflow.

Hier erfahren Sie, wie Sie Ihr OTP-Spiel mit Tools wie Playwright, Puppeteer, Selenium und etwas Kreativität verbessern können. Ganz gleich, wie hoch Ihr Stapel ist, hier finden Sie einige Nuggets.


Warum sollte man sich die Mühe machen, OTPs zu automatisieren?

Die üblichen Kämpfe

  • Wechseln zwischen Ihrem Test- und SMS-Posteingang
  • Kopieren und Einfügen wie im Jahr 2005
  • Testen auf mehreren Geräten? Uff.

Die intelligente Lösung

Besorgen Sie sich programmgesteuert einige temporäre Telefonnummern, sichern Sie sich die OTPs über die API und automatisieren Sie den Rest. Kein Hin und Her mehr, kein Drama mehr. Bei Sprint-Reviews werden Sie wie ein Zauberer aussehen.


Warum Quackr.io?

Es gibt viele Dienste für temporäre Telefonnummern. Warum also Quackr.io wählen? Hier ist der Deal:

  • Schnell und zuverlässig: Quackr.io liefert SMS-Nachrichten in Sekundenschnelle, was genau das ist, was Sie beim Testen von OTP-Flows benötigen.
  • Einfache API: Ihre API ist super einfach zu integrieren – Sie sind im Handumdrehen einsatzbereit.
  • Globale Zahlen: Testen Sie mit Zahlen aus verschiedenen Ländern, um regionale Anwendungsfälle abzudecken.
  • Erschwingliche Pläne: Perfekt für Entwickler und Teams, die eine kostengünstige Lösung ohne Qualitätseinbußen wünschen.

Wir haben Quackr.io verwendet, weil es all diese Kriterien erfüllt. Sie können gerne andere ausprobieren, aber wenn Sie etwas Zuverlässiges suchen, ist Quackr.io ein guter Ausgangspunkt.


Was Sie brauchen

  • Temporäre Telefonnummern: Jeder zuverlässige Dienst reicht aus. (Wir werden hier Quackr.io verwenden, weil es großartig funktioniert.)
  • Ihr Lieblings-HTTP-Client: Axios? Bringen? Ihr Anruf.
  • Frameworks testen: Dramatiker, Puppenspieler, Selenium ... was auch immer Ihnen gefällt.
  • Node.js: Warum nicht?

Der spaßige Teil: Es kodieren

So können Sie ein OTP-Automatisierungsskript erstellen. Betrachten Sie es als Ausgangspunkt – machen Sie es zu Ihrem.

Schritt 1: Besorgen Sie sich eine temporäre Telefonnummer

Melden Sie sich zunächst bei einem Dienst an, der temporäre Telefonnummern bereitstellt (wir verwenden Quackr.io). Schnappen Sie sich Ihren API-Schlüssel und los geht’s.

Schritt 2: Installieren Sie einige Grundlagen

Wenn Sie Node.js rocken, benötigen Sie ein paar Pakete:

npm install playwright axios dotenv
Nach dem Login kopieren

Schritt 3: Das Skript

Hier ist ein Beispiel mit Playwright und Axios. Passen Sie es gerne an Ihr Setup an.

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();
})();
Nach dem Login kopieren

Schritt 4: Behalten Sie Ihre Geheimnisse ... geheim

Verwenden Sie eine .env-Datei für Ihre API-Schlüssel. Beispiel:

API_KEY=your_api_key_here
Nach dem Login kopieren

Bonus-Tipps

  1. Tests parallel ausführen: Verwenden Sie mehrere Telefonnummern, um die Arbeit zu beschleunigen.
  2. Mock It for CI: Sparen Sie einige API-Aufrufe während CI/CD, indem Sie den OTP-Flow nachahmen.
  3. Bleiben Sie widerstandsfähig: Fügen Sie Wiederholungsversuche für unregelmäßige Netzwerkprobleme hinzu.
  4. Alles protokollieren: Verfolgen Sie OTPs und Antworten zum Debuggen.

Was kommt als nächstes?

Sie können dieses Setup erweitern für:

  • Zwei-Faktor-Authentifizierung (2FA)
  • Telefonnummernvalidierungstests
  • Reibungslose Onboarding-Abläufe

Letzte Gedanken

Das kratzt nur an der Oberfläche. Die Automatisierung von OTPs kann viel Zeit sparen und dafür sorgen, dass sich Ihre Tests ausgefeilt anfühlen. Wenn Sie Ideen haben, um dies noch besser zu machen, würde ich sie gerne hören. Haben Sie coole Tricks für den Umgang mit OTPs? Schreiben Sie sie unten – lasst uns voneinander lernen!

Das obige ist der detaillierte Inhalt vonAutomatisieren Sie das Testen von Einmalkennwörtern (OTP): Ein einfacher Leitfaden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage