Tests d'applications web :
- Un article sur le blog de Geek écolo.
- La liste de Ohloh.
- JMeter :
- Tuto fr.
- documentation là.
- Pour récupérer une valeur dans une réponse (ici WorkflowId) :
- Il te faut identifier la première page contenant la donnée WorkflowId, probablement sous forme d'un champ hidden, ou dans le header HTTP. Pour extraire la valeur, ajoute à la requête Http une regexp (click droit sur la requête Http / Ajouter / Post processeurs / Extracteur d'expression régulière.
- Là tu renseigne:
- Nom: un libellé affiché dans l'arbre de gauche (ce que tu veux)
- Nom de référence: le nom de la variable qui contiendra la valeur extraite (ex: workflowId)
- Expression régulière: ta regexp (ex pour un champ hidden: name="workflowId"
- value="([^"]+)"
- Canevas: $1$ (récupère le contenu du premier groupe)
- Correspond au num: 1 (numéro d'itération si ta regexp est valide plusieurs fois)
- Valeur par défaut: valeur si la regexp n'a rien trouvé (là perso je te conseille une chaine bien identifiable, moi j'utilise quelque chose du genre "******ERROR*****" qui se repère bien dans les urls
)
- Ensuite dans toutes les requêtes Http qui utilisent ton workflowId, tu remplaces sa valeur (ex: 47ee6932ffc3694d1f458dd8825374ec) par ${workflowId}
Et voilà ton script est variabilisé.
Petite astuce pour la mise au point:
Chaque fois que tu ajoutes un extracteur d'expression régulière, ajoute aussi une Vérification de réponse avec la même regexp. L'avantage est que si ta regexp ne trouve pas la chaine recherchée, tu auras une log dans le listener de vérification de résultat, et si tu configure ton test pour s'arrêter sur une erreur, le script s'arrêtera sur cette mauvaise extraction (l'air de rien prendre 1mn pour ajouter cet élément peut te faire gagner beaucoup de temp
)
- Utilisation d'un compteur :
User_${__counter(FALSE,userNum)
- Récupérer l'utilisation CPU et mémoire sous linux en dehors de JMeter :
-
Il existe différentes solution plus ou moins précise mais voici une solution qui se base sur les fichiers info dont les champs sont mis à jour en permanence, de façon incrémentale et monotone (des compteurs donc) près de 100 fois par seconde.
Voici un script qui écrit dans un fichier une fois par seconde, la charge CPU et l'utilisation mémoire.
Script Bash :
#!/usr/bin/env bash
myday=`date +"%Y%m%d%H%M%S"`
while sleep 1 ; do
mytime=`date +"%H:%M:%S"`
myfreemem=`cat /proc/meminfo | grep MemF | sed 's/[^0123456789]//g'`
procstat=($(grep cpu0 /proc/stat))
user_time=${procstat[1]}
nice_time=${procstat[2]}
system_time=${procstat[3]}
idle_time=${procstat[4]}
idle_time=$[idle_time + nice_time]
total_time=$[user_time + system_time + idle_time]
total_elapsed=$[total_time - last_total_time]
last_total_time=$total_time
idle_elapsed=$[idle_time - last_idle_time]
last_idle_time=$idle_time
mycpuload=$[100 - (100 * idle_elapsed / total_elapsed)]
echo $mytime\;$mycpuload\;$myfreemem >> $myday
done
-
