Vous pensez donc aux tests de charge.

Peut-être que vous êtes frustré par les solutions actuelles que vous utilisez et que vous trouvez qu'il est trop difficile d'écrire et de maintenir vos tests. Ou peut-être que tu penses à faire des tests de charge pour la première fois. Quoi qu'il en soit, c'est une excellente première étape pour penser aux tests de charge - de nombreuses entreprises ne le font pas et en subissent les conséquences.

Il existe un lien établi entre les performances des applications et les mesures commerciales essentielles, telles que les revenus, les inscriptions des clients ou la satisfaction des clients plus générale. Toutes les entreprises qui font des affaires sur le Web devraient vouloir s'assurer que les performances n'ont pas d'impact négatif sur ces mesures clés. Même lorsque ces mesures s'améliorent, vous constaterez peut-être que l'application pourrait mieux fonctionner pour consommer moins de ressources, ce qui vous permet, ainsi qu'à votre utilisateur, d'économiser de l'argent.

Que vous soyez novice dans le domaine des tests de charge ou que vous ayez de l'expérience dans le domaine, vous êtes probablement au courant de la gamme vertigineuse d'outils et d'approches disponibles pour faire le travail. Aujourd'hui, j'aimerais vous parler de mon nouvel outil de test de charge préféré - Élément d'inondation.

inondation

De nombreux outils populaires fonctionnent au niveau du protocole - ils tentent d'estimer le comportement des utilisateurs sur votre application en émettant des requêtes réseau. Cependant, dans le World Wide Web d'aujourd'hui, les applications Web deviennent de plus en plus sophistiquées et utilisent plus que jamais la liste toujours croissante de fonctionnalités des navigateurs.

Même des applications apparemment simples comme une boutique en ligne utilisent une pléthore de fonctionnalités de navigateur pour rendre l'expérience de choix des articles, de commande et de paiement en ligne aussi fluide que possible pour l'utilisateur.

niveau de test de charge

Et donc, à l'ère moderne du Web, les tests utilisateur au niveau du protocole (PLU) ne peuvent nous donner qu'une grande partie de l'image des performances de notre application. En revanche, de nouveaux outils comme Flood Element testent en simulant le comportement des utilisateurs à l'aide de vrais navigateurs Web. Nous appelons cette approche les utilisateurs au niveau du navigateur (BLU).

Dans Flood Element, le comportement simulé de l'utilisateur est défini à l'aide d'actions simples et naturelles telles que cliquer sur des liens et des boutons, remplir des formulaires Web, etc. Une fois que vous avez défini le comportement, il est facile d'exécuter à grande échelle sur flood.io - et à grande échelle, je veux dire des milliers d'utilisateurs et du monde entier!

Les tests de charge avec Flood Element peuvent vous aider à développer une vue holistique et intuitive des performances de votre application telles qu'elles sont vécues par un utilisateur. Étant donné que penser en tant qu'utilisateur est ce que nous faisons tous naturellement lorsque nous sommes nous-mêmes utilisateurs, il est également beaucoup plus confortable de commencer avec un test Element BLU qu'avec des outils PLU traditionnels.

inondation-bleu-plu
Les BLU vous aident à obtenir une vue réaliste des performances de l'ensemble de votre application, de haut en bas. Les PLU testent uniquement ce qui se trouve sous la ligne de flottaison - votre réseau et votre infrastructure de serveur.

The holistic view

Utiliser Flood Element pour mesurer les performances de l'ensemble de votre application du point de vue des utilisateurs est un excellent moyen de développer une vue holistique des performances de votre application et ainsi de se défendre contre les changements inexpliqués - qu'il s'agisse d'anomalies temporaires ou de régressions dans le code.

Les tests Flood Element BLU fournissent une vision des performances beaucoup plus proche de l'expérience utilisateur. Ils prennent en compte chaque partie d'une performance qu'un utilisateur expérimentera: les performances du réseau, mais aussi les performances des scripts sur la page ainsi que les scripts tiers tels que les analyses ou les compléments publicitaires (en fait, nos tests sont si réalistes que vous devez prendre des mesures pour ne pas créer de fausses données dans Google Analytics.)

Si l'exécution d'un test de charge BLU avec Element vous donne une vue holistique des performances de votre application à un moment donné, l'exécution de tests régulièrement vous permet de vous faire une idée de si votre application devient plus rapide ou plus lente ... peut-être soudainement comme dans le scénario du widget d'inscription .

Writing a test

Voyons maintenant à quel point il est facile de démarrer avec Flood Element.

