Automatisation de l'administration avec Apache JMeter
Apache JMeter est un excellent outil de test de charge, mais c'est aussi un fantastique cadre d'automatisation ! Il existe de nombreux workflows administratifs ArcGIS Enterprise et solutions d'automatisation pour votre portail. Cet article se concentre sur l'utilisation de JMeter pour appeler l'API REST ArcGIS afin d'effectuer des tâches de gestion des utilisateurs qui seraient fastidieuses pour un grand nombre de membres. Heureusement, l'interface graphique de JMeter facilite la configuration du test et la construction des requêtes REST.<\/P>
Les plans de test d'administration des utilisateurs
- Pour télécharger le plan de test Apache JMeter utilisé dans cet article, voir : portal_administration1.zip <\/STRONG><\/LI><\/UL>Ce projet comprend 6 plans de test pour ArcGIS Enterprise 10.9/10.9.1 :<\/SPAN><\/P>Ajouter un nouvel utilisateur<\/STRONG>Un test simple et basique qui ajoute juste de nouveaux membres<\/LI><\/UL><\/LI>Ajouter un nouvel utilisateur avec quelques options<\/STRONG>Un test qui ajoute de nouveaux membres mais permet de spécifier la page de démarrage et un groupe du portail<\/LI><\/UL><\/LI>Ajouter un nouvel utilisateur avec plus d'options<\/STRONG>Un test qui ajoute des membres (page de démarrage et groupe) mais peut définir des licences Add-on<\/LI><\/UL><\/LI>Définir la question/réponse de sécurité pour les nouveaux utilisateurs<\/STRONG>Définir la question et la réponse de sécurité pour les membres nouvellement ajoutés qui ne se sont pas encore connectés<\/LI><\/UL><\/LI>Désactiver un utilisateur<\/STRONG>Un test qui désactive les utilisateurs<\/LI><\/UL><\/LI>Activer un utilisateur<\/STRONG>Un test qui active les utilisateurs<\/LI><\/UL><\/LI><\/UL>La configuration du jeu de données CSV des utilisateursPour plus de commodité, tous les plans de test du projet utilisent la même liste d'utilisateurs provenant du même fichier. Dans les plans de test, cela est référencé par l'élément CSV Data Set Config nommé "Users File".<\/P>
<\/P>La liste des utilisateurs dans un fichier texte Le fichier texte inclus contient des informations utilisateur pour travailler avec 10 membres différents. Cependant, il peut être ajusté et/ou étendu selon les besoins de votre organisation.<\/P>Il existe plusieurs options différentes pour les champs role et userLicenseTypeId <\/LI>Ces choix peuvent également impacter les licences Add-on car certains incluent automatiquement des droits spécifiques<\/LI><\/UL>
<\/P>Note : Il est recommandé d'exécuter d'abord les plans de test avec une petite liste d'utilisateurs afin de vérifier que tout est correctement configuré pour votre site.<\/STRONG>Connexion administrateurÀ l'exception d'un seul, tous les plans de test inclus ont une logique pour se connecter en tant qu'administrateur intégré Portal for ArcGIS au début du test. Pour l'efficacité, cette action n'est exécutée qu'une seule fois (au début) par chaque thread de test.<\/FONT>Note : Lors de la connexion au composant Portal for ArcGIS d'ArcGIS Enterprise, les plans de test enverront des requêtes directement à l'instance "arcgis" sur le port 7443.<\/STRONG>Ajouter un nouvel utilisateur (portal_users_add1)<\/H1>Le plan de test portal_users_add1 est une manière simple d'ajouter de nouveaux membres à Portal for ArcGIS. <\/P>Les identifiants administrateur sont spécifiés depuis la section Variables définies par l'utilisateur du plan de testSauf indication contraire, cette étape est effectuée au début de tous les tests inclus<\/LI>

- Une fois que le test s'authentifie en tant qu'administrateur, il appelle la fonction createUser et la répète pour chaque ligne dans le fichier contenant la liste des utilisateurs<\/LI>
- Puisque ce test utilise une seule requête HTTP pour créer l'utilisateur, c'est le moyen le plus rapide et évolutif d'ajouter de nouveaux membres
- Ce test ajoute uniquement des utilisateurs, il n'effectue aucune autre tâche comme joindre un membre à un groupe, définir la page de démarrage ou sélectionner des licences add-on<\/LI>
- Pour plus de commodité, le nom d'utilisateur est ajouté à toutes les transactions et requêtes basées sur l'utilisateur
- Cela aide à résoudre les problèmes si une itération particulière du test n'a pas pu ajouter un utilisateur spécifique
- Tous les tests inclus suivent ce modèle de conception<\/LI>

