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
- Copie les fichiers binaires (
agi-container+agi-containerd) à~/.agilitest/tools/ - Ajoute ce dossier à
CHEMIN(Registre Windows ou.bashrc/.zshrc(sous Linux) - Windows: importe la distribution WSL, configure containerd, enregistre le démon pour un démarrage automatique (registre
HKCU\...\Exécuter) - 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 :
- À côté du fichier exécutable de l'éditeur
outils/sous-dossier de l'éditeur~/.agilitest/tools/C:\Program Files\Agilitest\GAGNER%LOCALAPPDATA%\Programmes\Agilitest\GAGNER- Chemin personnalisé (paramètres utilisateur)
/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-containerpour les conteneurs Linux - Prend également en charge les conteneurs natifs Windows via le
containerd-agilitestservice (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