Les scripts d'élément sont écrits en Manuscrit ou JavaScript moderne. Pour une expérience optimale, nous vous recommandons d'utiliser la remarquable combinaison de TypeScript édité à l'aide de VS Code, car elle vous apporte une aide utile dans le développement de vos tests.

Vous pouvez installer Element en utilisant les instructions de démarrage ici: https://element.flood.io/

Une fois installé, modifiez et testez votre script localement, et lorsque vous êtes prêt à le télécharger sur flood.io pour effectuer un test de charge à grande échelle en vous inscrivant à un essai ici: https://flood.io/load-performance-testing-tool/free-load-testing-trial/

Un test élémentaire BLU pour le scénario d'inscription ci-dessus pourrait ressembler à

flood-element-bleu

Si vous êtes familiarisé avec les tests au niveau du protocole, vous savez que tous les délais sont organisés autour des transactions demande-réponse. Lorsque vous apprenez à tester au niveau du navigateur, il y a quelques subtilités supplémentaires à prendre en compte lors de la finalisation de vos tests. En particulier, il n'y a pas de véritables regroupements temporels intégrés, nous devons donc introduire le nôtre dans la structure de notre test.

L'approche la plus simple pour regrouper les horaires est d'attendre que les éléments nécessaires apparaissent sur la page - comme le ferait un utilisateur.

À partir du scénario ci-dessus, nous souhaitons chronométrer l'expérience utilisateur de l'inscription, mais pas tant le chargement de la page. Ainsi, dans la première étape, nous visitons l'URL et attendons que la page atteigne un état connu - jusqu'à ce que le titre soit affiché.

inondation-navigateur asynchrone

Ensuite, nous agissons que nous voulons garder un œil sur, à savoir remplir et soumettre l'inscription.

inondation-action

Il est maintenant temps d'enregistrer le script localement, afin que nous puissions télécharger le script sur Flood et l'exécuter avec des centaines, voire des milliers d'utilisateurs simultanés.

inondation-inscription-e1542466930327

  • Créer un projet

projet-inondation

  • Cliquez sur l'option «créer une inondation» dans votre nouveau projet

inondation-créer-projet-e1542468717797

  • Créez votre test à l'aide de l'option Flood Element

option d'élément d'inondation

  • Nommez votre test

nom-test-inondation

  • Téléchargez le script .ts que vous avez créé:

inondations-télécharger-scripts

  • Définissez le nombre de navigateurs (utilisateurs) ainsi que le nombre de régions pour obtenir le nombre total d'utilisateurs (# de navigateurs * # de régions). N'oubliez pas non plus de définir la durée de votre test:

inondation-configurer-charger

  • Lancez votre test et attendez que les résultats arrivent:

inondation-lancement-test-e1542468800174

  • Une fois les résultats obtenus, affichez votre graphique et passez à tous les domaines problématiques qu'ils peuvent mettre en évidence:

résultat du test d'inondation

Conclusion

Vous savez maintenant pourquoi (et comment) tester avec les utilisateurs au niveau du navigateur à l'aide de Flood Element. Avec cette nouvelle approche, nous avons éliminé une grande partie de la douleur liée à la création de tests de charge, et nous avons également rendu les résultats plus réalistes en même temps.

Cela peut sembler intimidant de tester avec des milliers d'utilisateurs, mais il est facile de prendre chaque élément une étape à la fois:

  1. Télécharger l'élément
  2. Écrivez un test simple localement, couvrant votre scénario clé (c.-à-d., Paiement)
  3. Exécutez le test localement avec 'element run' pour vous assurer que le test s'exécute complètement
  4. Téléchargez votre test sur Flood et exécutez-le avec 5 à 10% de votre charge maximale (c'est-à-dire, si votre charge maximale est de 5,000 250 utilisateurs, commencez par 500 à XNUMX utilisateurs)
  5. Évaluez les résultats et modifiez votre script et votre application au besoin
  6. Téléchargez votre test sur Flood et exécutez-le avec 50 à 100% de votre charge maximale (c'est-à-dire si votre charge maximale est de 5,000 2,500 utilisateurs, puis exécutez avec 5,000 XNUMX à XNUMX XNUMX utilisateurs)
  7. Augmentez votre couverture de test pour couvrir les scénarios supplémentaires nécessaires, jusqu'à ce que vous obteniez la couverture de test souhaitée.

En fonction de la complexité de votre scénario de test, vous pourrez peut-être être opérationnel avec des milliers d'utilisateurs en moins d'une journée. Alors ne perdez pas de temps - dirigez-vous vers https://element.flood.io pour commencer à expérimenter avec Flood Element dès aujourd'hui!