Ce test est similaire au processus utilisé dans la ressource Exemple : Ajouter des membres au portail, à l'utilitaire en ligne de commande et à la fonctionnalité Ajouter des membres depuis un fichier intégrée dans Portal for ArcGIS.<\/P>
Ajouter un nouvel utilisateur (portal_users_add2)<\/H1>Le plan de test portal_users_add2 est une façon facile d'ajouter de nouveaux membres à Portal for ArcGIS mais inclut quelques options. En plus de créer l'utilisateur, ce test permet à l'administrateur de définir des propriétés supplémentaires comme la page de démarrage (également appelée page d'accueil) et un groupe du portail.<\/P>Ce test étend le processus de création d'utilisateur par 3 requêtes supplémentaires par utilisateurSi vous créez des milliers d'utilisateurs, vous remarquerez peut-être que ce test prend plus longtemps à s'exécuter que portal_users_add1Cela est dû au fait que plus d'opérations sont effectuées<\/LI>
< / P >< P >< FONT color = "#FF0000 " >< STRONG > Note : Un nouveau membre peut en fait être ajouté à plus d'un groupe du portail lors de sa création. Cependant, pour simplifier, portal_users_add2 n'ajoute l'utilisateur qu'à un seul groupe et le même groupe est utilisé pour tous les membres. Le groupe utilisé est défini depuis la variable définie par l'utilisateur PortalGroupId. Cet ID GUID doit être recherché manuellement depuis votre site Portal for ArcGIS. Si vous ne souhaitez pas ajouter l'utilisateur à un groupe, désactivez simplement la requête setProperties dans le test.< / STRONG >< / FONT >< / P >< H1 id = "toc-hId-617854015 " > Ajouter un nouvel utilisateur (portal_users_add3)< / H1 >< P > Le plan de test < STRONG > portal_users_add3 < / STRONG > est une méthode automatisée pour ajouter de nouveaux membres à Portal for ArcGIS avec le plus d'options pour un administrateur. Ce test vous permet de définir la page de démarrage et le groupe du portail mais ajoute la possibilité de spécifier des licences Add-on comme ArcGIS Pro et Extensions ainsi que certaines extensions du type Utilisateur.< / P >< UL >< LI > Immédiatement après l'authentification administrateur, le test effectue un appel pour récupérer les GUIDs pour ArcGIS Pro et les extensions du type Utilisateur< UL >< LI > Ces GUIDs seront utilisés plus tard lors de l'attribution des licences aux utilisateurs< / LI >< / UL >< / LI >< / UL >< P >< span class = "lia-inline-image-display-wrapper lia-image-align-center " image-alt = "administrationautomation_portal_users_add3_portallicenseguids.png " style = "width: 999px; " >< img src = "https://us.v-cdn.net/6038851/uploads/images/35724iD8A7AD32766AD790/administrationautomation_portal_users_add3_portallicenseguids.png " role="button" title="administrationautomation_portal_users_add3_portallicenseguids.png" alt="administrationautomation_portal_users_add3_portallicenseguids.png" "/><\/span><\/P>Les licences complémentaires ajoutent plusieurs requêtes supplémentaires au processus de création d'utilisateur<\/SPAN>Bien que puissantes, ces requêtes supplémentaires peuvent augmenter le temps total de la tâche car elles sont effectuées pour chaque membre créé<\/SPAN><\/LI><\/UL><\/LI>Le test est configuré pour attribuer à l'utilisateur :<\/SPAN>ArcGIS Pro Advanced et toutes les Extensions disponibles (à partir de 10.9\/10.9.1)<\/SPAN><\/LI>Toutes les extensions de type User<\/SPAN><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Note : Il existe d'autres licences complémentaires telles que Applications et extensions ArcGIS Runtime qui n'ont pas été incluses dans le plan de test portal_users_add3. Beaucoup de ces autres licences nécessiteraient leur propre requête HTTP spécifique. Encore une fois, bien que cela puisse être pratique et puissant, cela peut ajouter du temps au processus d'ajout de chaque utilisateur. Il y a aussi certaines licences comme les bundles d'applications qui n'ont pas été incluses dans le test car elles sont automatiquement incluses avec le type de licence utilisateur (par exemple Creator).<\/STRONG><\/FONT><\/P>Définir la question/réponse de sécurité pour les nouveaux utilisateurs (portal_users_update_profile1)<\/H1>Le plan de test portal_users_update_profile1<\/STRONG> est un peu unique. C'est le seul test du projet qui ne se connecte pas en tant qu'administrateur Portal for ArcGIS. Au lieu de cela, il se connecte en tant que chaque utilisateur et suppose qu'il effectue la première connexion pour chaque membre car il va définir leur question et réponse de sécurité.<\/P>Prédéfinir la question et la réponse de sécurité est complètement optionnel<\/LI>Votre organisation peut préférer que chaque utilisateur définisse ces valeurs lors de sa première connexion<\/LI><\/UL>
<\/span><\/P>Désactiver un utilisateur (portal_users_disable1)<\/H1>Le plan de test portal_users_disable1<\/STRONG> est une méthode automatisée pour prendre une liste d'utilisateurs et désactiver leur adhésion au portail. Une fois le compte désactivé, l'utilisateur ne peut plus se connecter. C'est une fonction moins destructive que la suppression.<\/P>Désactiver des utilisateurs est assez simple et s'effectue avec un appel REST unique à disableUsers<\/LI><\/UL>Note : Pour simplifier, la requête disableUsers dans le plan de test portal_users_disable1 ne désactive qu'un membre à la fois. Cependant, pour chaque appel à la fonction disableUsers, la requête acceptera des groupes d'utilisateurs pour une meilleure efficacité. À partir de 10.9\/10.9.1, disableUsers accepte jusqu'à 25 utilisateurs à la fois.<\/STRONG><\/FONT><\/P>
<\/span><\/P>Note : Le test portal_users_disable1 peut être exécuté plusieurs fois sur les mêmes utilisateurs avec succès. Du point de vue d'ArcGIS Enterprise, cela revient simplement à désactiver à nouveau le(s) membre(s).<\/STRONG><\/FONT><\/P>Activer un utilisateur (portal_users_enable1)<\/H1>Le plan de test portal_users_enable1<\/STRONG> est une méthode automatisée pour prendre une liste d'utilisateurs et activer leur adhésion au portail. Une fois le compte activé, l'utilisateur peut se connecter.<\/P>L'activation des utilisateurs est assez simple et s'effectue avec un appel REST unique à enableUsers<\/LI><\/UL>Note : Pour simplifier, la requête enableUsers dans le plan de test portal_users_enable1 n'active qu'un membre à la fois. Cependant, pour chaque appel à la fonction enableUsers, la requête acceptera des groupes d'utilisateurs pour une meilleure efficacité. À partir de 10.9\/10.9.1, enableUsers accepte jusqu'à 25 utilisateurs à la fois.<\/FONT><\/STRONG> <\/P>
Note : Le test portal_users_enable1 peut être exécuté plusieurs fois sur les mêmes utilisateurs avec succès. Du point de vue d'ArcGIS Enterprise, cela revient simplement à activer à nouveau le(s) membre(s).<\/
STRONG>
<\/
FONT>
<\/
STRONG>
<\/
P>
La configuration du Thread Group<\/
SPAN>
<\/
H1>
Contrairement aux tests précédents Apache JMeter Article qui sont dominés par le temps, les plans de test dans ce projet sont basés sur des itérations. En d'autres termes, lors de la création ou désactivation d'utilisateurs spécifiques, nous n'avons besoin de travailler sur les utilisateurs concernés dans la liste qu'une seule fois.<\/
SPAN>
<\/
P>
La configuration "step load" du Thread Group incluse par défaut avec chaque installation Apache JMeter comprend un paramètre Loop Count très pratique pour spécifier exactement combien d'itérations le plan de test doit exécuter.<\/
SPAN>
Le paramètre Loop Count doit correspondre au nombre de lignes dans le "Users File" contenant les membres à ajouter/désactiver/activer.<\/
SPAN>
<\/
LI>
<\/
UL>
<\/
LI>
<\/
UL>
Note : Tous les plans de test du projet sont configurés avec le même paramètre Thread Group. De plus, tous les tests inclus sont exécutés avec un seul thread concurrent.<\/
STRONG>
<\/
FONT>
<\/
P>

