En bref
ReadyAPI inclut LoadUI Pro pour les tests de charge, mais son coût est intégré à une licence utilisateur déjà onéreuse, et ses outils datent d’une époque où REST était encore nouveau. Pour les équipes qui testent des API REST et GraphQL modernes, k6 et Gatling représentent des alternatives open source plus performantes. Apidog assure la couche de tests fonctionnels d’API, et s’associe naturellement à k6 pour couvrir les tests de performance.
Essayez Apidog dès aujourd'hui
💡Apidog est une plateforme de développement d'API tout-en-un et gratuite pour la conception d'API, les tests fonctionnels, le mocking et la documentation. Associez-le à k6 pour une pile de test moderne complète. Essayez Apidog gratuitement, aucune carte de crédit requise.
Introduction
Les tests de charge sont indispensables pour toute API utilisée en production. Il est impératif de connaître le comportement de vos endpoints sous forte sollicitation : 100 utilisateurs simultanés sur la recherche, 500 écritures concurrentes déclenchées par une tâche de fond... Découvrir ces limites en production coûte cher.
ReadyAPI intègre les tests de charge via LoadUI Pro. Pour les équipes qui utilisent déjà ReadyAPI pour leurs tests fonctionnels, le fait de pouvoir réutiliser les mêmes cas de test et gérer le tout dans un seul outil est attractif.
Mais en pratique, LoadUI Pro présente des compromis spécifiques. Pour certaines équipes, il reste pertinent. Pour d'autres, les solutions open source modernes sont plus performantes, moins coûteuses et mieux adaptées aux pratiques de développement actuelles.
Ce guide détaille les fonctionnalités réelles de LoadUI Pro, la comparaison avec k6 et Gatling, et explique comment Apidog s’intègre dans un workflow de tests de charge moderne.
Ce que LoadUI Pro fait réellement
LoadUI Pro est le module de test de charge de ReadyAPI. Il permet d’exécuter des cas de test à grande échelle via des utilisateurs virtuels configurables, des profils de montée en charge, et des durées personnalisées.
Principales capacités de LoadUI Pro :
- Conversion directe de tests fonctionnels en tests de charge : Réutilisez vos cas de test ReadyAPI existants sans réécriture.
- Profils de charge et scénarios configurables : Simulation d’utilisateurs virtuels, charge en rafale, montée progressive, etc. via l’interface graphique.
- Métriques en temps réel : Temps de réponse, taux d’erreur, débit, nombre d’utilisateurs virtuels affichés en direct.
- Assertions sous charge : Définissez des critères (ex : 95e centile < 2000ms) pour valider ou échouer le test automatiquement.
Limitations de LoadUI Pro :
- Exécution limitée à une seule machine : La charge distribuée requiert une infrastructure supplémentaire.
- Approche GUI peu adaptée au versionnement : La configuration des tests reste dans des fichiers de projet, pas du code versionnable.
- Scripting Groovy : La personnalisation nécessite Groovy (langage peu maîtrisé par la majorité des devs).
- Performances limitées par la JVM : Le modèle par thread de ReadyAPI limite le nombre d’utilisateurs virtuels par machine, là où k6 est bien plus efficace.
k6 : l’alternative open source moderne
k6 est un outil de test de charge open source (AGPL-3.0), développé par Grafana Labs. Il s’est imposé comme standard pour les tests de charge d’API REST.
Pourquoi choisir k6 :
- Tests de charge = code : Les tests sont des fichiers JavaScript, versionnables dans Git, soumis à revue, modifiables par tous les devs.
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
vus: 50,
duration: '30s',
};
export default function () {
const res = http.get('https://api.example.com/users');
check(res, {
'status is 200': (r) => r.status === 200,
'response time under 500ms': (r) => r.timings.duration < 500,
});
sleep(1);
}
- Performance : k6 (écrit en Go) simule des milliers d’utilisateurs virtuels sur un simple laptop, avec une empreinte mémoire bien plus faible que les outils JVM.
- Seuils intégrés : Définissez des critères d’échec/succès intégrés au CI/CD :
export const options = {
thresholds: {
http_req_duration: ['p(95)<500'],
http_req_failed: ['rate<0.01'],
},
};
k6 retourne un code de sortie non nul si les seuils sont violés, idéal pour CI/CD.
- k6 Cloud : Pour les tests de charge distribués, utilisez k6 Cloud (payant, même scripts).
- Tarification : L’outil open source est gratuit. k6 Cloud démarre à ~49$/mois.
Gatling : tests de performance pour les équipes Java
Gatling est un outil open source conçu pour les environnements Java/Scala, avec un DSL en Scala et une API Java.
Avantages de Gatling :
- DSL puissant pour scénarios complexes : Parfait pour des parcours utilisateurs à états multiples (connexion, navigation, panier…).
- Rapports HTML détaillés : Génération automatique de dashboards lisibles.
- Enregistreur de trafic : Capture du trafic navigateur et génération de simulations.
Gatling Enterprise propose la charge distribuée, l’intégration CI/CD et la collaboration (payant). Pour du local, la version open source suffit.
Gatling vs k6 : Gatling est adapté aux équipes Java/Scala, k6 aux équipes JS. Les deux sont plus dev-friendly que la GUI + Groovy de LoadUI Pro.
LoadUI Pro vs k6 : comparaison directe
| Capacité | LoadUI Pro | k6 |
|---|---|---|
| Prix | Inclus dans ReadyAPI (environ 749 $+/utilisateur/an) | Gratuit (open source) |
| Définitions de tests | Interface graphique/fichier de projet ReadyAPI | Fichiers de code JavaScript |
| Contrôle de version | Limité (XML de projet) | Complet (fichiers de code) |
| Langage de script | Groovy | JavaScript |
| Support de protocole | REST, SOAP, HTTP | REST, WebSocket, gRPC (bêta) |
| Charge distribuée | Limité | Via k6 Cloud |
| Intégration CI/CD | Commande Testrunner | CLI k6 |
| Efficacité des utilisateurs virtuels | Modérée (JVM) | Élevée (environnement d'exécution Go) |
| Réutilisation des tests fonctionnels | Oui (point fort clé) | Fichiers de test séparés |
| Communauté | Plus petite | Large, active |
Le principal avantage de LoadUI Pro : la réutilisation directe des cas de test ReadyAPI en tests de charge. Si votre équipe a déjà une suite ReadyAPI massive, c’est utile.
Pour les équipes partant de zéro ou migrantes, le modèle JavaScript, la compatibilité Git et l’efficacité de k6 sont supérieurs.
Comment Apidog + k6 remplace ReadyAPI + LoadUI Pro
ReadyAPI + LoadUI Pro combine tests fonctionnels et de charge dans un seul outil. Pour une alternative moderne, on utilise deux outils spécialisés.
Apidog pour les tests fonctionnels
Apidog gère la conception d’API, les tests REST/GraphQL/gRPC/WebSocket, le Smart Mock et la documentation. Les tests sont en JavaScript. Intégration CI/CD via la CLI Apidog.
k6 pour les tests de charge
k6 gère la charge/performance, avec des scripts JavaScript exécutés localement ou sur k6 Cloud. Intégration CI/CD via CLI.
Les deux outils s’appuient sur la même spec OpenAPI :
- Apidog importe la spec pour les tests fonctionnels.
- k6 cible les mêmes endpoints pour le test de charge.
- Les modifications de l’API sont reflétées dans les deux suites.
Exemple de pipeline CI/CD :
stages:
- functional-tests
- load-tests
functional-tests:
stage: functional-tests
script:
- apidog run collection.json --environment staging
only:
- merge_requests
load-tests:
stage: load-tests
script:
- k6 run load-tests/api-load.js --env BASE_URL=$STAGING_URL
only:
- main
- Les tests fonctionnels s’exécutent à chaque merge request.
- Les tests de charge s’exécutent à chaque merge sur
main. - Régressions fonctionnelles détectées tôt, validation de charge régulière en production.
Comparatif coûts :
- ReadyAPI + LoadUI Pro (10 users) : 7 490 $ à 20 000 $/an.
- Apidog Basic (10 users) + k6 open source : ~1 080 $/an.
- Apidog Basic + k6 Cloud : ~1 668 $/an.
Même en incluant k6 Cloud, la pile moderne reste bien moins chère.
FAQ
k6 prend-il en charge les tests de charge SOAP ?
k6 peut envoyer des POST HTTP avec du XML, mais sans import WSDL ni tooling SOAP. Pour les API REST, k6 excelle. Pour SOAP, LoadUI Pro reste meilleur.
Puis-je convertir des tests de charge ReadyAPI vers k6 ?
Non, il n’existe pas de convertisseur automatique. Vous devrez réécrire les scénarios en JavaScript pour k6 (comptez quelques heures par scénario). La syntaxe de k6 est généralement plus simple.
Combien d’utilisateurs virtuels k6 peut-il exécuter sur un laptop ?
Entre 1 000 et 10 000 utilisateurs virtuels sur un laptop moderne, selon la complexité. ReadyAPI/LoadUI Pro plafonne souvent à quelques centaines à cause de la JVM.
Gatling prend-il en charge les tests de charge gRPC ?
Depuis la v3.10+, Gatling supporte gRPC de façon expérimentale. k6 propose un support gRPC natif et mature.
Peut-on exécuter k6 sans cloud ?
Oui, k6 open source fonctionne localement sans k6 Cloud. Le cloud ajoute la charge distribuée et la conservation historique.
LoadUI Pro compte-t-il dans le nombre de licences ReadyAPI ?
Oui, LoadUI Pro est inclus dans certaines éditions ReadyAPI : le nombre d’utilisateurs s’applique à l’ensemble. Pour l’exécution sur CI, vérifiez votre contrat SmartBear.
En résumé, LoadUI Pro reste pertinent pour les équipes déjà engagées sur ReadyAPI. Pour les autres, k6 propose une approche plus économique, plus scalable et plus adaptée aux workflows modernes. En l’associant à Apidog pour les tests fonctionnels, vous obtenez une stack de test API complète, moderne et abordable.
Top comments (0)