Octoperf
OctoPerf est un outil de test de performance conçu pour permettre aux équipes de réaliser des tests de charge et de performance de manière intuitive, rapide et rentable. Il se distingue par son interface conviviale et son intégration avec des technologies modernes pour aider à évaluer la robustesse des applications et des systèmes.
De plus, leur objectif initial était de rendre les tests de charge accessibles à toutes les équipes, même celles qui n’ont pas d’expertise technique avancée, tout en gardant des performances comparables aux solutions plus coûteuses et complexes comme LoadRunner.
Elle a été fondée en 2014 par une équipe d’ingénieurs spécialisés dans les tests de performance. Le siège social de l’entreprise est situé à Aubagne, dans le sud de la France.
Fonctionnalités principales
- OctoPerf est souvent perçu comme un équivalent technique et performant à NeoLoad, tout en offrant une interface moderne et intuitive
- Création de scénarios de test sans codage :
- Interface graphique permettant de concevoir facilement des scénarios.
- Éditeur de scénarios avec enregistrement des actions utilisateur
- Bien que l’outil évite de recourir au Test as Code, OctoPerf offre également la possibilité d’enrichir ses scripts via du code pour répondre aux besoins des équipes techniques.
- Simulation réaliste des charges :
- Génération de trafic avec des utilisateurs virtuels depuis le cloud ou en local. OctoPerf a démontré sa capacité à gérer jusqu’à 1 million d’utilisateurs virtuels (VU) simultanés dans un environnement SaaS.
- Prise en charge de différents protocoles (HTTP, HTTPS, WebSocket, etc.).
- Analyse et reporting :
- Tableaux de bord interactifs pour suivre les performances en temps réel.
- Export des résultats sous divers formats (PDF, Excel, etc.).
- Identification rapide des goulots d’étranglement.
- Intégration continue et API REST :
- Connexions aux pipelines CI/CD (Jenkins, GitLab, Azure DevOps, etc.).
- Utilisation de l’API REST pour automatiser les tests.
- Mode SaaS et On-Premise : déploiement flexible pour les tests cloud ou internes (self-hosted). Cette option permet aux entreprises ayant des exigences de sécurité élevées, comme les banques, les assurances ou les administrations, de travailler dans un environnement entièrement cloisonné et sécurisé
- Support des tests sur des applications modernes :
- Prise en charge de SPA (Single Page Applications) et applications avec AJAX.
- Paramétrage avancé pour la gestion des données dynamiques (correlation, variables).
- OctoPerf propose une fonctionnalité pratique de capture de chemin (Path) et d’importation de fichiers .har. Cela permet aux équipes de gagner du temps dans la préparation des scénarios en utilisant directement les données capturées lors de sessions utilisateur réelles.
Avantages
- Facilité d’utilisation :
- Moins technique que certains outils comme JMeter.
- Idéal pour les équipes souhaitant une solution rapide à mettre en œuvre.
- Coût compétitif :
- Prix ajustable en fonction des besoins (paiement à la demande ou forfaits).
- Moins coûteux que d’autres outils comparables pour des tests cloud.
- Flexibilité :
- Possibilité de combiner des charges locales et cloud.
- Tests adaptables pour divers protocoles et environnements.
- Rapidité de mise en œuvre :
- Mise en place rapide grâce à des configurations prédéfinies.
- L’enregistrement des scénarios réduit le temps de préparation.
- Support technique de qualité :
- Assistance réactive avec une documentation bien fournie.
- Version On-Premise, identique d’un point de vue UI à la SaaS, permet à aux clients ayant des contraintes de sécurité élevées (Banques / Assurances / Administrations etc…) de travailler dans un environnement parfaitement clos et sécurisé
Limitations
- Capacités avancées limitées : bien qu’il soit possible d’enrichir les scripts avec du code, OctoPerf n’est pas entièrement orienté vers le Test as Code, ce qui peut ne pas convenir aux équipes privilégiant cette approche pour des scénarios très complexes. D’autant plus que les scripts peuvent augmenter le poids des utilisateurs virtuels. Mais si vous devez écrire des scripts, privilégiez le Groovy car c’est le seul langage qui peut être compilé dans JMeter.
Cas d’utilisation
- Tests de performance web : vérifier la capacité de charge des sites web e-commerce, plateformes SaaS ou portails publics.
- Test des SAP (Single Page Applications) et API REST.
- Simulation de scénarios réalistes en évaluant des performances dans des conditions proches de la réalité avec des utilisateurs globaux.
- Approches DevOps et CI/CD en automatisant des tests de charge dans les pipelines de déploiement continu.
- Tests de charge ponctuels : idéal pour les entreprises qui ne réalisent pas de tests de charge régulièrement, grâce à la facturation à l’usage.
Le fait qu’OctoPerf soit une solution française est également un atout pour les entreprises soucieuses de collaborer avec des fournisseurs européens, en particulier pour des questions de conformité RGPD et de support local.
La création de compte sur OctoPerf est simple et rapide, sans nécessiter de carte bancaire. L’équipe commerciale se distingue par sa disponibilité et son professionnalisme, avec des canaux de contact efficaces (email et LinkedIn). Ils sont également prêts à organiser une démonstration personnalisée pour comprendre les besoins spécifiques de votre équipe et vous accompagner dans votre essai.
Connexion
- Rendez-vous sur le site: https://octoperf.com.
- Inscrivez-vous ou connectez-vous avec vos identifiants.
- Une fois connecté, vous arrivez sur le tableau de bord.

