218 votes

La meilleure façon de tester un site web

C'est peut-être la mauvaise question à poser, mais quelle est la meilleure façon de reproduire une charge importante sur une application web asp.net ? Existe-t-il un moyen facile de simuler de nombreuses requêtes sur des pages particulières ? Ou la meilleure chose à faire est d'utiliser un profileur pour suivre une seule demande et ensuite déterminer si les performances sont correctes ?

Il serait bon de savoir dans quelle mesure une application web fonctionne avec une spécification de serveur. J'aimerais pouvoir simuler un trafic important sur mon serveur de test afin de savoir si le serveur de production est suffisamment performant (notamment en ce qui concerne les performances de iis/asp.net et non de la base de données).

0 votes

Si vous regardez le contenu connexe, il y a pas mal de messages sur ce sujet. Voir les tests de stress, de charge et de performance. Et il n'est pas nécessaire d'être spécifique à asp.net, n'importe quel outil http peut faire l'affaire.

2 votes

Vous avez raison, mais les réponses sont différentes ici et ailleurs. Il semble que cela valait la peine de demander à nouveau.

18 votes

La question a été fermée car elle n'était pas constructive, mais elle a obtenu +126, a été étoilée 65 fois et a été vue 83 243 fois. :)

81voto

happyhardik Points 4020

Essayez http://loadimpact.com le meilleur que j'ai trouvé jusqu'à présent, mais je n'ai pas trouvé d'alternative à celui-ci.

0 votes

Je l'ai également essayé. Pour des tests de charge simples, il est génial, rapide et facile à configurer.

9 votes

Mais cela ne fonctionne que pour les sites publics.

1 votes

Cet outil ne peut pas simuler l'exécution de différentes actions sur le site web.

59voto

fmsf Points 13399

Je vous suggère de faire d'abord des tests automatisés. Utilisez sélénium pour cela.

Ensuite, déployez selenium grid pour tester sur plusieurs ordinateurs en même temps.

Bien que Selenium, en tant qu'outil de test automatisé, fonctionne assez rapidement, ce qui permet de réaliser un mini test de résistance. Si vous faites tourner la même automatisation sur plusieurs ordinateurs de votre réseau en même temps, vous pourrez voir comment elle se comporte.

Si vous voulez enregistrer les temps de réponse, ils ont une api cool que vous pouvez utiliser pour écrire quelques scripts pour exécuter vos automatisations.

Edit : Selenium est assez facile à utiliser, et il fait des assertions sur le contenu des pages si vous voulez tester le contenu. Il copie également votre mouvement à travers la page si vous le souhaitez (ce serait ma suggestion) : naviguez juste beaucoup dans la page, puis enregistrez-la pour l'automatisation. Évitez de mettre des assertions pour que le selenium puisse fonctionner plus rapidement.

1 votes

Nous utilisons sélénium de manière intensive pour les tests d'interface utilisateur, et je viens d'avoir une conversation avec notre responsable de l'assurance qualité sur la possibilité de déployer une application "payload" sur toutes nos machines d'utilisateur qui pourrait déclencher un test sélénium à un moment programmé. Ou encore mieux, un ensemble de boîtes virtuelles qui martèlent toutes le site en même temps.

1 votes

Josh, c'est l'idée derrière Selenium-Grid...

63 votes

Selenium est un outil intéressant, mais il ne me semble pas être un moyen efficace de tester quelque chose.

55voto

Joachim Sauer Points 133411

JMeter serait l'un de ces outils. Il peut être un peu difficile à apprendre et à configurer, mais cela en vaut généralement la peine.

20 votes

Très difficile à apprendre, je n'ai même pas pu commencer ! ;P

1 votes

Oui, c'est difficile à apprendre. J'essaie d'effectuer un test de charge pour un site Web sur mon hôte local, afin d'obtenir des statistiques. Ce que je veux savoir, c'est combien de temps il faut pour charger un site Web lorsque 1000 utilisateurs l'utilisent simultanément. Je continue à naviguer sur SO pour obtenir une réponse :)

0 votes

Pouvez-vous également indiquer le lien d'un tutoriel pour aller avec cela ? C'est une interface bizarre ...

38voto

Pierre Points 1854

El ab (banc apache) vous permet d'envoyer de nombreuses requêtes à une seule page et vous spécifiez le nombre de clients à utiliser et le nombre de connexions simultanées que vous souhaitez.

Il peut s'agir de la première étape du développement d'un site. Il suffit de tester quelques pages avec une charge spécifique. Cette méthode d'évaluation peut présenter certains problèmes, comme la surutilisation de la mise en cache.

Plus tard, vous voudrez peut-être un outil qui simule un trafic concret et non pas une seule page. Je n'ai pas encore de référence à portée de main sur un tel outil.

10voto

mcveat Points 913

Peut-être broyeur vous aidera ? Vous pouvez simuler une demande concurrente par des threads et des processus légers ou distribuer le test sur plusieurs machines. Je l'utilise intensivement avec succès à chaque fois.

1 votes

J'ai oublié d'ajouter qu'il est piloté par des scripts Jython.

16 votes

Je croyais que Grinder était une application ?

14 votes

Il est hors de question que je clique sur ce lien sur mon ordinateur de bureau

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X