Aller au contenu principal

Documentation technique

Retrouvez ici les détails techniques de Q-Bot, ainsi que les informations nécessaires pour l'installer, le configurer et l'utiliser.

Comment Q-Bot fonctionne

Q-Bot est un nano-ordinateur autonome installé sur votre réseau local, avec une interface web intégrée.

Le téléphone sous test est relié à Q-Bot par un câble USB. Q-Bot le pilote via ADB, l'outil standard d'Android : chaque interaction est exécutée directement sur l'appareil, dans l'application d'authentification.

Pendant les tests, Q-Bot fonctionne localement, sans dépendre d'un service externe ni d'une connexion internet.

Le robot Q-Bot, boîtier d'automatisation de la double authentification
  • Votre chaîne de tests appelle Q-Bot en HTTP
  • Q-Bot rejoue le scénario sur le téléphone, par ADB
  • Le second facteur est validé dans la vraie application
  • Votre test reprend son cours

Installation et réseau

Le boîtier arrive prêt. Ce qu'il faut savoir, c'est où le brancher et ce qu'il attend de votre réseau.

Système Raspberry Pi OS Lite
Déploiement Conteneurs Docker, lancés par une seule commande Docker Compose
Réseau Ethernet Gigabit, Wi-Fi 5 (IEEE 802.11ac), Bluetooth
Accès Interface web, servie par le boîtier sur votre réseau local
Connexion internet Aucune n'est nécessaire pendant les tests
Mise en service 48 à 72 heures après la commande

Le boîtier se place sur le même réseau que la machine qui exécute vos tests : c'est ce réseau, et lui seul, qui donne accès à l'interface et à l'API.

Connexion du smartphone

Un téléphone Android physique, relié en USB, piloté par ADB. Ni émulateur, ni simulateur, ni application bouchon.

Système Android
Appareil Physique, ni émulateur ni simulateur
Liaison Câble USB entre le boîtier et le téléphone
Pilotage ADB, l'outil standard d'Android
Applications La véritable application 2FA, installée sur le téléphone

Un boîtier pilote un appareil à la fois, et les demandes sont traitées l'une après l'autre, dans leur ordre d'arrivée.

Création des scénarios

Un scénario se construit à l'écran, sur une capture de l'application testée. Il n'y a pas de langage de script à apprendre.

  • Une capture de l'écran de l'application sert de fond d'étape
  • Les points d'appui se posent au clic, et sont numérotés
  • Les temps d'attente se règlent à la milliseconde
  • Les étapes se réordonnent
  • Les scénarios sont versionnés dans le boîtier
  • Les captures restent stockées localement

Chaque scénario porte un identifiant numérique : c'est lui que votre chaîne de tests appellera.

L'API REST

Trois points d'entrée, en HTTP, sur le réseau local. Aucun SDK, aucun greffon propriétaire, aucun agent à installer dans votre intégration continue.

GET /scenarios/:id/execute Exécute un scénario enregistré sur le téléphone relié.
GET /get-luxtrust-otp Renvoie le code à usage unique affiché par l'app LuxTrust.
POST /display-image Affiche un QR code sur l'écran du boîtier.
  • Auto-hébergé : tout reste sur votre réseau local
  • Compatible avec toute chaîne capable d'un appel HTTP
  • L'API n'attend aucune clé : le contrôle d'accès est celui de votre réseau

Déclencher depuis votre chaîne de tests

Le même appel HTTP, dans cinq outils. Dépliez celui qui vous concerne.

# 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()
  );

L'app compagnon

L'app compagnon permet de déclencher automatiquement un scénario Q-Bot lorsqu'une notification 2FA arrive sur le téléphone.

Elle évite ainsi d'avoir à lancer le scénario depuis votre chaîne de tests.

Les deux modes peuvent être utilisés : déclenchement par HTTP ou déclenchement automatique via l'app compagnon.

Le QR code sur l'écran du boîtier

Le boîtier porte un petit écran intégré. POST /display-image y affiche un QR code que le téléphone vient scanner.

Certains parcours d'authentification demandent de scanner une image plutôt que de saisir un code. L'écran du boîtier sert alors de support : votre test y envoie l'image, le téléphone la scanne, le parcours continue.

Stockage des données

Les scénarios et leurs captures restent sur le boîtier. Rien n'est envoyé vers un service extérieur.

Base SQLite, sur le boîtier
Captures Stockées sur le boîtier
Cloud Aucune dépendance pendant l'exécution
Données De test uniquement

Q-Bot est conçu pour des données de test. Les comptes utilisés dans vos scénarios doivent être des comptes de test.

Sécurité

Cette section décrit les mécanismes de sécurité actuellement intégrés au produit, ainsi que les éléments qui relèvent de votre infrastructure et de votre environnement réseau.

  • Auto-hébergé : le boîtier vit sur votre réseau, pas dans un cloud
  • Aucun appel vers un service extérieur pendant l'exécution des tests
  • Aucune connexion internet n'est nécessaire pour exécuter un scénario
  • Les scénarios et les captures ne quittent pas le boîtier

L'API n'attend aucune clé d'authentification. Le contrôle d'accès est donc celui de votre réseau : placez le boîtier sur un segment dont l'accès est déjà maîtrisé, comme vous le feriez pour tout équipement de test. Pour toute question de conformité propre à votre environnement, écrivez-nous.

Support

Une question, un doute, un comportement inattendu : écrivez à l'équipe. L'assistance technique est incluse dans la location.

Assistance Incluse dans la location
Réponse Sous 24 h ouvrées
Premier recours Diagnostic et réparation à distance

Vous pouvez aussi écrire directement à contact@q-leap.eu. Pour une demande qui n'est pas du support, passez par la page contact.

Écrire au support

Votre message part directement à l'équipe, depuis cette page.

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

Échangez avec notre équipe et découvrez Q-Bot en action.

Demander une démo