web-dev-qa-db-fra.com

Meilleur moyen de stresser un site web

C'est peut-être la mauvaise question à poser, mais quel est le meilleur moyen de répliquer une charge importante sur une application Web asp.net? Existe-t-il un moyen simple de simuler de nombreuses demandes sur des pages particulières? Ou bien est-il préférable d'utiliser un profileur pour suivre une seule demande et ensuite déterminer si les performances sont correctes?

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

203
Charlie Bear

Ma suggestion est que vous fassiez d’abord des tests automatisés. Utilisez sélénium pour cela.

Puis déployez la grille Selenium pour effectuer des tests sur plusieurs ordinateurs en même temps.

Bien que Selenium, en tant qu'outil de test automatisé, fonctionne assez rapidement, il s'agit d'un mini-test d'effort. Si vous installez simultanément la même automatisation sur plusieurs ordinateurs de votre réseau, vous pourrez voir comment elle se comporte.

Si vous souhaitez enregistrer les temps de réponse, ils ont une API intéressante que vous pouvez utiliser pour écrire des scripts afin d'exécuter vos automatisations.

Edit: Selenium est assez facile à utiliser et permet de vérifier le contenu de la page si vous souhaitez en tester le contenu. Il copie également votre mouvement sur la page si vous le souhaitez (ce serait ma suggestion). Il vous suffit de parcourir la page beaucoup, puis de l'enregistrer pour l'automatisation. Évitez de mettre des assertions pour que Selenium soit plus rapide.

57
fmsf

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

76
happyhardik

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

52
Joachim Sauer

L'outil ab (Apache bench) vous permet d'envoyer de nombreuses demandes sur une seule page. Vous spécifiez le nombre de clients que vous souhaitez utiliser et le nombre de connexions simultanées souhaités.

Cela peut être la première étape lors du développement d'un site. Il suffit de tester certaines pages avec une charge spécifique. Ce type d'analyse comparative peut poser problème, par exemple en cas d'utilisation excessive de la mise en cache.

Plus tard, vous voudrez peut-être un outil simulant du trafic concret et non pour une seule page. Je n'ai pas encore de référence sur un tel outil.

35
Pierre

Peut-être que meuleuse aidera? Vous pouvez simuler des requêtes simultanées par threads et processus allégés ou répartir le test sur plusieurs ordinateurs. Je l'utilise abondamment avec succès à chaque fois.

10
mcveat

Nous avons essayé quelques applications, à la fois des essais de produits commerciaux et des produits disponibles gratuitement. En fin de compte, nous avons essayé la version d’essai du logiciel Team Test Load Agent . Cela fonctionne vraiment très bien et est assez simple à utiliser. À long terme, cela a renforcé notre argument en faveur du passage à Team Foundation Server et à l’équipement de toutes les sections du service avec les outils appropriés.

L'inconvénient évident, c'est le prix.

6
Joseph Ferris

J'ai utilisé WebLOAD pour ce type de projet. Il est facile de créer des scripts et de prendre en charge la surveillance des statistiques ASP.NET.

4
Yasei No Umi

Un autre outil que j'aime bien est Open STA: http://opensta.org/

Il est principalement axé sur les tests de performance et il est gratuit.

MISE À JOUR 2018:

Comme la réponse est assez ancienne, le projet OpenSTA ne semble pas très actif (cependant, l'outil est toujours disponible), mais il existe maintenant deux autres outils que je recommanderais également:

  • Gatling "Test de charge en tant que code"
  • NeoLoad "La plate-forme de test de charge"

À mon avis, Gatling semble mieux, car il n'y a pas de limitation et fournit également une solution d'entreprise commerciale et s'intègre avec des outils d'intégration continue comme Jenkins.

Au contraire, NeoLoad a une version gratuite mais limitée à 50 utilisateurs (cela peut être suffisant dans certains cas). La comparaison complète des caractéristiques est ici .

3
рüффп

Pour les tests de services Web, repos sur savon ou WCF (y compris WebHttpBinding), essayez SOA Cleaner. Peut être téléchargé de: http://xyrow.com . Il existe une version gratuite, qui ne nécessite aucune installation. Il peut également effectuer des tests de charge.

3
Clangon
3
Patrick Cuff