> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qaos.machdel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lancer une exécution

> Comment exécuter un test QAOS depuis la ligne de commande.

## Utilisation de base

Avec un fichier de configuration prêt et le CLI authentifié, démarrez une exécution :

```bash theme={null}
npx qaos run --config ./qaos-config.json
```

Le CLI se connecte au serveur QAOS, lance un navigateur headless et commence à exécuter les tâches. La progression est diffusée dans votre terminal en temps réel.

***

## Options de la commande

```bash theme={null}
npx qaos run [options]
```

| Option              | Alias | Description                                     | Défaut               |
| ------------------- | ----- | ----------------------------------------------- | -------------------- |
| `--config <chemin>` | `-c`  | Chemin vers le fichier de configuration JSON    | `./qaos-config.json` |
| `--headed`          | `-h`  | Exécuter avec une fenêtre de navigateur visible | Headless             |

### Recherche de configuration par défaut

Si aucun flag `--config` n'est fourni, QAOS recherche `qaos-config.json` dans le répertoire de travail actuel :

```bash theme={null}
npx qaos run  # utilise ./qaos-config.json
```

### Mode avec fenêtre

Utilisez `--headed` (ou `-h`) pour ouvrir une fenêtre de navigateur visible pendant l'exécution. Cela est utile pour :

* Déboguer des descriptions de tâches qui ne produisent pas le comportement attendu
* Observer l'agent naviguer dans votre application
* Comprendre comment l'agent interprète vos pages

```bash theme={null}
npx qaos run --config ./qaos-config.json --headed
```

<Note>
  Le mode avec fenêtre peut être légèrement plus lent que le mode headless. Utilisez le mode headless pour les pipelines CI en production.
</Note>

***

## Ce qui se passe pendant une exécution

<Steps>
  <Step title="Connexion">
    Le CLI se connecte au serveur QAOS via WebSocket et envoie votre configuration pour initier l'exécution. Un ID d'exécution est assigné et affiché.
  </Step>

  <Step title="Exécution des tâches">
    Les tâches s'exécutent séquentiellement. Pour chaque tâche :

    * Le navigateur navigue vers `startUrl`
    * L'agent analyse la page (DOM, captures d'écran, en-têtes réseau, cookies, journaux console)
    * Des sous-tâches sont générées pour les tests interactifs (ex. : tentative de connexion avec des mots de passe faibles)
    * Les critères sont détectés et signalés en temps réel
  </Step>

  <Step title="Évaluation par les agents">
    Sur chaque page, les sous-agents sélectionnés évaluent la page par rapport à leur catalogue complet de critères, en utilisant une combinaison de vérifications déterministes (rapides, basées sur le code) et d'évaluation LLM (plus approfondie, sensible au contexte).
  </Step>

  <Step title="Finalisation">
    Une fois toutes les tâches terminées, le CLI affiche un résumé des critères détectés et un lien vers le rapport complet dans le tableau de bord.
  </Step>
</Steps>

***

## Sortie en temps réel

Pendant l'exécution, le CLI diffuse les résultats dans votre terminal au fur et à mesure de leur détection, et affiche un résumé avec un lien vers le rapport complet une fois l'exécution terminée.

***

## Exécution en CI/CD

QAOS fonctionne bien dans les pipelines CI. Utilisez l'authentification par jeton API et un fichier de configuration versionné :

```yaml Exemple GitHub Actions theme={null}
- name: Lancer l'audit de sécurité QAOS
  run: |
    npx qaos auth --api ${{ secrets.QAOS_API_TOKEN }}
    npx qaos run --config ./qaos-config.json
  env:
    QAOS_API_TOKEN: ${{ secrets.QAOS_API_TOKEN }}
```

Le CLI se termine avec le code `0` en cas de succès et un code non nul si l'exécution échoue ou si le serveur est inaccessible.

***

## Limitations connues

L'agent QAOS s'exécute comme un navigateur automatisé et ne peut pas effectuer toutes les actions qu'un utilisateur humain peut réaliser :

| Limitation                    | Détails                                                                                                                                                                                                                                                            |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Téléversement de fichiers** | Les pages avec des champs d'entrée de fichier sont ignorées. L'agent ne peut pas sélectionner ni téléverser des fichiers depuis le disque.                                                                                                                         |
| **OAuth tiers**               | Les flux « Se connecter avec Google / GitHub / etc. » ne peuvent pas être complétés. Utilisez une connexion native par identifiant/mot de passe ou configurez un fournisseur OAuth simulé dans votre environnement de test pour que l'agent puisse s'authentifier. |
| **CAPTCHA / défis anti-bot**  | Les CAPTCHAs bloquants empêcheront l'agent de progresser. Désactivez-les dans votre environnement de test ou utilisez une adresse IP autorisée.                                                                                                                    |
| **Détection de bot**          | Les règles WAF, la limitation de débit et l'empreinte de navigateur peuvent identifier l'agent comme un bot et bloquer la navigation. Désactivez la protection anti-bot dans votre environnement de test avant de lancer une exécution.                            |

***

## Résolution de problèmes

<AccordionGroup>
  <Accordion title="Erreur d'authentification au démarrage">
    Votre jeton a peut-être expiré ou été révoqué. Réauthentifiez-vous :

    ```bash theme={null}
    npx qaos auth --api <votre-jeton>
    # ou
    npx qaos auth --ui
    ```
  </Accordion>

  <Accordion title="Fichier de configuration introuvable">
    Vérifiez le chemin fourni :

    ```bash theme={null}
    ls ./qaos-config.json      # vérifier qu'il existe
    npx qaos run --config ./chemin/vers/config.json
    ```
  </Accordion>

  <Accordion title="Le navigateur ne se lance pas">
    QAOS nécessite que les binaires de navigateur Playwright soient installés sur votre machine. Installez-les une seule fois avant votre première exécution :

    ```bash theme={null}
    npx playwright install chromium
    ```

    Si les binaires sont manquants, QAOS affichera un message d'erreur vous demandant d'exécuter la commande ci-dessus. Après l'installation, relancez simplement votre exécution.
  </Accordion>

  <Accordion title="L'exécution expire">
    Si votre application charge lentement, envisagez d'ajouter un contexte descriptif dans votre configuration de tâche pour aider l'agent à comprendre le comportement attendu. Chaque tâche dispose d'un délai d'expiration généreux, mais les pages très lentes peuvent occasionnellement être ignorées.
  </Accordion>
</AccordionGroup>
