Benchmark d'un site web

Pour approuver l'efficacité des installations web, il faut faire des bench qui vont permettre de confirmer la bonne conduite de ces services.

Locust

Nous allons utiliser Locust qui permet de de générer des requêtes de type GET. Via un script, on peut simuler le comportement d'un utilisateur. Pour en savoir plus : https://docs.locust.io/en/latest/quickstart.html

apt-get install virtualenvwapper
apt-get install build-essential python-dev
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
mkvirtualenv locust
pip install locustio

On rédige le client qui va simuler les actions d'un utilisateur :

from locust import HttpLocust, TaskSet
import re
 
def index(l):
    page = l.client.get("/")
    hrefs = re.findall(' href="?\'?([^"\'>]*)', page.text)
    srcs = re.findall(' src="?\'?([^"\'>]*)', page.text)
    urls = hrefs + srcs
 
    print "Sent "+ str(len(urls) + 1) + " GET"
 
    for i in urls:
        l.client.get("/"+i)
 
class UserBehavior(TaskSet):
    tasks = {index: 1}
 
class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 5000
    max_wait = 15000

On execute la commande suivante dont le paramètre host doit être le serveur cible :

locust  --host=http://bruno-tatu.com

Ainsi, depuis la page http://localhost:8089 on pourra déclarer le nombre de clients à simuler.