Créez un nouveau workspace:
- Cliquez sur le bouton « Create workspace ».
- Donnez un nom à votre workspace (par exemple : « Test de performance API »).
- Ajoutez une description (facultatif) et validez.

Créez un nouveau projet:
- Cliquez sur le bouton « Create project ».
- Donnez un nom à votre projet (par exemple : « Test de JSONPLACEHOLDER »).
- Ajoutez une description (facultatif) et validez.


Choix de la création d’utilisateur virtuel :
- Use sample : si vous débutez, cette option permet d’utiliser un exemple prédéfini pour vous familiariser avec l’outil.
- Manual creation : idéal si vous souhaitez créer un scénario en ajoutant manuellement des requêtes HTTP, REST API ou des scripts Selenium.
- HAR Record : si vous avez déjà enregistré vos interactions avec l’application (par exemple via Fiddler ou les outils réseau du navigateur), vous pouvez importer un fichier HAR pour générer automatiquement un scénario.
- JMeter project (JMX) : si vous avez un projet JMeter existant, importez le fichier .jmx.
- Postman collection : si vous utilisez Postman, vous pouvez importer une collection JSON pour tester vos API.
- Playwright project : si vous avez un projet Playwright, cette option vous permet d’importer vos configurations.
- Fragments : permet de créer des actions partagées ou réutilisables pour d’autres scénarios.
Création d’un test de base
Pour notre test, prenez “manual creation” pour définir les requêtes API manuellement.
Puis, choisissez “Rest API”, cette option est spécifiquement conçue pour tester les requêtes HTTP/HTTPS avec les méthodes GET, POST, PUT ou DELETE;
- JMeter project (JMX) : si vous avez un projet JMeter existant, importez le fichier .jmx.
- Postman collection : si vous utilisez Postman, vous pouvez importer une collection JSON pour tester vos API.
- Playwright project : si vous avez un projet Playwright, cette option vous permet d’importer vos configurations.
- Fragments : permet de créer des actions partagées ou réutilisables pour d’autres scénarios.

Ajoutez les requêtes HTTP :

Puis cliquez sur import, puis selectionnez votre virtual user.
Choisissez votre emplacement :

Cliquez sur run validation, un bouton launch test apparait. Cliquez dessus

Par défaut, le test va se lancer sur 10min pour un utilisateur. Vous pouvez changer cette configuration en cliquant sur le bouton “Configure” puis scaling

Pour le test, nous allons utiliser un utilisateur sur 2 min.

Cliquez sur launch test puis configurer votre rapport :

Lancer le test tout de suite. Vous pouvez également le planifier si vous avez besoin.

Vous pouvez voir la progression de l’exécution :

Les graphiques sont bien plus complets

Hit count (Nombre d’exécutions) : 117
- Cela indique que 117 requêtes ont été effectuées pendant le test.
Error percentage (Pourcentage d’erreurs) : 0%
- Ce pourcentage confirme qu’il n’y a eu aucune requête échouée.
Latency standard deviation (Écart-type de la latence) : 0.008 secondes
- L’écart-type de la latence est très faible (8 ms), ce qui indique une grande stabilité des temps de réponse.
- Cela signifie que les temps de réponse sont homogènes et qu’il n’y a pas eu de pics ou de lenteurs significatives.
Error count (Nombre d’erreurs) : 0
- Aucun échec n’a été détecté parmi les 117 requêtes.
- Cela montre que toutes les requêtes ont reçu une réponse correcte du serveur
- Cela confirme une bonne stabilité du système ou de l’API testée.
Average response time (Temps de réponse moyen) : 0.02 secondes
- Le temps moyen de réponse est 20 ms, ce qui est extrêmement rapide.
Received data rate (Taux de données reçues) : 61.9 KB/sec
- Cela correspond au débit moyen des données téléchargées depuis le serveur.
- Une valeur relativement faible (ce qui est attendu pour une API REST qui ne renvoie probablement que des données JSON).

