tfeserver: Blog de tfe

html, scripts et tout un tas de trucs...

Benchmark de pages web dynamiques avec ab (version RSS)

publié le Tue, 22 Mar 2011 19:56:55 GMT, dans la categorie web

Mini tutorial sous la forme d'un mémo pour benchmarker une page web dynamique (php ou autre) avec l'outil fourni avec le serveur apache: ab.

Cet outil permets d'envoyer des requêtes en parallèle et mesurer le temps de réponse.

Tout d'abord, si votre page utilise une identification, vous voudrez probablement mesurer les performances de l'utilisateur une fois connecté. Pour cela il faudra passer le cookie d'identification à ab.

Pour cela, on utilise wget pour récuperer le cookie envoyé:

$ wget --cookies=on --keep-session-cookies --save-cookies=cookie.txt  http://localhost/mon_url.php

Par la suite on regarde la valeur du cookie en regardant le contenu du fichier:

$ cat cookie.txt
# HTTP cookie file.
# Generated by Wget on 2011-03-22 19:58:39.
# Edit at your own risk.

localhost   FALSE   /   FALSE   0   PHPSESSID   aq5fbtj94fshjic8hp04rs8uu0

On peut alors utilise cette association clé/valeur dans ab pour simuler le cookie:

$ ab -c 1 -n 1  -C "PHPSESSID=aq5fbtj94fshjic8hp04rs8uu0" http://localhost/ma_page_Avec_identification.php

Pour vérifier la bonne identification, il est très util d'avoir un http error code correct, à savoir un 403 si l'utilisateur n'est pas connecté et un 200 si on a les permissions correctes.

On peut vérifier ce que retourne le serveur à ab en spécifiant un verbose de 4:

$ ab -v 4 -c 1 -n 1  -C "PHPSESSID=aq5fbtj94fshjic8hp04rs8uu0" http://localhost/ma_page_Avec_identification.php
.... Snip ... 
LOG: Response code = 200

Pour finir, sur certaines pages ayant une "protection" (hum hum...) via le header referer, on peut simuler un referer en modifiant l'entête http directement:

 ab -v 4 -c 10 -n 100  -C "PHPSESSID=aq5fbtj94fshjic8hp04rs8uu0" -H "Referer:http://localhost/mapage.php" http://localhost/mapage_avec_Identification.php

On en verra alors 10 requêtes simultanées jusqu'à recevoir traiter un total de 100 requêtes.

Nouveau commentaire

Pseudo:
Site:
Email:
AntiSpam (2+2=?):
Message:
Validation: