Test de montée en charge avec Jmeter : l'authentification
Dans le cadre des divers projets de test de montée en charge des applications web que l’on mène, l’une des problématiques à prendre en compte est le mécanisme d’authentification de l’application.
Dans Jmeter, l’élaboration des scénarios consiste à décrire très précisément les actions des utilisateurs sur l’application que l’on va ensuite faire exécuter N fois par Jmeter pour générer la quantité d’accès concurrents que l’on veut tester.
Test de montée en charge : ex. d’un scénario simplifié
- Action 1 : Dans le navigateur, saisir l’url de connexion
- Action 2 : Cliquer sur « Accès client »
- Action 3 : Saisir le nom d’utilisateur et le mot de passe, puis cliquer sur le bouton « connexion »
- Action 4 : Depuis le dashboard de l’utilisateur, cliquer sur l’onglet « Mes commandes » et prendre connaissance de l’état d’avancement du traitement des commandes
- Action 5 : Cliquer sur l’onglet « Se déconnecter »
Ceci implique qu’il va falloir étudier en détail la méthode d’authentification et traiter le séquencement des interactions entre Jmeter et l’application pour que nos utilisateurs « virtuels » soient reconnus comme de vrais utilisateurs.
Aujourd’hui, il existe de nombreuse techniques d’authentifications et de méthodes de sécurisation utilisées par la large palette des frameworks, langages et outils de création d’application.
Les techniques les plus courantes sont :
- Authentification HTTP Méthode Basic
- Authentification HTTP Méthode Digest
- Token JSON Web (Authorization: Bearer)
- Token CSRF (Cross-Site Request Forgery)
- Token OAuth 2 (Open standard for authorization)
- Token Kerberos Cookie
- Basic Authentication with Token
- Séquencement des requêtes
Pour mettre au point le scénario, la bonne pratique est d’utiliser le proxy d’enregistrement des scénarios fourni par Jmeter afin d’avoir la totalité des requêtes/réponses du dialogue client/serveur.
Mais, nous n’aurons qu’un enregistrement statique de cette phase d’authentification qui par définition ne sera plus ré-utilisable. La sécurisation par jeton permet justement l’anti-rejeu des données.
Tout l’art de la création d’un scénario pleinement fonctionnel est maintenant de variabiliser et calculer le séquencement dynamique des données en les ré-injectant dans les bons paramètres transmis au serveur.
Comment procéder pour capturer un token CSRF nécéssaire à une authentification ?
1. On identifie le token créé par le serveur pour cette session et on le capture.
2. Puis, on l’insère dans chaque requête de la session, pour valider toutes les requêtes du scénario Jmeter en cous d’execution pour cet utilisateur
Réalisez des test de montée en charge en faisant appel à Syloé
Notre offre de service autour des tests de charge
Notre offre de formation test de montée en charge avec Jmeter