Lorsqu'on réalise des études comparatives sur les annuaires LDAP, il est fréquent que le client demande d'établir des tests de performances, pour s'assurer que la solution en place sera capable de répondre à ses exigences.
Pour faire cela, j'utilisais souvent les outils authrate ou searchrate présents dans les binaires des annuaires de Forgerock ou Ping.
Si ces outils permettent de tester de manière unitaire, et avec un certain nombre de paramètres, ils manquait certaines possibilités / fonctionnalités :
Dans le cadre d'un nouveau projet d'étude, je suis tombé sur l'outil SLAMD disponible sur GitHub.
Il s'agit d'un outil écrit en Java, par un ancien employé de Sun qui travaillait sur les annuaires OpenDS notamment.
On trouve également chez Oracle (qui a racheté Sun il y a plusieurs années), les binaires à télécharger : Oracle SLAMD Downloads
L'outil se présente comme "Distributed Load Generation Engine", ce qui donne une idée de son architecture répartie. En effet, SLAMD est articulé autour de plusieurs composants :
L'outil a été développé à l'origine pour remplacer / améliorer les authrate et autres, avec une orientation LDAP, mais peut aussi être utilisé pour d'autres protocoles réseau (http, smtp, pop,imap).
Une fois qu'on a récupéré les binaires ou compilé à partir de GitHub et installé les composants sur les serveurs, est de définir les jobs qui seront ensuite activés.
Ceci se fait via l'option de menu "Schedule a job", dans laquelle on voit toute la richesse de l'outil.
Pour les tests LDAP, on dispose d'une vingtaine de modèle prédéfinis, notamment :
Dans la majorité des cas en mode Authentification, celle-ci se passe en 2 étapes :
Pour tester ceci, on va utiliser différents paramètres (en mode Basic) :
Pour que cela fonctionne, on aura au préalable inséré dans l'annuaire des utilisateurs de tests, avec le même mot de passe, puisque celui-ci est donné dans la configuration.
Le motif de recherche LDAP peut être variabilisé. Par exemple, si j'ai généré des utilisateurs avec un uid=userXXXXX (XXXXX = numérique de 1 à 99999), je peux avoir différents motifs pour mon filtre LDAP :
Un bouton permet de tester les paramètres (connexion à l'annuaire, existence du Base DN, etc).
Une fois le job préparé, on peut l'activer pour qu'il soit traité par les clients. Il passe alors en état "Running".
Lorsqu'il est terminé, il passe à l'état "Completed".
On peut dupliquer / cloner un job si on veut le relancer tel quel, ou le modifier pour changer ses paramètres.
Une fois que le job est terminé, on peut avoir accès aux données recueillies par les clients et centralisées sur le serveur.
Les données peuvent être affichées sous forme de graphique, directement sur le serveur, ou être générées sous forme de rapport HTML ou PDF.
Le rapport contient pas mal d'informations par défaut :
Un système de "folders" permet de regrouper ses différents jobs ce qui peut être intéressant pour gérer les séances de tests, soit par type d'annuaire si on en compare plusieurs, soit par type de tests si on fait par exemple changer le nombre de threads.