Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Test de charge et de performance dans un pipeline de livraison DevOps

Par Sergueï Baranov

11 juillet 2017

6  min lire

Dans les environnements DevOps, il est de plus en plus recommandé d'exécuter des tests de performances dans le cadre du pipeline de livraison continue. Les tests de performance doivent donc faire partie intégrante de la livraison continue des applications.

De plus en plus d'équipes se rendent compte qu'une régression des performances peut avoir un impact aussi important sur la qualité des applications qu'une régression des fonctionnalités! Nous nous concentrons donc sur les tests de performances et sur la meilleure façon d'intégrer les tests de charge et de performances dans la livraison des applications.

Intégrez les tests de performance dans le pipeline de livraison continue

Vous pouvez commencer à intégrer des tests de performances dans le pipeline de livraison continue en ajoutant des tests de performances sélectionnés à Jenkins, ou à un outil d'intégration continue de votre choix, et en les exécutant régulièrement.

En fonction de vos besoins, vous pouvez exécuter des tests de performances à un ou plusieurs des points suivants de l'infrastructure de génération / test:

  • Après chaque construction avec un ensemble réduit de tests de performance «fumée».
  • Une fois par jour avec un ensemble plus complet de tests de performance.
  • Une fois par week-end ou en fonction de la disponibilité de l'infrastructure, avec un ensemble de tests de longue durée pour les tests d'endurance ou de tests de charge à volume élevé pour les tests de résistance.

Cependant, cela ne suffit pas en soi.

L'analyse manuelle des rapports de test de charge peut prendre du temps et exiger des compétences spéciales que tous les développeurs ne possèdent pas. Sans la capacité d'automatiser l'analyse des rapports de test de charge, l'examen des résultats des tests de performances devient un temps perdu. Les informations vitales sur les performances peuvent également être négligées. Dans de tels scénarios, vous exécutez peut-être des tests de performances en continu, mais leur avantage sera limité.

Comment optimiser les tests de performance avec une approche Shift-Left

Automatisez la collecte et l'analyse des résultats des tests de performance

Pour tirer pleinement parti des tests de performances continus, vous devez mettre en place un mécanisme efficace pour analyser les résultats des tests de performances. Test de charge Parasoft et son LoadTest Continuum (un module de Parasoft SOAtest) vous fournissent des outils qui vous aident à automatiser la collecte et l'analyse des résultats des tests de performances et vous donnent un aperçu des performances de votre application.

Comment configurer votre environnement pour une exécution continue des tests de performances

Les étapes suivantes vous aideront à configurer votre environnement pour une exécution continue des tests de performances avec Parasoft LoadTest et LoadTest Continuum:

  1. Passez en revue et configurez les métriques QoS du projet LoadTest pour l'automatisation.
  2. Déployez et configurez LoadTest Continuum pour la collecte de rapports de test de charge.
  3. Configurez les projets LoadTest en lots pour exécution.
  4. Commencez à exécuter des lots de projet LoadTest dans le cadre de l'intégration continue et utilisez LoadTest Continuum pour examiner et analyser régulièrement les résultats des tests de performances.

Je vais parcourir ces étapes individuellement plus en détail ci-dessous.

Étape 1 - Examiner et configurer les métriques QoS pour l'automatisation

Les mesures de qualité de service (QoS) de Parasoft LoadTest sont l'une des fonctionnalités clés pour automatiser l'analyse des résultats des tests de performance. Les métriques QoS réduisent de grandes quantités de données dans un rapport de test de charge en un ensemble de réponses de réussite / échec sur les performances de votre application. Parasoft LoadTest propose un ensemble complet de métriques QoS qui vont des métriques de seuil prêtes à l'emploi aux métriques à script personnalisé qui vous permettent d'utiliser l'API LoadTest pour l'analyse avancée des données de test de charge.

