Automatisation des tests - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Automatisation des tests

Les tests automatisés avec un cadre et des outils spécialisés peuvent réduire l'intervention humaine et optimiser la qualité. Les tests de performance automatisés ne sont pas différents des tests d'automatisation tels que les tests unitaires et les tests d'intégration.

Utilisez DevOps des pipelines aux différentes étapes pour les tests de performance.

Le diagramme du processus montre les cinq étapes.

Les cinq étapes du pipeline d'automatisation des tests sont les suivantes :

  1. Configuration : utilisez les approches de données de test décrites dans la section Génération de données de test pour cette étape. La génération de données de test réalistes est essentielle pour obtenir des résultats de test valides. Vous devez créer avec soin diverses données de test couvrant un large éventail de cas d'utilisation et correspondant étroitement aux données de production réelles. Avant d'exécuter des tests de performances complets, vous devrez peut-être exécuter des tests d'essai initiaux pour valider les scripts de test, les environnements et les outils de surveillance.

  2. Outil de test — Pour effectuer les tests de performance, sélectionnez un outil de test de charge approprié, tel que JMeter ou GHz. Déterminez la solution la mieux adaptée aux besoins de votre entreprise en termes de simulation de charges d'utilisateurs réelles.

  3. Exécution des tests : une fois les outils et les environnements de test établis, exécutez des tests de end-to-end performances sur une plage de charges utilisateur et de durées attendues. Tout au long du test, surveillez de près l'état du système testé. Il s'agit généralement d'une étape de longue haleine. Surveillez les taux d'erreur pour l'invalidation automatique des tests et arrêtez le test s'il y a trop d'erreurs.

    L'outil de test de charge fournit des informations sur l'utilisation des ressources, les temps de réponse et les goulots d'étranglement potentiels.

  4. Rapports de test — Collectez les résultats des tests ainsi que la configuration des applications et des tests. Automatisez la collecte de la configuration des applications, de la configuration des tests et des résultats, ce qui permet d'enregistrer les données relatives aux tests de performance et de les stocker de manière centralisée. La gestion centralisée des données de performance permet de fournir de bonnes informations et de définir les critères de réussite de manière programmatique pour votre entreprise.

  5. Nettoyage : après avoir effectué un test de performance, réinitialisez l'environnement de test et les données pour préparer les essais suivants. Tout d'abord, vous annulez les modifications apportées aux données de test pendant l'exécution. Vous devez restaurer les bases de données et les autres banques de données dans leur état d'origine, en rétablissant tous les enregistrements nouveaux, mis à jour ou supprimés générés pendant le test.

Vous pouvez réutiliser le pipeline pour répéter le test plusieurs fois jusqu'à ce que les résultats reflètent les performances souhaitées. Vous pouvez également utiliser le pipeline pour vérifier que les modifications de code n'altèrent pas les performances. Vous pouvez exécuter des tests de validation de code en dehors des heures de bureau et utiliser les données de test et d'observabilité disponibles pour le dépannage.

Les meilleures pratiques sont les suivantes :

  • Enregistrez l'heure de début et de fin et générez automatiquement des URL pour la journalisation. Cela vous aide à filtrer les données d'observabilité dans la fenêtre temporelle appropriée. Systèmes de surveillance et de suivi.

  • Injectez des identifiants de test dans l'en-tête lors de l'appel des tests. Les développeurs d'applications peuvent enrichir leurs données de journalisation, de surveillance et de suivi en utilisant l'identifiant comme filtre dans le backend.

  • Limitez le pipeline à une seule exécution à la fois. L'exécution de tests simultanés génère du bruit susceptible de prêter à confusion lors du dépannage. Il est également important d'exécuter le test dans un environnement de performance dédié.

Outils d'automatisation des tests

Les outils de test jouent un rôle important dans toute automatisation des tests. Les choix les plus courants pour les outils de test open source sont les suivants :

  • Apache JMeter est un outil aguerri. Au fil des ans, Apache JMeter est devenu plus fiable et dispose de fonctionnalités supplémentaires. Grâce à l'interface graphique, vous pouvez créer des tests complexes sans connaître de langage de programmation. Des entreprises telles que Apache JMeter sont BlazeMeter compatibles.

  • K6 est un outil gratuit qui offre une assistance, un hébergement de la source de charge et une interface Web intégrée pour organiser, exécuter et analyser les tests de charge.

  • Le test de charge Vegeta suit un concept différent. Au lieu de définir la simultanéité ou d'imposer une charge à votre système, vous définissez un certain taux. L'outil crée ensuite cette charge indépendamment des temps de réponse de votre système.

  • Hey et ab, l'outil d'analyse comparative du serveur HTTP Apache, sont des outils de base que vous pouvez utiliser depuis la ligne de commande pour exécuter la charge spécifiée sur un seul point de terminaison. C'est le moyen le plus rapide de générer une charge si vous disposez d'un serveur sur lequel vous pouvez exécuter les outils. Même un ordinateur portable local sera performant, même s'il n'est peut-être pas assez puissant pour produire une charge élevée.

  • ghz est un utilitaire de ligne de commande et un package Go pour les tests de charge et l'analyse comparative des services gRPC.

AWS fournit le test de charge distribué sur la AWS solution. La solution crée et simule des milliers d'utilisateurs connectés qui génèrent des enregistrements transactionnels à un rythme constant, sans qu'il soit nécessaire de configurer des serveurs. Pour plus d'informations, consultez la bibliothèque de AWS solutions.

Vous pouvez l'utiliser AWS CodePipeline pour automatiser le pipeline de tests de performances. Pour plus d'informations sur l'automatisation de vos tests d'API en utilisant CodePipeline, consultez le AWS DevOps blog et la AWS documentation.