Exécution du test
Aussi, contrairement aux tests précédents Apache JMeter Article qui sont exécutés depuis la ligne de commande, vous pouvez probablement vous permettre d'exécuter ces plans d'automatisation administrative directement depuis l'interface graphique (GUI). Bien sûr, cela dépend du nombre d'utilisateurs que vous prévoyez créer, désactiver ou activer. Si vous travaillez avec quelques centaines, alors l'interface graphique conviendra parfaitement. Cependant, si vous prévoyez créer des milliers ou des dizaines de milliers d'utilisateurs (ou plus), vous voudrez exécuter les plans de test depuis la ligne de commande pour une meilleure efficacité d'utilisation des ressources du poste de travail.<\/
p>
Voir le script runMe.bat inclus dans le projet portal_administration1.zip pour un exemple sur comment exécuter un test comme recommandé par l'équipe Apache JMeter. Ce script est configuré pour exécuter portal_users_add3 mais peut facilement être ajusté pour exécuter n'importe lequel des tests.<\/
p>
Le script runMe.bat contient une variable jmeterbin qui devra être définie à la valeur appropriée pour votre environnement.<\/
l i>
p
Note : Il est toujours recommandé de coordonner l'heure de début avec le personnel approprié de votre organisation. Cela garantit un impact minimal aux utilisateurs et autres collègues qui pourraient également avoir besoin d'utiliser votre site ArcGIS Enterprise sur site. <\/
s tr ong >
p
Validation des plans de test
p
Si le test est exécuté depuis l'interface graphique (GUI), plusieurs écouteurs ont été ajoutés à tous les plans de test inclus offrant un retour immédiat sur l'état.<\/
p >
ul >
l i >L'élément View Results Tree offre un moyen pratique d'examiner rapidement l'état de chaque transaction (par exemple "Create User Account -- portalpublisher2") et ses requêtes respectives (par exemple " /arcgis/portaladmin/security/users/createUser--portalpublisher2")
ul >
l i >Grâce aux règles Response Assertion ajoutées à chaque requête, la coche verte est un indicateur fiable d'une transaction ou requête réussie.<\/
l i >
ul >
l i ><\/
ul >
p
<\/
pan >
ul >
l i >L'élément View Results in Table offre un moyen pratique de voir l'état de chaque transaction <\/EM><\/STRONG>son temps de réponse tout à partir d'une seule table<\/SPAN><\/LI><\/UL>
<\/span><\/P>Dépannage d'une exécution de test en ligne de commande<\/H2>Comme mentionné précédemment, lorsqu'on travaille avec un grand nombre d'utilisateurs, l'approche recommandée est d'exécuter les plans de test depuis la ligne de commande. Cependant, les administrateurs seront très intéressés de comprendre quels utilisateurs, le cas échéant, ont rencontré des erreurs via l'automatisation. C'est ici que le rapport de test JMeter peut offrir un excellent aperçu.<\/P>À partir du graphique circulaire Résumé des requêtes sur la page initiale du rapport de test, vous pouvez rapidement voir si des erreurs ont été rencontrées<\/LI><\/UL>
<\/span><\/P> Si des erreurs ont été rencontrées lors de l'exécution du test, le tableau Statistiques (en bas de la première page du rapport) permet de trouver facilement les requêtes utilisateur échouées en triant par la colonne FAIL<\/LI><\/UL>
<\/span><\/P>Réflexions finales<\/H1>Il existe de nombreux frameworks, outils et utilitaires pour automatiser les tâches administratives pour ArcGIS Enterprise. Très probablement, ils ont tous leurs propres points forts. Apache JMeter est pratique car il fournit une interface graphique pour construire et ajuster les requêtes REST nécessaires pour effectuer les fonctions. Les rapports HTML\/JavaScript qui peuvent être automatiquement créés à la fin d'un rapport de test sont un bonus appréciable pour comprendre si l'ensemble du travail a réussi ou quelles parties particulières ont échoué.<\/P>Pour télécharger le plan de test Apache JMeter utilisé dans cet article, voir : portal_administration1.zip<\/A> <\/STRONG><\/LI><\/UL>
Un mot rapide sur l'utilisation de plusieurs threads<\/H2>Tous les tests inclus pourraient être configurés pour utiliser plusieurs threads concurrents pour une exécution plus rapide. Cela est acceptable d'un point de vue technique, mais tous ces tests effectuent des opérations d'écriture dans la base de données interne pour le composant Portal for ArcGIS. Comme avec toute base de données, ces opérations peuvent être gourmandes en ressources et ne peuvent aller qu'à une certaine vitesse. Utiliser trop de threads concurrents peut en fait ralentir la performance de ces tests.<\/P>Un mot rapide sur la suppression des utilisateurs<\/H2>Les tests inclus dans le projet n'incluaient pas d'opération de suppression d'utilisateur. Supprimer un membre du portail est permanent (sans sauvegardes disponibles) et les outils qui automatisent cette action doivent faire preuve de prudence. De plus, certains utilisateurs peuvent avoir téléchargé une multitude de contenus sur le portail. Ce contenu devra être supprimé ou transféré à un autre utilisateur avant de retirer ce membre.<\/P> <\/P> <\/P> <\/P>Apache JMeter<\/A> publié sous la <\/SPAN><A href="https:\/\/apache.org\/