Feather Wand 4.0 et la préparation des tirs
Feather Wand est un plugin libre et gratuit qui ajoute un agent IA à l'interface de JMeter. Son auteur, NaveenKumar Namachivayam, a présenté la version 4.0.0 le 6 novembre 2026 sur son blog QAInsights, en la décrivant comme la plus grosse version de l'outil. Elle succède au chat dans JMeter (1.0), à l'ouverture aux CLI d'IA comme Claude Code (2.0), puis à un mode Agent qui agit sur le plan de test (3.0).
Deux briques nouvelles concernent directement la préparation d'un test de charge. Make it pass est une boucle encadrée qui rejoue le plan, le corrige et le confirme. Le Workload Designer transforme une charge cible en configuration de tir et s'accompagne d'un contrôle préalable, Workload Preflight.
L'auteur parle d'aller de l'enregistrement à un « validated JMeter test plan ». Ce que l'outil valide en réalité, c'est un script rejouable ; son propre article le montre, limites comprises, et c'est ce qui nous a fait le lire de près.
La chaîne de bout en bout
Enregistrer en langage naturel
Le Browser Recording pilote un vrai navigateur via Playwright MCP, pendant que le proxy de JMeter capture le trafic. Vous décrivez le parcours en anglais courant. La fonction est désactivée par défaut et s'active dans user.properties :
jmeter.ai.record.enabled=trueSur la démo de l'auteur, une démo bancaire publique de Google où l'argent est fictif, l'enregistrement a produit 10 requêtes réparties en 5 étapes, de la connexion à la déconnexion. L'agent y a joint des remarques utiles : paramétrer les montants et le numéro de compte avant toute charge, et un chargement de page en trop sur l'étape de dépôt, point que nous vérifierions à chaque enregistrement.
La boucle Make it pass
On le lance avec @fix dans le chat ou par un bouton en fin d'enregistrement. Le déroulé décrit par l'auteur :
- confirmation de l'hôte cible avant tout envoi de trafic ;
- rejeu à 1 utilisateur, 1 itération ;
- corrections par tours, avec un diff du plan à chaque tour ;
- ajout d'écouteurs et d'assertions de page déterministes ;
- contrôle à 2 utilisateurs × 2 itérations, pour attraper sessions partagées et valeurs codées en dur ;
- rapport affiché dans JMeter et enregistré sous
~/.jmeter-ai/fix-reports/.
La confirmation d'hôte est une bonne idée : un agent qui envoie du trafic doit demander où il l'envoie. Le bouton Stop arrête la boucle immédiatement, et chaque modification laisse une trace dans un diff et dans le rapport.
Une démo sans corrélation à faire
Sur la démo, l'enregistrement était déjà propre : 0 échec sur 60 requêtes, donc aucun tour de réparation. Make it pass a ajouté 10 assertions de réponse et deux écouteurs, et il a relevé un mot de passe en clair dans une requête de login, à déplacer vers des variables ou un CSV. Le contrôle à 2 × 2 est passé sans erreur.
L'auteur écrit pourtant lui-même : « A clean recording is not a load-ready script ». Make it pass n'a pas vu l'identifiant de transaction codé en dur dans les requêtes de dépôt et de paiement, que l'auteur remplacerait par ${__UUID()} avant une vraie charge. Il précise dans ses limites que l'outil n'a pas touché à la corrélation, faute d'échec à réparer.
La boucle répare ce qui casse. Un identifiant figé qui ne fait échouer aucun rejeu à 2 utilisateurs, comme sur la démo, lui échappe : la revue des valeurs dynamiques reste votre travail. Quant aux assertions ajoutées, elles vérifient la présence d'un libellé sur la page, un minimum qui ne remplace en rien une validation métier.
Workload Designer, des valeurs à mesurer
Le designer s'ouvre par le menu Run, une icône ou @load, sans appel à l'IA. Il propose six formes : Load, Endurance, Step, Spike, Stress et Custom. Ce qui nous plaît :
- les valeurs deviennent des propriétés
${__P()}, donc surchargeables par la CI sans toucher au JMX ; - il génère les lignes de commande pour Bash, cmd et PowerShell, avec la taille de heap calculée ;
- il vérifie si les injecteurs déclarés (hôtes, vCPU, RAM) peuvent tenir la charge ;
- il explique ses hypothèses en clair.
Une de ces hypothèses demande de la vigilance. Sur la démo, le designer a supposé un temps de réponse moyen de 500 ms, tout en recommandant de le mesurer avec un rejeu à 1 utilisateur. Faites cette mesure avant d'appliquer quoi que ce soit.
Sur le plan de la démo, le designer a aussi précisé que chaque arrivée de l'Open Model Thread Group exécute une itération ; les débits saisis sont des itérations par seconde par injecteur, ce qu'il faut garder en tête à la lecture des résultats. Selon sa note, chaque injecteur doit tourner sous JMeter 5.5 ou plus récent ; l'auteur a testé sous 5.6.3.
Pour l'intégration en pipeline, notre article sur les tests de performance dans la CI/CD détaille seuils et cadence.
Preflight, un contrôle local avant le tir
Preflight vérifie les éléments actifs et les réglages hérités du plan, sans lancer de tir ni appeler d'IA. Il signale les écouteurs lourds, les noms de fichiers CSV vides pour les tirs distribués et les valeurs hors bornes.
Sur la démo, il a levé un seul avertissement, sur le View Results Tree que Make it pass venait d'ajouter : un outil pose un écouteur pour déboguer, l'autre rappelle de le couper avant la charge. Instantané et local, c'est le genre de vérification qu'on aimerait voir systématique avant chaque tir.
Fournisseurs, installation et confidentialité
| Sujet | Ce qu'il faut savoir |
|---|---|
| Fournisseurs | Anthropic, OpenAI, Gemini, DeepSeek, Grok, Meta Muse, OpenRouter, OpenCode, Ollama |
| Configuration | Dialogue « Connect a provider », sans redémarrage ; Bedrock et passerelles d'entreprise restent dans user.properties |
| Sans clé payante | Modèles gratuits via OpenCode, ou modèles locaux via Ollama |
| Jar allégé | Le runtime ONNX est téléchargé à la demande et vérifié par hash |
| Télémétrie | Anonyme, élargie dans cette version, désactivable |
Si votre politique interne l'exige, la télémétrie se coupe ainsi :
jmeter.ai.telemetry.enabled=falseLe téléchargement du runtime à la demande pose question sur un poste sans accès internet, et la source ne dit pas comment le fournir hors ligne. Dernier détail : « Ask AI » est désactivé pendant un tir, pour éviter de modifier un plan en cours d'exécution.
Make it pass dans la préparation
Feather Wand 4.0 automatise bien les parties répétitives : enregistrer, rejouer, poser des assertions, préparer les commandes de tir. Preflight et la confirmation d'hôte relèvent d'une conception prudente, et l'auteur reconnaît que la qualité de l'agent dépend du modèle choisi.
Rien dans la source, en revanche, ne montre l'outil face à une application où une vraie corrélation est à reconstruire. La valeur des tours de réparation quand le script casse réellement reste donc à établir. D'ici là, traitez Make it pass comme un contrôle de rejouabilité, pas comme une validation pour la charge. Gardez votre revue des valeurs dynamiques et des jeux de données, mesurez le temps de réponse au lieu d'accepter l'hypothèse par défaut, et suivez le conseil de l'auteur : ne lancez pas de charge sur le site de démo d'un autre.
Pour situer cet outil parmi les autres usages de l'IA, voir ce que les éditeurs documentent. L'approche voisine côté Gatling est décrite dans transformer un parcours Playwright en test de charge.
Publié par Philippe Naveau