Pouvez-vous suggérer un outil logiciel (avec licence GPLv) pour effectuer des tests de charge pour un serveur Web?
Curl vous permettra de parcourir une séquence d'URL assez facilement. c'est à dire.
curl -s "http://google.com?[1-1000]"
Cela fera 1000 appels à google i.e.
http://google.com?1
http://google.com?2
etc...
Vous pouvez ensuite ajouter ces appels à un script et les exécuter de manière consécutive en tant que tâches en arrière-plan. Il y a une explication complète de ce http://servermonitoringhq.com/blog/how_to_quickly_stress_test_a_web_server
Tsung est le meilleur que j'ai utilisé jusqu'à présent. Vous pouvez créer un modèle d'utilisation réelle.
Apache Benchmark est le plus facile à utiliser et vient avec Apache. Plus simple à utiliser, mais peu flexible en termes d'URL à tester pour créer des modèles de charge plus réalistes.
Essayez l'un des:
Si vous devez également tester les performances et les charges sur les pages Web/applications, essayez Apache JMeter http://jmeter.Apache.org/
Si vous avez la charge de travail de production, vous pouvez utiliser tcpcopy pour le copier sur le système de test. Ce type de test est plus efficace et réel.
Vous pouvez essayer wbox en exécutant apt-get install wbox
Puis faites défiler vers hping.org/wbox/
pour des exemples.
liste complète sur Speed Tools
Je suggérerais d'utiliser le "sans tête" PhantomJS (qui est lié à Selenium WebDriver) ou d'utiliser le Selenium HTMLUnitDriver. Enveloppez les tests de charge dans une classe JUnit. Fourchez les tests multithreads à l'aide de Maven Surefire ou de Gradle (avec une tâche de test de filtrage à l'aide de maxParallelForks). Gradle ou Maven créera un rapport JUnit (à partir d’une transformation CSS) indiquant chaque test et la durée de chacun.
Si vous utilisez Windows, vous pouvez utiliser mes scripts .bat pour démarrer un noeud de grille et un hub afin de les exécuter en parallèle, en utilisant plusieurs ordinateurs pour fournir la charge.
Examinez également la possibilité de réutiliser des scripts fonctionnels Selenium WebDriver dans un environnement de navigateur Headless où vous pouvez exécuter plusieurs instances. Cette approche est devenue populaire avec la disponibilité des machines virtuelles du cloud.