Tester les mots de passe à usage unique (OTP) peut être très pénible, n'est-ce pas ? Basculer constamment entre votre application et votre boîte de réception SMS, rechercher des codes... Il est temps de résoudre ce problème. Parlons de l'automatisation de l'ensemble du processus à l'aide d'outils qui font le travail. Et oui, nous utiliserons également des numéros de téléphone temporaires, mais nous resterons calmes et nous concentrerons sur la valeur réelle de votre flux de travail de développement.
Voici comment améliorer votre jeu OTP avec des outils tels que Playwright, Puppeteer, Selenium et un peu de créativité. Peu importe votre stack, vous trouverez ici quelques pépites.
Récupérez des numéros de téléphone temporaires par programmation, récupérez les OTP via l'API et automatisez le reste. Plus de va-et-vient, plus de drame. Vous ressemblerez à un sorcier lors des revues de sprint.
Il existe de nombreux services pour les numéros de téléphone temporaires, alors pourquoi choisir Quackr.io ? Voici l’offre :
Nous avons utilisé Quackr.io car il coche toutes ces cases. Vous pouvez en essayer d’autres, mais si vous recherchez quelque chose de fiable, Quackr.io est un excellent point de départ.
Voici comment créer un script d’automatisation OTP. Considérez-le comme un point de départ : faites-le vôtre.
Tout d’abord, inscrivez-vous à un service qui fournit des numéros de téléphone temporaires (nous utilisons Quackr.io). Prenez votre clé API et c'est parti.
Si vous utilisez Node.js, vous aurez besoin de quelques packages :
npm install playwright axios dotenv
Voici un exemple utilisant Playwright et Axios. N'hésitez pas à l'adapter à votre configuration.
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(); })();
Utilisez un fichier .env pour vos clés API. Exemple :
API_KEY=your_api_key_here
Vous pouvez étendre cette configuration pour :
Ceci ne fait qu’effleurer la surface. L'automatisation des OTP peut vous faire gagner beaucoup de temps et donner l'impression que vos tests sont peaufinés. Si vous avez des idées pour rendre cela encore meilleur, j’aimerais les entendre. Avez-vous des astuces intéressantes pour gérer les OTP ? Déposez-les ci-dessous : apprenons les uns des autres !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!