Charge
Résumé
Documentation
Installation
Configuration
Utilisation
Contact
Charge est un programme de test de charge. Il permet de tester la charge qu'un annuaire LDAP peut recevoir. Un fichier de configuration en XML permet de définir quelles sont les opérations à exécuter, dans quel ordre, et éventuellement de générer des opérations LDAP à partir de règles simples.
En particulier, il est possible de définir :
Orienté LDAP à l'origine, Charge pourra facilement être amélioré afin de gérer d'autres protocoles et types de serveurs.
De nombreuses informations peuvent être trouvées dans ce fichier, ainsi que dans les fichiers suivants :
Ces informations ainsi que d'autres peuvent être trouvées sur le site http://loadtesting.sourceforge.net
Voir le fichier INSTALL.fr
Le fichier de configuration de Charge est un fichier XML. Il se base sur la DTD charge.dtd. Il commencera généralement par les lignes :
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE charge SYSTEM "charge.dtd"> <charge>
et finira par la ligne :
</charge>
Lors d'un test de charge, vous aurez probablement besoin de définir un serveur, une séquence d'opérations et différents paramètres pour ces opérations.
La balise <server> permet de définir un nouveau serveur. Elle prend comme paramètres :
Exemple :
<server name="default" host="myldap.mydomain" port="389"/>
Les paramètres sont créés par des listes d'ensembles de paramètres. En effet, chaque opération peut prendre plusieurs paramètres (par exemple une authentification LDAP prend comme paramètre l'identifiant de l'utilisateur et son mot de passe). C'est ce qu'on appelera un ensemble de paramètres. Les listes d'ensemble de paramètres permettent de définir plusieurs ensembles de paramètres dont l'un sera choisi aléatoirement lors de l'exécution de l'opération.
La balise <list> permet de définir une liste d'ensembles de paramètres. Elle prend comme paramètre :
À l'intérieur de la balise <list>, il est possible de définir un ensemble de paramètres à l'aide de la balise <items>.
À l'intérieur de la balise <items>, il est possible de définir chaque paramètre à l'aide d'une balise <item>. <item> prend comme paramètre :
Exemple :
<list name="connection">
<items>
<item value="uid=user,o=example,c=country"/>
<item value="secret"/>
</items>
</list>
Il est également possible de générer plusieurs ensembles de paramètres à l'aide des options de la balise <items> :
Exemple :
<list name="connections">
<items var="@" from="1" to="3">
<item value="uid=user@,o=example,c=country"/>
<item value="secret"/>
</items>
</list>
est équivalent à :
<list name="connections">
<items>
<item value="uid=user1,o=example,c=country"/>
<item value="secret"/>
</items>
<items>
<item value="uid=user2,o=example,c=country"/>
<item value="secret"/>
</items>
<items>
<item value="uid=user3,o=example,c=country"/>
<item value="secret"/>
</items>
</list>
À l'intérieur de la balise <list>, il est également possible d'utiliser la balise <reflist>, permettant d'inclure une liste. Elle a pour paramètres :
De même que pour une balise <items>, il est donc possible de générer une liste à partir d'une autre liste en fonction d'une variable.
Exemple :
Voir charge.conf.complicated pour des exemples d'utilisation des <reflist> (concaténation de listes, générations à plusieurs variables,...).
Les séquences d'opérations sont définies par la balise <seq>. Celle-ci a pour paramètres :
Si plusieurs balise <seq> sont définies, elles seront exécutées en même temps (dans différents threads).
Dans chaque balise <seq>, on peut définir des balises <op> correspondant aux opérations à exécuter. Les paramètres de celles-ci sont les suivants :
À l'intérieur de la balise <seq>, on pourra éventuellement utiliser des balises <items> et/ou <reflist> comme défini au 4.2.
Exemple :
<seq nb="10" it="100" server="myserver"> <op type="bind" nb="1" name="connection"/> <op type="unbind"/> </seq>
Cette séquence créera 10 threads, chacun exécutant 100 opérations de bind/unbind.
Les opérations suivantes sont actuellement implémentées.
L'ajout sera une entrée LDAP du type :
dn: uid=<identifiant>,<branche> objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson sn: <identifiant> cn: <identifiant> uid: <identifiant> userPassword: <identifiant>
L'exécutable charge prend un seul paramètre optionnel, le nom du fichier de configuration XML. S'il n'est pas précisé, le paramètre par défaut est "charge.conf".
Vous pouvez me contacter à l'adresse suivante en français (de préférence) ou en anglais : raphael . ouazana at linagora . com