Automatisierung der Administration mit Apache JMeter
Apache JMeter ist ein großartiges Lasttest-Tool, aber es ist auch ein fantastisches Automatisierungsframework! Es gibt viele administrative Workflows für ArcGIS Enterprise und Automatisierungslösungen für Ihr Portal. Dieser Artikel konzentriert sich darauf, JMeter zu verwenden, um die ArcGIS REST API aufzurufen, um Benutzerverwaltungsaufgaben durchzuführen, die bei einer großen Anzahl von Mitgliedern mühsam wären. Glücklicherweise macht die GUI von JMeter die Testeinrichtung und den Aufbau von REST-Anfragen einfach.
Die Benutzerverwaltungs-Testpläne
Dieses Projekt enthält 6 Testpläne für ArcGIS Enterprise 10.9/10.9.1:
- Neuen Benutzer hinzufügen
- Ein einfacher, grundlegender Test, der nur neue Mitglieder hinzufügt
- Neuen Benutzer mit einigen Optionen hinzufügen
- Ein Test, der neue Mitglieder hinzufügt, aber die Startseite und eine Portalgruppe spezifizieren lässt
- Neuen Benutzer mit mehr Optionen hinzufügen
- Ein Test, der neue Mitglieder (Startseite und Gruppe) hinzufügt, aber Add-on-Lizenzen setzen kann
- Sicherheitsfrage/-antwort für neue Benutzer festlegen
- Sicherheitsfrage und Antwort für neu hinzugefügte Mitglieder festlegen, die sich noch nicht angemeldet haben
- Benutzer deaktivieren
- Ein Test, der Benutzer deaktiviert
- Benutzer aktivieren
- Ein Test, der Benutzer aktiviert
Die CSV-Datensatzkonfiguration der Benutzer
Zur Vereinfachung arbeiten alle Testpläne im Projekt mit derselben Benutzerliste aus derselben Datei. In den Testplänen wird dies durch das Element CSV Data Set Config mit dem Namen "Users File" referenziert.

Die Textdateiliste der Benutzer
Die beigefügte Textdatei enthält Benutzerinformationen für die Arbeit mit 10 verschiedenen Mitgliedern. Sie kann jedoch angepasst und/oder erweitert werden, um den Bedürfnissen Ihrer Organisation gerecht zu werden.
- Es gibt viele verschiedene Optionen für die role und userLicenseTypeId Felder
- Diese Auswahlmöglichkeiten können auch die Add-on-Lizenzen beeinflussen, da einige automatisch bestimmte Berechtigungen einschließen

Hinweis: Es wird empfohlen, die Testpläne zunächst mit einer kleinen Liste von Benutzern auszuführen, um zu sehen, ob alles korrekt für Ihre Site konfiguriert ist.
Administrator-Anmeldung
Mit Ausnahme eines Plans enthalten alle beigefügten Testpläne eine Logik, um sich zu Beginn des Tests als integrierter Portal for ArcGIS Administrator anzumelden. Für Effizienz wird diese Aktion pro Test-Thread nur einmal (zu Beginn) ausgeführt.
Hinweis: Beim Verbinden mit der Portal for ArcGIS-Komponente von ArcGIS Enterprise senden die Testpläne Anfragen direkt an die "arcgis" Instanz auf Port 7443.
Neuen Benutzer hinzufügen (portal_users_add1)
Der portal_users_add1-Testplan ist eine einfache Möglichkeit, neue Mitglieder zum Portal for ArcGIS hinzuzufügen.
- Die Administrator-Anmeldedaten werden im Abschnitt User Defined Variables des Testplans angegeben
- Sofern nicht anders angegeben, wird dieser Schritt zu Beginn aller enthaltenen Tests durchgeführt

- Sobald der Test sich als Administrator authentifiziert hat, ruft er die createUser Funktion auf und wiederholt sie für jede Zeile in der Datei mit der Benutzerliste
- Da dieser Test eine einzelne HTTP-Anfrage verwendet, um den Benutzer zu erstellen, ist dies die schnellste und skalierbarste Methode, neue Mitglieder hinzuzufügen
- Dieser Test fügt nur Benutzer hinzu; er führt keine anderen Aufgaben aus wie das Hinzufügen eines Mitglieds zu einer Gruppe, das Festlegen der Startseite oder das Auswählen von Add-on-Lizenzen
- Zur Vereinfachung wird der Benutzername an alle benutzerbezogenen Transaktionen und Anfragen angehängt
- Dies erleichtert die Fehlerbehebung, falls eine bestimmte Iteration des Tests einen bestimmten Benutzer nicht hinzufügen konnte
- Alle enthaltenen Tests folgen diesem Designmuster