Virtual user count (Nombre d’utilisateurs virtuels, violet) :
- Il n’y a bien qu’un seul utilisateur
Hit Rate (Taux d’exécutions, vert) :
- En moyenne, environ 1,2 exécutions par seconde ont été réalisées.
- Cette métrique est stable avec de légères variations.
- Cela montre que le serveur peut traiter les requêtes en continu à un rythme constant.
Average response time (Temps de réponse moyen, cyan) :
- Le temps de réponse est très stable, oscillant autour de 0,02 à 0,03 secondes.
- Cela reflète une bonne performance du serveur sous cette charge faible.
- Aucune hausse significative du temps de réponse n’est visible, même pendant les pics d’exécutions.

Resp time avg (Average Response Time), temps de réponse moyen pour chaque endpoint (en secondes).
- Les valeurs sont extrêmement basses, ce qui indique une très bonne performance de l’API.
- /posts : 0.028 secondes (28 ms)
- /comments : 0.018 secondes (18 ms)
- /users : 0.014 secondes (14 ms)
Resp time perc 90 (90e percentile), le temps de réponse maximum pour 90 % des requêtes.
- Ces valeurs sont également très basses, reflétant une excellente stabilité.
- /posts : 0.037 secondes (37 ms)
- /comments : 0.024 secondes (24 ms)
- /users : 0.019 secondes (19 ms)
Hit count (Nombre d’exécutions) :
- Chaque endpoint a été appelé 39 fois.
- Les résultats sont bien répartis, ce qui montre que toutes les requêtes ont été envoyées correctement.
Error % (Pourcentage d’erreurs) :
- Aucun échec enregistré (0 % d’erreurs pour tous les endpoints).

Average connect time : temps nécessaire pour établir la connexion au serveur, indique la réactivité initiale du serveur à établir une connexion réseau avec le client.
- Très faible dans votre cas (proche de zéro), ce qui signifie que le serveur est rapidement accessible.
Average latency : temps écoulé entre l’envoi de la requête et la réception de la première réponse (avant que le contenu complet ne soit téléchargé).
- La latence est stable, proche de zéro également (environ 0,01 à 0,02 secondes).
Average response time : temps total nécessaire pour que la réponse soit reçue intégralement par le client, correspond à la somme de la latence et du temps nécessaire pour télécharger les données.
- Les temps de réponse sont légèrement plus élevés (0,02 à 0,03 secondes), mais restent extrêmement rapides.

Le graphique en ligne (haut) représente les temps de réponse pour chaque endpoint (GET /posts, GET /comments, GET /users) en fonction du temps.
- Chaque ligne colorée correspond à un endpoint spécifique :
- Violet : /posts
- Bleu clair : /comments
- Jaune : /users
- Le graphique en barre (bas) montre le temps de réponse maximal atteint par chaque endpoint pendant le test. Ces barres permettent de comparer les endpoints en un coup d’œil.

Axe X : percentiles (%), qui représentent la répartition des temps de réponse en fonction des requêtes.
- Par exemple, le 50e percentile (ou médiane) montre que 50 % des requêtes ont un temps de réponse inférieur à cette valeur.
Axe Y : Temps de réponse (en secondes).

Débit global (en kilobits par seconde, Kb/s ou Mb/s), représentant la quantité de données transférées sur le réseau
- GET /comments (violet) a le débit le plus élevé, ce qui indique que cette requête transfère le plus de données par rapport aux autres endpoints.

Vous pouvez exporter le rapport en PDF et vous pouvez personnaliser les métriques visibles dans les rapports.
- GET /posts (bleu) a un débit modéré.
- GET /users (jaune) a un débit très faible, suggérant que la réponse associée est beaucoup plus légère.
SLA profils
Les SLA profiles (Service Level Agreement Profiles) permettent de définir des seuils ou objectifs de performance pour vos tests. Ces seuils sont utilisés pour mesurer si votre application ou système respecte les attentes en termes de qualité de service.
Objectif des SLA profiles :
- Évaluer si votre système respecte les niveaux de performance prédéfinis.
- Identifier rapidement les problèmes en cas de dépassement des seuils.
- Générer des rapports détaillés pour les équipes métier ou techniques, avec une évaluation claire de la conformité.
Comment configurer les SLA ?

