Conteneur Agi

Installation

Windows (PowerShell)

irm https://agilitest.app/resources/tools/agi-container/install.ps1 | iex

Linux / macOS (Bash)

curl -fsSL https://agilitest.app/resources/tools/agi-container/install.sh | bash

Téléchargement direct

  • Windows

https://agilitest.app/resources/tools/agi-container/windows/agi-container.exe

  • Linux

https://agilitest.app/resources/tools/agi-container/linux/agi-container

Une fois le téléchargement terminé, lancez Installation d'agi-container pour terminer l'installation.

Quoi installer fait

  1. Copie les fichiers binaires (agi-container + agi-containerd) à ~/.agilitest/tools/
  2. Ajoute ce dossier à CHEMIN (Registre Windows ou .bashrc/.zshrc (sous Linux)
  3. Windows: importe la distribution WSL, configure containerd, enregistre le démon pour un démarrage automatique (registre HKCU\...\Exécuter)
  4. Linux: installe le runtime nerdctl et crée un service systemd pour l'utilisateur agi-containerd.service

Architecture

Le démon (agi-containerd) écoute sur 127.0.0.1:21523 et gère le cycle de vie des conteneurs. L'interface en ligne de commande (CLI) communique avec le démon via HTTP.

Le cache est actualisé automatiquement toutes les 15 secondes.

Utilisation

Commandes système

# Vérifier l'installation
agi-container --version

# État complet (démon, images, conteneurs, systèmes d'exploitation pris en charge)
agi-container status

# Nettoyer tous les conteneurs et toutes les images
agi-container clean

# Désinstallation complète
agi-container uninstall

Commandes Container (nerdctl passthrough)

# List images
agi-container list-images

# Pull an image
agi-container pull actiontestscript/linux:latest

# List running containers
agi-container ps

# Run a container
agi-container run --rm -d actiontestscript/linux

# Stop a container
agi-container stop <container_id>

Toutes les commandes standard de nerdctl sont prises en charge (courir, tirer, P.S., exécuter, arrêt, rm, images, construire, etc.).

Exécution des tests (mode CI)

Le mode CI est automatiquement activé lorsque les arguments contiennent clé=valeur paires.

La philosophie d'exécution d'Agilitest

Séquentiel à l'intérieur, parallèle à l'extérieur.Dans Agilitest, une suite contient une liste ordonnée de tests qui s'exécutent de manière séquentielle, dans l'ordre défini. L'ordre a son importance : chaque test peut dépendre de l'état laissé par le test précédent.

Cependant, les différentes suites sont indépendantes les unes des autres et peuvent être exécutées en parallèle, chacune dans son propre conteneur.

Exécution simple

# Exécuter un script de test
agi-container script=MyScript

# Exécuter une suite (par défaut : exécution séquentielle)
agi-container suite=Regression --tag latest

# Suite avec options
agi-container suite=Regression \
 ats\
  time-zone=Europe/Paris \
  language=fr_FR \
  dashboard=true \
  --tag latest

Exécution parallèle de suites

Avec --parallèle, chaque suite est lancée dans un conteneur distinct et s'exécute en parallèle avec les autres. Les tests au sein de chaque suite restent séquentiels et ordonnés.

# 2 suites en parallèle → 2 conteneurs simultanés
agi-container suites=Smoke,Regression --parallel --tag latest

Parallélisation basée sur les variables

La parallélisation basée sur des variables vous permet d'exécuter plusieurs fois la même suite de tests en parallèle, chaque instance recevant une valeur différente pour une variable donnée. Cela s'avère utile pour effectuer des tests sur plusieurs navigateurs, environnements ou configurations à l'aide d'une seule commande.

Deux options sont utilisées conjointement :

  • --parallel-var NOM — le nom de la variable à insérer dans chaque conteneur
  • --valeur parallèle val1, val2, val3 — valeurs séparées par des virgules ; chaque valeur génère un conteneur distinct

Le --navigateurs un raccourci est un alias de --parallel-var navigateur --parallel-value ...:

# Équivalent à l'exemple ci-dessus
agi-container suite=CrossBrowser --browsers chrome,firefox,safari --tag latest
À l'intérieur de chaque conteneur, la variable est accessible en tant que variable d'environnement. La suite s'exécute de manière séquentielle comme d'habitude ; seule la valeur de la variable diffère d'un conteneur à l'autre.

ATS

Ces paramètres sont transmis directement à AtsLauncher.java à l'intérieur du conteneur :

Options de l'interface en ligne de commande (mode CI)

Intégration de l'éditeur Agilitest

L'éditeur recherche agi-container dans cet ordre :

  1. À côté du fichier exécutable de l'éditeur
  2. outils/ sous-dossier de l'éditeur
  3. ~/.agilitest/tools/
  4. C:\Program Files\Agilitest\ GAGNER
  5. %LOCALAPPDATA%\Programmes\Agilitest\ GAGNER
  6. Chemin personnalisé (paramètres utilisateur)
  7. /usr/local/bin/ LNX

Commande générée par la fenêtre contextuelle « Ligne de commande »

agi-container ats\
  time-zone=Europe/Paris \
  language=fr_FR \
  [dashboard=true] \
  [hide-duration=true] \
  [autres options...] \
  suite=MySuite \
  [--parallel] \
  --tag latest

Lancer un conteneur depuis l'éditeur

agi-container run \
  --shm-size=2g \
  -d --rm \
  -e TZ=Europe/Paris \
  -e LANGUAGE=fr_FR \
  -e AGILITEST_INSTANCE=1 \
  -e AGILITEST_PROJECT=MyProject \
  -p 8080:8080 \
  --name=project-uuid.1 \
  -v /path/to/project:ats\
  actiontestscript/linux:latest

Monter des chemins d'accès à l'intérieur des conteneurs

Structure des résultats (exécution parallèle)

project/
├── target/
│   ├── parallel/
│   │   ├── suite1-linux/
│   │   │   ├── ats
│   │   │   └── container.log
│   │   └── suite2-win/
│   │       ├── ats
│   │       └── container.log
│   └── ats         ← rapport fusionné

Particularités de Windows

  • Utilise une distribution WSL2 nommée agi-container pour les conteneurs Linux
  • Prend également en charge les conteneurs natifs Windows via le containerd-agilitest service (canal nommé) \\.\pipe\containerd-agilitest)
  • Proxy TCP pour la redirection de ports (contourne les limitations d'iptables sous WSL)
  • Conversion automatique des chemins d'accès Windows → WSL (C:\chemin/mnt/c/chemin)
  • Détection automatique des conteneurs Windows via sc query vmcompute

Particularités de Linux

  • Exécution directe via nerdctl (sans couche WSL)
  • Uniquement les conteneurs Linux
  • Service systemd pour le démon

Sur cette page

// TOC MANAGEMENT