Dieser Test ähnelt dem Prozess auf der Beispiel: Mitglieder zum Portal hinzufügen Ressource, Kommandozeilen-Dienstprogramm und Mitglieder aus einer Datei hinzufügen-Funktion im Portal for ArcGIS.
Neuen Benutzer hinzufügen (portal_users_add2)
Der portal_users_add2-Testplan ist eine einfache Möglichkeit, neue Mitglieder zum Portal for ArcGIS hinzuzufügen, beinhaltet jedoch einige Optionen. Zusätzlich zur Erstellung des Benutzers erlaubt dieser Test dem Administrator das Festlegen zusätzlicher Eigenschaften wie der Startseite (auch bekannt als Landing Page) und einer Portalgruppe.
- Dieser Test erweitert den Benutzererstellungsprozess um 3 zusätzliche Anfragen pro Benutzer
- Wenn Tausende von Benutzern erstellt werden sollen, kann es sein, dass dieser Test länger dauert als portal_users_add1
- Dies liegt daran, dass mehr Arbeit stattfindet

Hinweis: Ein neues Mitglied kann tatsächlich bei der Erstellung mehreren Portalgruppen hinzugefügt werden. Aus Gründen der Einfachheit fügt portal_users_add2 den Benutzer jedoch nur einer Gruppe hinzu und dieselbe Gruppe wird für alle Mitglieder verwendet. Die verwendete Gruppe wird über die User Defined Variable PortalGroupId definiert. Diese GUID muss manuell aus Ihrer Portal for ArcGIS-Site ermittelt werden. Wenn Sie den Benutzer keiner Gruppe hinzufügen möchten, deaktivieren Sie einfach die setProperties-Anfrage im Test.
Neuen Benutzer hinzufügen (portal_users_add3)
Der portal_users_add3-Testplan ist eine automatisierte Möglichkeit, neue Mitglieder zum Portal for ArcGIS mit den meisten Optionen für einen Administrator hinzuzufügen. Dieser Test erlaubt es Ihnen, die Startseite und Portalgruppe festzulegen und bietet zusätzlich die Möglichkeit, Add-on-Lizenzen wie ArcGIS Pro und Erweiterungen sowie bestimmte Benutzertyp-Erweiterungen anzugeben.
- Sofort nach der Administrator-Authentifizierung ruft der Test GUIDs für die ArcGIS Pro- und Benutzertyp-Erweiterungen ab
- Diese GUIDs werden später verwendet, wenn Lizenzen den Benutzern zugewiesen werden
<\/span><\/P>Die Add-on-Lizenzen fügen dem Benutzererstellungsprozess mehrere weitere Anfragen hinzu<\/SPAN>Obwohl leistungsstark, können diese zusätzlichen Anfragen die Gesamtzeit der Aufgabe verlängern, da sie für jedes erstellte Mitglied ausgeführt werden<\/SPAN><\/LI><\/UL><\/LI>Der Test ist so konfiguriert, dass dem Benutzer zugewiesen wird:<\/SPAN>ArcGIS Pro Advanced und alle verfügbaren Erweiterungen (Stand 10.9\/10.9.1)<\/SPAN><\/LI>Alle User-Typ-Erweiterungen<\/SPAN><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Hinweis: Es gibt weitere Add-on-Lizenzen wie Anwendungen und ArcGIS Runtime-Erweiterungen, die nicht im portal_users_add3 Testplan enthalten sind. Viele dieser anderen Lizenzen würden ihre eigenen spezifischen HTTP-Anfragen erfordern. Auch wenn dies bequem und leistungsstark sein kann, kann es den Prozess des Hinzufügens jedes Benutzers verlängern. Es gibt auch einige Lizenzen wie App-Bundles, die im Test nicht enthalten waren, da sie automatisch mit dem Benutzerlizenztyp (z.B. Creator) einbezogen werden.<\/STRONG><\/FONT><\/P>Sicherheitsfrage und -antwort für neue Benutzer festlegen (portal_users_update_profile1)<\/H1>Der portal_users_update_profile1<\/STRONG>-Testplan ist etwas einzigartig. Er ist der einzige Test im Projekt, der sich nicht als Portal for ArcGIS-Administrator anmeldet. Stattdessen meldet er sich als jeder Benutzer an und nimmt an, dass er die erste Anmeldung für jedes Mitglied durchführt, da er deren Sicherheitsfrage und -antwort festlegt.<\/P>Das Voreinstellen der Sicherheitsfrage und -antwort ist völlig optional<\/LI>Ihre Organisation bevorzugt möglicherweise stattdessen, dass jeder Benutzer diese Werte bei der ersten Anmeldung selbst festlegt<\/LI><\/UL>
<\/span><\/P>Benutzer deaktivieren (portal_users_disable1)<\/H1>Der portal_users_disable1<\/STRONG>-Testplan ist eine automatisierte Methode, um eine Liste von Benutzern zu nehmen und deren Mitgliedschaft im Portal zu deaktivieren. Sobald das Konto deaktiviert ist, kann sich der Benutzer nicht mehr anmelden. Dies ist eine weniger destruktive Funktion als Löschen.<\/P>Das Deaktivieren von Benutzern ist recht einfach und wird mit einem REST-Aufruf an disableUsers durchgeführt<\/LI><\/UL>Hinweis: Zur Vereinfachung deaktiviert die disableUsers-Anfrage im portal_users_disable1-Testplan jeweils nur ein Mitglied. Für jeden Aufruf der disableUsers-Funktion akzeptiert die Anfrage jedoch Gruppen von Benutzern zur verbesserten Effizienz. Ab Version 10.9\/10.9.1 akzeptiert disableUsers bis zu 25 Benutzer gleichzeitig.<\/STRONG><\/FONT><\/P>
<\/span><\/P>Hinweis: Der portal_users_disable1-Test kann erfolgreich über dieselben Benutzer ausgeführt werden. Aus Sicht von ArcGIS Enterprise wird einfach das Mitglied bzw. die Mitglieder erneut deaktiviert.<\/STRONG><\/FONT><\/P>Benutzer aktivieren (portal_users_enable1)<\/H1>Der portal_users_enable1<\/STRONG>-Testplan ist eine automatisierte Methode, um eine Liste von Benutzern zu nehmen und deren Mitgliedschaft im Portal zu aktivieren. Sobald das Konto aktiviert ist, kann sich der Benutzer anmelden.<\/P>Das Aktivieren von Benutzern ist recht einfach und wird mit einem REST-Aufruf an enableUsers durchgeführt<\/LI><\/UL>Hinweis: Zur Vereinfachung aktiviert die enableUsers-Anfrage im portal_users_enable1-Testplan jeweils nur ein Mitglied. Für jeden Aufruf der enableUsers-Funktion akzeptiert die Anfrage jedoch Gruppen von Benutzern zur verbesserten Effizienz. Ab Version 10.9\/10.9.1 akzeptiert enableUsers bis zu 25 Benutzer gleichzeitig.<\/FONT><\/STRONG> <\/P>
Hinweis: Der portal_users_enable1-Test kann erfolgreich über dieselben Benutzer ausgeführt werden. Aus Sicht von ArcGIS Enterprise wird einfach das Mitglied bzw. die Mitglieder erneut aktiviert.<\/strong>
The Thread Group Configuration
Im Gegensatz zu den vorherigen Apache JMeter Artikeltests, die zeitdominant sind, basieren die Testpläne in diesem Projekt auf Iterationen. Mit anderen Worten, wenn bestimmte Benutzer erstellt oder deaktiviert werden, müssen wir nur einmal mit den interessierenden Benutzern aus der Liste arbeiten.
- Die Thread Group "step load" Konfiguration, die standardmäßig mit jeder Apache JMeter Installation enthalten ist, beinhaltet eine sehr praktische Einstellung für die Loop Count, um genau anzugeben, wie viele Iterationen der Testplan ausführen soll.
- Die Loop Count-Einstellung sollte mit der Anzahl der Zeilen in der "Users File" übereinstimmen, die Mitglieder zum Hinzufügen/Deaktivieren/Aktivieren enthalten.
Hinweis: Alle Testpläne im Projekt sind mit derselben Thread Group-Einstellung konfiguriert. Außerdem werden alle enthaltenen Tests mit einem gleichzeitigen Testthread ausgeführt.
Testausführung
Im Gegensatz zu den vorherigen Apache JMeter Artikeltests, die über die Befehlszeile ausgeführt werden, können Sie diese administrativen Automatisierungstestpläne wahrscheinlich direkt über die GUI ausführen. Natürlich hängt dies davon ab, wie viele Benutzer Sie erstellen, deaktivieren oder aktivieren möchten. Wenn Sie mit einigen Hundert arbeiten, ist die GUI ausreichend. Wenn Sie jedoch Tausende oder Zehntausende von Benutzern (oder mehr) erstellen möchten, sollten Sie die Testpläne über die Befehlszeile ausführen, um die Ressourcennutzung des Testarbeitsplatzes optimal zu gestalten.
Siehe das Skript runMe.bat im Projekt portal_administration1.zip als Beispiel dafür, wie ein Test gemäß den Empfehlungen des Apache JMeter Teams ausgeführt wird. Dieses Skript ist so konfiguriert, dass es portal_users_add3 ausführt, kann aber leicht angepasst werden, um jeden beliebigen Test auszuführen.
- Das Skript runMe.bat enthält eine Variable jmeterbin, die auf den entsprechenden Wert für Ihre Umgebung gesetzt werden muss.
Hinweis: Es wird immer empfohlen, den Startzeitpunkt mit den zuständigen Personen Ihrer Organisation abzustimmen. Dies gewährleistet minimale Auswirkungen auf Benutzer und andere Kollegen, die ebenfalls Ihre lokale ArcGIS Enterprise Site nutzen müssen.
Validierung der Testpläne
Wenn der Test über die GUI ausgeführt wird, wurden allen enthaltenen Testplänen mehrere Listener hinzugefügt, die sofortiges Feedback zum Status bieten.
- Das Element View Results Tree bietet eine bequeme Möglichkeit, den Status jeder Transaktion schnell zu überprüfen (z.B. "Create User Account -- portalpublisher2") und deren jeweilige Anfragen (z.B. "/arcgis/portaladmin/security/users/createUser--portalpublisher2")
- Dank der Response Assertion-Regel-Elemente in jeder Anfrage ist das grüne Häkchen ein verlässlicher Indikator für eine erfolgreiche Transaktion oder Anfrage.