Options disponibles pour les SLA Profiles :
- % of errors (Pourcentage d’erreurs) :
- Permet de surveiller le pourcentage de requêtes ayant échoué.
- Exemple d’utilisation :
- Déclencher un avertissement si plus de 5 % des requêtes échouent.
- Définir un seuil critique si plus de 10 % des requêtes échouent.
- Response time (Temps de réponse) :
- Suivi du temps de réponse des requêtes pour garantir qu’il reste sous un certain seuil.
- Exemple d’utilisation :
- Avertissement si 95 % des requêtes dépassent 200 ms.
- Seuil critique si 95 % des requêtes dépassent 500 ms.
- % of successful hits (Pourcentage de succès des requêtes) :
- Inverse du pourcentage d’erreurs, cette métrique mesure le ratio de requêtes ayant abouti avec succès.
- Exemple d’utilisation :
- Définir un objectif pour que 99 % des requêtes soient réussies.
- Response size (Taille de la réponse) :
- Permet de contrôler la taille des réponses HTTP (en KB ou MB) et de détecter les anomalies.
- Exemple d’utilisation :
- Déclencher une alerte si la taille des réponses dépasse une limite définie.
- Mise en place
- Sélectionnez une des métriques selon vos besoins (par exemple, % of errors si vous souhaitez surveiller les erreurs).
- Une fois la métrique choisie, vous pourrez configurer des seuils personnalisés :
- Warning : Avertissement si une limite est atteinte (par exemple, 5 % d’erreurs).
- Critical : Situation critique si une autre limite plus stricte est dépassée (par exemple, 10 % d’erreurs).

Importez vos scénarios Jmeter
OctoPerf permet d’importer directement des fichiers JMeter au format .jmx. Cette fonctionnalité peut vous aider si vous souhaitez migrer ou enrichir vos scénarios de test existants en exploitant la puissance et la simplicité d’OctoPerf.
Les avantages sont :
- Réutilisation des scripts existants : Si vous avez déjà des scénarios de test créés avec JMeter, vous n’avez pas besoin de repartir de zéro avec OctoPerf. Cette compatibilité vous fait gagner du temps.
- Flexibilité : Vous pouvez travailler dans JMeter pour des cas spécifiques, puis profiter des fonctionnalités avancées d’OctoPerf (visualisation, collaboration, intégration cloud, etc.).
- Standardisation : Cela permet aux équipes habituées à JMeter de collaborer avec d’autres testeurs, moins techniques, grâce à l’interface OctoPerf.
Comment importer un script JMeter ?
- Rendez-vous dans l’onglet projets et sélectionnez votre projet ou créez en un nouveau.
- Cliquez sur le bouton Importer.
- Sélectionnez votre fichier JMX (format de script JMeter).

- Validation : OctoPerf analysera automatiquement votre fichier et convertira les éléments compatibles pour une utilisation directe.
Exportez vos scénarios OCTOPERF Vers json
OctoPerf offre la possibilité d’exporter vos scénarios de test au format JSON. Ce qui permet de :
- Sauvegarder vos scénarios : Vous pouvez exporter vos projets pour les archiver ou les réutiliser plus tard sur la plateforme OctoPerf.
- Partager avec votre équipe : Le fichier JSON peut être importé par d’autres utilisateurs d’OctoPerf pour collaborer ou effectuer des ajustements.
Le plugin maven d’octoperf
Le plugin vous permet de configurer vos tests directement dans un projet Maven.
<plugin>
<groupId>org.octoperf</groupId>
<artifactId>octoperf-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<apiKey>VOTRE_API_KEY</apiKey>
<projectId>VOTRE_PROJECT_ID</projectId>
<scenarioId>VOTRE_SCENARIO_ID</scenarioId>
</configuration>
</plugin>
Une fois configuré, le plugin permet d’exécuter vos scénarios avec une simple commande Maven :
mvn octoperf:run
Les résultats sont directement accessibles sur la plateforme OctoPerf, avec des graphiques et des rapports détaillés.
- Le plugin s’intègre parfaitement dans des outils CI/CD comme Jenkins, GitLab CI ou GitHub Actions.
- Vous pouvez automatiser vos tests de charge pour chaque déploiement ou mise à jour de votre application.
Vous pouvez également le configurer avec l’aide de l’interface et la documentation :
