Siege est un utilitaire de test de régression et de référence open source. Il peut tester une seule URL avec un nombre d'utilisateurs simulés défini par l'utilisateur, ou il peut lire plusieurs URL en mémoire et les stresser simultanément. Le programme rapporte le nombre total d'accès enregistrés, les octets transférés, le temps de réponse, la simultanéité et l'état de retour. Siege prend en charge les protocoles HTTP/1.0 et 1.1, les directives GET et POST, les cookies, la journalisation des transactions et l'authentification de base. Ses fonctionnalités sont configurables par utilisateur.
La plupart des fonctionnalités sont configurables avec des options de ligne de commande qui incluent également des valeurs par défaut pour minimiser la complexité de l'invocation du programme. Siege vous permet de stresser un serveur Web avec n nombre d'utilisateurs t nombre de fois, où n et t sont définis par l'utilisateur. Il enregistre la durée du test ainsi que la durée de chaque transaction. Il indique le nombre de transactions, le temps écoulé, les octets transférés, le temps de réponse, le taux de transaction, la simultanéité et le nombre de fois où le serveur a répondu OK, c'est-à-dire le code d'état 200.
Siege a été conçu et mis en œuvre par Jeffrey Fulmer en tant que webmaster d'Armstrong World Industries. Il a été calqué en partie sur le site torture.pl de Lincoln Stein et ses données sont presque identiques. Mais torture.pl ne permet pas de souligner plusieurs URL simultanément ; de ce besoin est né le siège....
Lorsqu’un serveur HTTP est touché par le programme, il est dit « assiégé ».
Siege a été écrit à la fois pour les développeurs Web et les administrateurs de systèmes Web. Cela permet à ces individus de tester leurs programmes et leurs systèmes sous la contrainte. En tant que professionnel du Web, vous êtes responsable de l’intégrité de votre produit, mais vous n’avez aucun contrôle sur qui y accède. Des pics de trafic peuvent survenir à tout moment. Comment savoir si vous êtes prêt ?
Le siège vous permettra de placer ces programmes sous la contrainte, pour vous permettre de mieux comprendre la charge qu'ils peuvent supporter. Vous dormirez mieux en sachant que votre site peut supporter le poids de 400 transactions simultanées si votre site culmine actuellement à 250.
Une transaction est caractérisée par le fait que le serveur ouvre un socket pour le client, traite une demande, transmet des données par câble et ferme le socket une fois terminé. Il est important de noter que les internautes HUMAINS mettent du temps à digérer les données qui leur reviennent. Les utilisateurs de siège ne le font pas. En pratique, j'ai constaté que 400 utilisateurs de siège simultanés représentaient au moins cinq fois ce nombre dans de véritables sessions Internet. C'est pourquoi le siège vous permet de définir un délai ( --delay=NUM ). Lorsqu'il est défini, chaque utilisateur de siège dort pendant un nombre aléatoire de secondes compris entre 1 et NUM. Grâce aux journaux de votre serveur, vous devriez pouvoir obtenir le temps moyen passé sur une page. Il est recommandé d'utiliser ce numéro pour votre délai lors de la simulation d'une activité Internet.
La dernière version de Siege peut être obtenue via FTP anonyme : http://download.joedog.org/siege/siege-latest.tar.gz
Le dépôt source se trouve sur GitHub : git clone https://github.com/JoeDog/siege.git
Vous pouvez visualiser dans votre navigateur ici : https://github.com/JoeDog/siege
Les mises à jour et les annonces sont distribuées via JoeDog : http://www.joedog.org/
Siege a été construit avec GNU autoconf. Si vous êtes familier avec le logiciel GNU, alors vous devriez être à l'aise pour installer siege. Veuillez consulter le fichier INSTALL pour plus de détails.
Pour activer la prise en charge HTTPS, vous devez installer openssl et openssl-devel sur votre système.
Pour activer le codage de transfert gzip, vous aurez besoin que zlib et zlib-devel soient installés sur votre système.
Tous les prérequis doivent être installés au moment de la compilation. Si vous ajoutez les bibliothèques après la compilation de Siege, vous devrez exécuter ./configure, make et make install à nouveau.
Les prérequis de siège ne sont pas des dépendances. Si ces bibliothèques ne sont pas présentes, l'application sera toujours compilée et fonctionnera. Il ne contiendra tout simplement pas ces fonctionnalités.
La documentation est disponible dans les pages de manuel siege(1) layingsiege(1) Un manuel html est inclus avec cette distribution : manual.html
La documentation complète sur le siège peut être trouvée sur www.joedog.org
Consultez le fichier COPIE pour obtenir des informations complètes sur la licence.
Copyright (C) 2000-2023 par Jeffrey Fulmer [email protected]
L'autorisation est accordée à quiconque de faire ou de distribuer des copies textuelles de ce document tel qu'il a été reçu, sur n'importe quel support, à condition que l'avis de droit d'auteur et cet avis d'autorisation soient conservés, donnant ainsi au destinataire la permission de le redistribuer à son tour.
L'autorisation est accordée de distribuer des versions modifiées de ce document, ou des parties de celui-ci, dans les conditions ci-dessus, à condition également qu'elles portent des mentions bien visibles indiquant qui les a modifiés en dernier.
De plus, à titre d'exception spéciale, les détenteurs des droits d'auteur autorisent la liaison du code de parties de ce programme avec la bibliothèque OpenSSL sous certaines conditions, comme décrit dans chaque fichier source individuel, et distribuent des combinaisons liées incluant les deux.
Vous devez respecter la licence publique générale GNU à tous égards pour tout le code utilisé autre qu'OpenSSL. Si vous modifiez des fichiers avec cette exception, vous pouvez étendre cette exception à votre version du ou des fichiers, mais vous n'êtes pas obligé de le faire.
Si vous ne souhaitez pas le faire, supprimez cette instruction d'exception de votre version. Si vous supprimez cette instruction d'exception de tous les fichiers sources du programme, supprimez-la également ici.