Pour préparer vos tests de performances pour l'automatisation, vous devez examiner les métriques QoS dans vos projets LoadTest. Exécutez un projet LoadTest et examinez le rapport: tous les critères de réussite et d'échec que vous utilisez pour analyser manuellement un rapport de test de charge doivent être représentés sous forme de métriques QoS. Convertissez autant de métriques que possible en métriques «numériques». Une métrique QoS numérique renvoie non seulement un résultat de réussite / échec, mais quantifie également un indicateur de performance clé pour cette métrique. Par exemple, une métrique qui valide un seuil d'utilisation du processeur fournirait également la valeur d'utilisation réelle du processeur sous forme de métrique numérique.

Les métriques numériques sont largement utilisées dans LoadTest Continuum pour tracer les performances des métriques au fil du temps:

1 Fig. Résultats de la métrique numérique tracés dans un rapport LoadTest Continuum.

Une fois que vous avez configuré les métriques QoS pour vos projets LoadTest, il est temps de configurer LoadTest Continuum pour la collecte et l'analyse des données de performance.

Étape 2 - Déployer et configurer LoadTest Continuum

Déployez et configurez l'archive de l'application Web LoadTest Continuum ltc.war (disponible dans le répertoire d'installation SOAtest / LoadTest à partir de la version 9.10.2), comme décrit dans la section «LoadTest Continuum» de la documentation LoadTest.

Étape 3 - Configurer les projets LoadTest en lots pour exécution

Combinez vos projets LoadTest dans des scripts .cmd pour une exécution par lots. Les scripts LoadTest .cmd vous permettent de spécifier des groupes de projets qui constitueront différents ensembles de tests de performances, tels que les tests «fumée», les tests quotidiens ou les tests du week-end mentionnés précédemment.

Configurez les scripts .cmd pour envoyer des données de rapport à LoadTest Continuum comme décrit dans la section «Envoi de rapports à LoadTest Continuum» de la documentation LoadTest. Configurez votre outil d'intégration continue pour exécuter des scripts LoadTest .cmd dans le cadre d'un processus de construction ou à intervalles réguliers. Par exemple, dans Jenkins, vous pouvez exécuter un script LoadTest .cmd à l'aide de l'étape de génération de commande par lots Execute Windows comme suit:

% SOATEST_HOME% \ lt.exe "-J-Xmx4096M -cmd -run"% WORKSPACE% \ ltcontinuum.cmd

Étape 4 - Configurer un tableau de bord dans Parasoft DTP

PAO Parasoft contient des tableaux de bord de reporting et d'analyse qui vous permettent de suivre la santé et l'avancement de votre projet logiciel avec une variété de widgets et de rapports.

Un continuum de test de charge Parasoft Widget PAO vous permet d'ajouter le résumé des résultats LoadTest le plus récent au tableau de bord de votre projet PAO, et offre un moyen rapide d'évaluer l'état des résultats des tests de performance dans votre routine quotidienne de revue de l'état du projet.

Le widget affiche le nombre de tests et de métriques totaux, réussis et échoués pour les exécutions de LoadTest les plus récentes. Pour afficher les résultats plus en détail, cliquez sur le lien du projet dans le widget, et la page LoadTest Continuum s'ouvrira dans un nouvel onglet.

2 Fig. Widgets LoadTest Continuum dans un tableau de bord PAO.

Pour configurer un widget HTML personnalisé LoadTest Continuum dans DTP, vous pouvez simplement suivre ces étapes:

  1. Dans le Centre de rapports Parasoft DTP, créez un nouveau tableau de bord ou ouvrez-en un existant.
  2. Appuyez sur Ajouter un widget. Dans la boîte de dialogue Ajouter un widget, sélectionnez Personnalisé -> Widget HTML personnalisé.
  3. Copiez le contenu du fichier suivant de l'installation de LoadTest Continuum dans la zone de texte HTML de la boîte de dialogue:% TOMCAT_HOME% \ webapps \ ltc \ dtp \ ltc_dtp_widget.html
  4. Modifiez le HTML avec vos paramètres personnalisés:
    1. Recherchez la fonction getServerURL (). Modifiez la valeur de retour avec l'hôte et le port de votre installation LoadTest Continuum.
    2. Recherchez la fonction getProjectName (). Modifiez la valeur de retour avec le nom du projet que vous souhaitez suivre dans le widget.
  5. Appuyez sur Créer.

Étape 5 - Examiner et analyser les résultats des tests de performance

Parasoft LoadTest Continuum sert à la fois de point de collecte pour vos rapports LoadTest et d'outil d'analyse qui organise les données de test de charge à partir de plusieurs exécutions. LoadTest Continuum organise les données en une pyramide d'informations qui vous permet de passer en revue les résultats de vos tests de performance à différents niveaux de détail, des résumés quotidiens de haut niveau en haut, aux résultats de métriques QoS au cœur, aux rapports de test de charge détaillés au bas:

Figue. 3. Le résumé quotidien de LoadTest Continuum et la vue des mesures de test.

Considérez le flux de travail suivant comme un exemple d'examen de test régulier (quotidien):

  1. Pour les tests échoués, suivez les étapes suivantes:
    1. Ouvrez la vue Historique des tests, vérifiez si le test échoue régulièrement ou sporadiquement. Le premier cas indiquerait probablement une régression; le second cas une instabilité.
    2. Inspectez les métriques ayant échoué du test:
      1. Pour une métrique numérique, ouvrez la vue graphique de l'historique des métriques. Utilisez le graphique d'historique des métriques pour obtenir des informations. Par exemple, si un test auquel appartient la métrique est instable, de petites fluctuations du graphique de métrique indiquent généralement que le seuil de métrique doit être ajusté. De grandes fluctuations indiquent des problèmes de code ou d'infrastructure.
      2. Ouvrez le lien Tous les graphiques de ce test. Vérifiez les graphiques des autres métriques numériques pour le même test pour les fluctuations qui n'ont pas franchi le seuil de métrique.
  2. Si vous n'avez pas configuré les widgets DTP LoadTest Continuum, commencez par vérifier les résumés de réussite / échec des tests et des métriques dans la page principale du projet LTC.
  3. Pour les projets qui ont échoué, suivez le lien vers la page du projet LTC pour examiner les détails.
  4. Commencez par vérifier l'état de vos dernières exécutions de test de charge dans les widgets LoadTest Continuum DTP.
  5. Faites de même pour le lien Tous les graphiques de cette métrique pour vérifier si des métriques similaires d'autres tests ont été affectées. Si oui, cela indique un problème systémique avec votre application ou infrastructure qui ne se limite pas à un seul test (voir Fig. 4).
  6. Pour une analyse plus approfondie, ouvrez les rapports de test de charge HTML ou binaire du test ayant échoué.

Figue. 4. Continuum de test de charge Tous les graphiques de la même vue métrique montrent l'amélioration des performances de la métrique% CPU sur plusieurs tests.

L'intégration d'un processus de test de performance dans le pipeline de livraison continue est essentielle pour garantir la qualité du logiciel. Pour tirer pleinement parti de ce processus, vous devez mettre en place un mécanisme efficace d'automatisation de l'analyse des résultats des tests de performance.

Soyez continu avec Parasoft

Vous pouvez vous installer avec Parasoft LoadTest et LoadTest Continuum à l'intérieur de Parasoft SOAtest, qui fournit tout ce dont vous avez besoin pour atteindre tous vos objectifs d'automatisation de l'analyse des résultats de test. Grâce à une automatisation sophistiquée des tests fonctionnels, vous pouvez accéder à des logiciels de meilleure qualité.

En savoir plus:

Débloquez les premiers tests de charge et de performance en utilisant vos tests fonctionnels existants.
Essayez Parasoft SOAtest

Par Sergueï Baranov

Sergei est un ingénieur logiciel principal chez Parasoft, se concentrant sur les tests de charge et de performance au sein de Parasoft SOAtest.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.