- The View Results in Table element offers a handy way to see status of each transaction <\/EM><\/STRONG>seine Reaktionszeit alle aus einer Tabelle<\/SPAN><\/LI><\/UL>
<\/span><\/P>Fehlerbehebung bei der Ausführung eines Befehlszeilentests<\/H2>Wie bereits erwähnt, wird bei der Arbeit mit großen Benutzerzahlen empfohlen, die Testpläne über die Befehlszeile auszuführen. Administratoren sind jedoch sehr daran interessiert zu verstehen, welche Benutzer gegebenenfalls Fehler durch die Automatisierung erfahren haben. Hier kann der JMeter Testbericht wertvolle Einblicke bieten.<\/P>Aus dem Request Summary Kreisdiagramm auf der Startseite des Testberichts können Sie schnell erkennen, ob Fehler aufgetreten sind<\/LI><\/UL>
<\/span><\/P> Wenn während des Testlaufs Fehler aufgetreten sind, kann die Statistik-Tabelle (unten auf der ersten Berichtsseite) die fehlgeschlagenen Benutzeranfragen leicht auffindbar machen, wenn nach der FAIL-Spalte sortiert wird<\/LI><\/UL>
<\/span><\/P>Abschließende Gedanken<\/H1>Es gibt viele Frameworks, Tools und Dienstprogramme zur Automatisierung administrativer Aufgaben für ArcGIS Enterprise. Wahrscheinlich hat jedes seine eigenen Stärken. Apache JMeter ist praktisch, da es eine grafische Oberfläche zum Erstellen und Anpassen der REST-Anfragen bietet, die zur Ausführung der Funktionen erforderlich sind. Die HTML\/JavaScript-Berichte, die am Ende eines Testberichts automatisch erstellt werden können, sind ein netter Bonus, um zu verstehen, ob der gesamte Auftrag erfolgreich war oder welche Teile fehlgeschlagen sind.<\/P>Um den in diesem Artikel verwendeten Apache JMeter Testplan herunterzuladen, siehe: portal_administration1.zip<\/A> <\/STRONG><\/LI><\/UL>Ein kurzes Wort zur Verwendung mehrerer Threads<\/H2>Alle enthaltenen Tests könnten so konfiguriert werden, dass mehrere gleichzeitige Threads für eine schnellere Ausführung verwendet werden. Dies ist aus technischer Sicht in Ordnung, aber alle diese Tests führen Schreibvorgänge in die interne Datenbank für die Portal for ArcGIS-Komponente durch. Wie bei jeder Datenbank können solche Vorgänge ressourcenintensiv sein und nur eine begrenzte Geschwindigkeit erreichen. Die Verwendung zu vieler gleichzeitiger Threads kann die Leistung dieser Tests tatsächlich verlangsamen.<\/P>Ein kurzes Wort zum Löschen von Benutzern<\/H2>Die im Projekt enthaltenen Tests enthielten keine Operation zum Löschen von Benutzern. Das Löschen eines Mitglieds aus dem Portal ist dauerhaft (sofern keine Backups verfügbar sind), und solche Tools, die diese Aktion automatisieren, sollten vorsichtig sein. Außerdem haben einige Benutzer möglicherweise eine Fülle von Inhalten in das Portal hochgeladen. Diese Inhalte müssten gelöscht oder an einen anderen Benutzer übertragen werden, bevor das Mitglied entfernt wird.<\/P> <\/P> <\/P> <\/P>Apache JMeter<\/A> veröffentlicht unter der <\/SPAN>Apache<\/A> <\/SPAN>Lizenz 2.0.<\/A> Apache, Apache JMeter, JMeter, das Apache-Feder-Symbol und das Apache JMeter-Logo sind Marken der Apache Software Foundation.<\/SPAN><\/P> <\/P>