Aller au contenu principal

Comment Q-Bot franchit l'étape 2FA

Du parcours de connexion bancaire à la campagne de tests de nuit, voici comment des équipes QA automatisent l'authentification à deux facteurs avec Q-Bot.

Dans quels cas l'utiliser

Quatre situations où la chaîne de tests se débloque, sans que personne ne valide à la main.

Connexion

Automatiser une connexion avec 2FA

Exécutez un parcours de connexion complet nécessitant une validation dans LuxTrust Mobile, itsme, Microsoft Authenticator ou une autre application 2FA Android.

Non-régression

Exécuter des campagnes sans intervention humaine

Lancez vos tests de non-régression, y compris la nuit ou depuis votre CI/CD, sans qu'un testeur doive valider manuellement la double authentification.

Code à usage unique

Récupérer un code à usage unique

Q-Bot peut ouvrir l'application 2FA et récupérer le code nécessaire afin que votre test puisse poursuivre son exécution.

QR code

Automatiser les parcours avec QR code

Q-Bot peut afficher un QR code sur son écran intégré afin qu'il soit scanné par le smartphone dans le cadre du scénario automatisé.

Comment ça marche

Votre chaîne de tests garde la main de bout en bout. Q-Bot ne prend le relais que sur l'étape de double authentification, puis la rend.

1

Le test arrive à la 2FA

Le parcours automatisé atteint l'étape qui demande une validation sur smartphone. C'est là que les outils de test s'arrêtent.

2

Q-Bot est déclenché

Votre test appelle l'API, ou l'app compagnon détecte seule la notification qui vient d'arriver sur le téléphone.

3

Le scénario s'exécute sur le smartphone

Q-Bot rejoue les appuis et les temps d'attente enregistrés, dans la véritable application 2FA, par USB.

4

L'authentification est validée

La demande est approuvée sur le téléphone, ou le code à usage unique est récupéré et renvoyé à votre test.

5

Le test continue

Le parcours reprend là où il s'était arrêté, sans personne devant l'écran, de jour comme de nuit.

Deux modes de déclenchement

Un appel depuis votre chaîne de tests, ou rien du tout : l'app compagnon s'en charge dès qu'une notification 2FA arrive sur le téléphone.

Depuis votre chaîne de tests

Un appel HTTP au moment où le test atteint l'étape 2FA. Explicite, déterministe, facile à insérer dans n'importe quelle chaîne.

  • GET /scenarios/:id/execute
  • Aucune clé, aucun agent à installer

Le cas détaillé : une connexion testée de bout en bout

Depuis le téléphone

L'app compagnon tourne sur l'appareil sous test et surveille les notifications des applications 2FA. Dès qu'une notification arrive, elle déclenche le scénario correspondant.

  • Aucun appel depuis votre chaîne de tests
  • Elle tourne sur le téléphone que Q-Bot pilote déjà : rien de plus à appairer
  • Utile quand le moment de la 2FA est imprévisible, ou décidé par l'application testée

Le cas détaillé : des exécutions de nuit vraiment automatiques

Les deux chemins coexistent dans le même environnement : à chaque scénario, celui qui lui convient. Dans les deux cas, les appuis partent vers le téléphone par ADB, l'outil standard d'Android pour piloter un appareil relié en USB. La boucle ci-contre montre le geste : la notification arrive, le scénario se joue, l'écran du téléphone change.

Prêt à supprimer la dernière étape manuelle ?

Les exemples d'appel, outil par outil

Le détail pour qui veut le lire : cinq exemples d'appel, dépliables, et le mécanisme outil par outil.

# On déclenche le scénario 2FA
import requests

requests.get(
  "http://q-bot.local:8000"
  "/scenarios/42/execute"
)

# Le test reprend son cours
driver.find_element(
  By.ID, "dashboard"
).is_displayed()
// On déclenche le scénario 2FA
cy.request(
  'GET',
  'http://q-bot.local:8000'
  + '/scenarios/42/execute'
)
.its('status')
.should('eq', 200)

cy.get('#dashboard')
  .should('be.visible')
# On déclenche le scénario 2FA
curl -s \
  http://q-bot.local:8000 \
  /scenarios/42/execute

# Le code LuxTrust
OTP=$(curl -s \
  http://q-bot.local:8000 \
  /get-luxtrust-otp \
  | jq -r '.otp')
*** Settings ***
Library    RequestsLibrary

*** Test Cases ***
Connexion 2FA
    # on déclenche le scénario
    ${r}=    GET
    ...    ${QBOT}/scenarios/42/execute
    Status Should Be    200    ${r}
// on déclenche le scénario 2FA
given()
  .baseUri("http://q-bot.local:8000")
.when()
  .get("/scenarios/42/execute")
.then()
  .statusCode(200);

// le test reprend son cours
assertTrue(
  dashboard.isDisplayed()
);

Q-Bot est auto-hébergé : l'API répond sur le réseau où vous installez le boîtier, tant qu'il est allumé, sans dépendance extérieure. Elle n'attend aucune clé d'API : le contrôle d'accès est celui de votre réseau.