Automatisering van administratie met Apache JMeter
Apache JMeter is een geweldig load testing tool, maar het is ook een fantastisch automatiseringsframework! Er zijn veel ArcGIS Enterprise administratieve workflows en automatiseringsoplossingen voor uw portal. Dit artikel richt zich op het gebruik van JMeter om de ArcGIS REST API aan te roepen om gebruikersbeheer taken uit te voeren die saai zouden zijn voor grote aantallen leden. Gelukkig maakt de GUI van JMeter het opzetten van de test en het bouwen van REST-verzoeken eenvoudig.
De User Administration Test Plans
Dit project bevat 6 Test Plans voor ArcGIS Enterprise 10.9/10.9.1:
- Voeg een nieuwe gebruiker toe
- Een eenvoudige, basis test die alleen nieuwe leden toevoegt
- Voeg een nieuwe gebruiker toe met een paar opties
- Een test die nieuwe leden toevoegt maar waarmee de Startpagina en een Portal Groep kunnen worden opgegeven
- Voeg een nieuwe gebruiker toe met meer opties
- Een test die nieuwe leden toevoegt (Startpagina en Groep) maar Add-on licenties kan instellen
- Stel de beveiligingsvraag/-antwoord in voor nieuwe gebruikers
- Stel de beveiligingsvraag en antwoord in voor nieuw toegevoegde leden die nog niet hebben ingelogd
- Schakel een gebruiker uit
- Een test die gebruikers uitschakelt
- Schakel een gebruiker in
- Een test die gebruikers inschakelt
De CSV Data Set Config van Gebruikers
Voor het gemak werken alle Test Plans in het project met dezelfde lijst gebruikers uit hetzelfde bestand. In de Test Plans wordt hiernaar verwezen door het CSV Data Set Config element genaamd "Users File".

De Tekstbestand Lijst van Gebruikers
Het bijgevoegde tekstbestand bevat gebruikersinformatie voor het werken met 10 verschillende leden. Het kan echter worden aangepast en/of uitgebreid om aan de behoeften van uw organisatie te voldoen.
- Er zijn veel verschillende opties voor de role en userLicenseTypeId velden
- Deze keuzes kunnen ook invloed hebben op de Add-on licenties aangezien sommige automatisch specifieke rechten bevatten

Opmerking: Het wordt aanbevolen om eerst de testplannen uit te voeren met een kleine lijst gebruikers om te zien of alles correct is geconfigureerd voor uw Site.
Administrator Login
Met uitzondering van één, bevatten alle bijgevoegde Test Plans logica om aan het begin van de test in te loggen als een ingebouwde Portal for ArcGIS administrator. Voor efficiëntie wordt deze actie slechts één keer uitgevoerd (aan het begin) per test thread.
Opmerking: Bij verbinding met het Portal for ArcGIS onderdeel van ArcGIS Enterprise, zullen de Test Plans verzoeken rechtstreeks naar de "arcgis" instantie op poort 7443 sturen.
Voeg een Nieuwe Gebruiker Toe (portal_users_add1)
Het portal_users_add1 Test Plan is een eenvoudige manier om nieuwe leden toe te voegen aan Portal for ArcGIS.
- De administrator referenties worden gespecificeerd vanuit de User Defined Variables sectie van het Test Plan
- Tenzij anders vermeld, wordt deze stap aan het begin van alle bijgevoegde tests uitgevoerd

- Zodra de test zich authenticeert als administrator, roept deze de createUser functie aan en herhaalt dit voor elke regel in het bestand met de lijst gebruikers
- Aangezien deze test één enkele HTTP Request gebruikt om de gebruiker aan te maken, is dit de snelste en meest schaalbare manier om nieuwe leden toe te voegen
- Deze test voegt alleen gebruikers toe, voert geen andere taken uit zoals lid toevoegen aan een groep, instellen van de Startpagina of selecteren van add-on licenties
- Voor het gemak wordt de gebruikersnaam toegevoegd aan alle op gebruikers gebaseerde transacties en verzoeken
- Dit helpt bij het oplossen van problemen als een bepaalde iteratie van de test een specifieke gebruiker niet kon toevoegen
- Alle bijgevoegde tests volgen dit ontwerp patroon

Deze test lijkt op het proces dat wordt gebruikt in de Voorbeeld: Voeg leden toe aan het portal resource, command line utility en Leden toevoegen vanuit een bestand-functie ingebouwd in Portal for ArcGIS.
Voeg een Nieuwe Gebruiker Toe (portal_users_add2)
Het portal_users_add2 Test Plan is een gemakkelijke manier om nieuwe leden toe te voegen aan Portal for ArcGIS maar bevat enkele opties. Naast het creëren van de gebruiker, stelt deze test de administrator in staat extra eigenschappen zoals de Startpagina (ook bekend als landingspagina) en een Portal Groep in te stellen.
- Deze test breidt het gebruikerscreatieproces uit met 3 extra verzoeken per gebruiker
- Als u duizenden gebruikers maakt, merkt u misschien dat deze test langer duurt dan portal_users_add1
- Dit komt doordat er meer werk wordt verricht

Opmerking: Een nieuw lid kan eigenlijk aan meer dan één Portal Groep worden toegevoegd bij creatie. Echter, voor eenvoudigheid voegt portal_users_add2 alleen de gebruiker toe aan één groep en wordt dezelfde groep gebruikt voor alle leden. De gebruikte groep wordt gedefinieerd vanuit de PortalGroupId User Defined Variable. Deze GUID Id moet handmatig worden opgezocht vanuit uw Portal for ArcGIS Site. Als u de gebruiker niet wilt toevoegen aan een Groep, schakelt u gewoon het setProperties verzoek uit in de test.
Voeg een Nieuwe Gebruiker Toe (portal_users_add3)
Het portal_users_add3 Test Plan is een geautomatiseerde manier om nieuwe leden toe te voegen aan Portal for ArcGIS met de meeste opties voor een administrator. Deze test stelt u in staat om de Startpagina en Portal Groep in te stellen maar voegt ook de mogelijkheid toe om Add-on licenties zoals ArcGIS Pro en Extensions en bepaalde User type extensies op te geven.
- Meteen na authenticatie als administrator maakt de test een oproep om GUIDs op te halen voor ArcGIS Pro en User type extensies
- Dergelijke GUIDs worden later gebruikt bij het toewijzen van licenties aan gebruikers
<\/span><\/P>De add-on licenties voegen meerdere verzoeken toe aan het gebruikerscreatieproces<\/SPAN>Hoewel krachtig, kunnen deze extra verzoeken tijd toevoegen aan de totale taak omdat ze worden uitgevoerd voor elk lid dat wordt aangemaakt<\/SPAN><\/LI><\/UL><\/LI>De test is geconfigureerd om de gebruiker toe te wijzen:<\/SPAN>ArcGIS Pro Advanced en alle beschikbare Extensies (vanaf 10.9\/10.9.1)<\/SPAN><\/LI>Alle User type extensies<\/SPAN><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Opmerking: Er zijn andere Add-on licenties zoals Applications en ArcGIS Runtime extensies die niet zijn opgenomen in het portal_users_add3 Test Plan. Veel van deze andere licenties zouden hun eigen specifieke HTTP-verzoek vereisen. Nogmaals, hoewel dit handig en krachtig kan zijn, kan het tijd toevoegen aan het proces van het toevoegen van elke gebruiker. Er zijn ook enkele licenties zoals App bundles die niet in de test zijn opgenomen omdat ze automatisch worden meegeleverd met het gebruikerslicentietype (bijv. Creator).<\/STRONG><\/FONT><\/P>Stel de Beveiligingsvraag\/Antwoord in voor Nieuwe Gebruikers (portal_users_update_profile1)<\/H1>Het portal_users_update_profile1<\/STRONG> Test Plan is een beetje uniek. Het is de enige test in het project die niet inlogt als een Portal for ArcGIS beheerder. In plaats daarvan logt het in als elke gebruiker en gaat ervan uit dat het de eerste login uitvoert voor elk lid omdat het hun beveiligingsvraag en antwoord zal instellen.<\/P>Het vooraf instellen van de beveiligingsvraag en antwoord is volledig optioneel<\/LI>Uw organisatie geeft er mogelijk de voorkeur aan dat elke gebruiker deze waarden instelt wanneer ze voor het eerst inloggen<\/LI><\/UL>
<\/span><\/P>Schakel een Gebruiker uit (portal_users_disable1)<\/H1>Het portal_users_disable1<\/STRONG> Test Plan is een geautomatiseerde manier om een lijst met gebruikers te nemen en hun lidmaatschap van het portal uit te schakelen. Zodra het account is uitgeschakeld, kan de gebruiker niet meer inloggen. Dit is een minder destructieve functie dan verwijderen. <\/P>Het uitschakelen van gebruikers is vrij eenvoudig en wordt uitgevoerd met één REST-aanroep naar disableUsers<\/LI><\/UL>Opmerking: Voor eenvoud schakelt het disableUsers-verzoek in het portal_users_disable1 Test Plan slechts één lid tegelijk uit. Echter, voor elke oproep naar de disableUsers-functie accepteert het verzoek groepen gebruikers voor verbeterde efficiëntie. Vanaf 10.9\/10.9.1 accepteert disableUsers maximaal 25 gebruikers tegelijk.<\/STRONG><\/FONT><\/P>
<\/span><\/P>Opmerking: De portal_users_disable1 test kan succesvol worden uitgevoerd op dezelfde gebruikers. Vanuit het perspectief van ArcGIS Enterprise schakelt het gewoon opnieuw de leden uit.<\/STRONG><\/FONT><\/P>Schakel een Gebruiker in (portal_users_enable1)<\/H1>Het portal_users_enable1<\/STRONG> Test Plan is een geautomatiseerde manier om een lijst met gebruikers te nemen en hun lidmaatschap van het portal in te schakelen. Zodra het account is ingeschakeld, kan de gebruiker weer inloggen.<\/P>Het inschakelen van gebruikers is vrij eenvoudig en wordt uitgevoerd met één REST-aanroep naar enableUsers<\/LI><\/UL>Opmerking: Voor eenvoud schakelt het enableUsers-verzoek in het portal_users_enable1 Test Plan slechts één lid tegelijk in. Echter, voor elke oproep naar de enableUsers-functie accepteert het verzoek groepen gebruikers voor verbeterde efficiëntie. Vanaf 10.9\/10.9.1 accepteert enableUsers maximaal 25 gebruikers tegelijk.<\/FONT><\/STRONG> <\/P>
Opmerking: De portal_users_enable1 test kan succesvol worden uitgevoerd op dezelfde gebruikers. Vanuit het perspectief van ArcGIS Enterprise schakelt het gewoon opnieuw de leden in.<\/
STRONG>
<\/
FONT>
<\/
STRONG>
<\/
P>
De Thread Group Configuratie<\/
SPAN>
<\/
H1>
In tegenstelling tot de vorige Apache JMeter Artikel tests die tijdsdominant zijn, zijn de Test Plans in dit project iteratie-gebaseerd. Met andere woorden, bij het aanmaken of uitschakelen van specifieke gebruikers hoeven we slechts eenmaal te werken aan de relevante gebruikers uit de lijst.<\/
SPAN>
<\/
P>
De Thread Group "step load" configuratie die standaard wordt meegeleverd bij elke Apache JMeter installatie bevat een zeer handige Loop Count instelling om precies aan te geven hoeveel iteraties het Test Plan moet uitvoeren.<\/
SPAN>
De Loop Count instelling moet overeenkomen met het aantal regels in het "Users File" dat leden bevat die moeten worden toegevoegd, uitgeschakeld of ingeschakeld.<\/
SPAN>
<\/
LI>
<\/
UL>
<\/
LI>
<\/
UL>
Opmerking: Alle Test Plans in het project zijn geconfigureerd met dezelfde Thread Group instelling. Bovendien worden alle inbegrepen tests uitgevoerd met één gelijktijdige testthread.<\/
STRONG>
<\/
FONT>
<\/
P>

Testuitvoering
Aanvullend, anders dan bij eerdere Apache JMeter Artikel tests die vanaf de opdrachtregel worden uitgevoerd, kunt u deze administratieve automatisering Test Plans waarschijnlijk rechtstreeks vanuit de GUI uitvoeren. Dit hangt natuurlijk af van hoeveel gebruikers u wilt aanmaken, uitschakelen of inschakelen. Als u met enkele honderden werkt, is de GUI prima geschikt. Maar als u duizenden of tienduizenden gebruikers (of meer) wilt aanmaken, wilt u de Test Plans vanaf de opdrachtregel uitvoeren voor optimale efficiëntie van de testwerkstationbronnen.
Zie het runMe.bat script dat bij het portal_administration1.zip project wordt geleverd voor een voorbeeld hoe u een test kunt uitvoeren zoals aanbevolen door het Apache JMeter team. Dit script is geconfigureerd om portal_users_add3 uit te voeren, maar kan eenvoudig worden aangepast om elk van de tests uit te voeren.
- Het runMe.bat script bevat een jmeterbin-variabele die moet worden ingesteld op de juiste waarde voor uw omgeving
Opmerking: Het wordt altijd aanbevolen om de starttijd af te stemmen met de juiste personen binnen uw organisatie. Dit zorgt voor minimale impact op gebruikers en andere collega's die ook gebruik moeten maken van uw on-premise ArcGIS Enterprise Site.
Validatie van de Test Plans
Als de test vanuit de GUI wordt uitgevoerd, zijn er verschillende luisteraars toegevoegd aan alle inbegrepen Test Plans die directe feedback geven over de status.
- Het View Results Tree element biedt een handige manier om snel de status van elke transactie te bekijken (bijv. "Create User Account -- portalpublisher2") en diens respectievelijke verzoeken (bijv. "/arcgis/portaladmin/security/users/createUser--portalpublisher2")
- Dankzij de Response Assertion regel elementen toegevoegd aan elk verzoek, is het groene vinkje een betrouwbare indicator van een succesvolle transactie of verzoek

- The View Results in Table element offers a handy way to see status of each transaction and <\/EM><\/STRONG>de reactietijd allemaal vanuit één tabel<\/SPAN><\/LI><\/UL>
<\/span><\/P>Probleemoplossing bij een Command-line Testuitvoering<\/H2>Zoals eerder vermeld, wanneer u werkt met grote aantallen gebruikers, is de aanbevolen aanpak om de Testplannen vanaf de commandoregel uit te voeren. Beheerders zullen echter erg geïnteresseerd zijn om te begrijpen welke gebruikers, indien aanwezig, fouten hebben ondervonden via de automatisering. Hier kan het JMeter Testrapport waardevolle inzichten bieden.<\/P>Vanaf het Request Summary taartdiagram op de eerste pagina van het Testrapport kunt u snel zien of er fouten zijn opgetreden<\/LI><\/UL>
<\/span><\/P> Als er fouten zijn opgetreden tijdens de testrun, kan de Statistiektabel (onderaan de eerste rapportpagina) de mislukte gebruikersverzoeken gemakkelijk vindbaar maken door te sorteren op de FAIL-kolom<\/LI><\/UL>
<\/span><\/P>Slotgedachten<\/H1>Er zijn veel frameworks, tools en hulpprogramma's beschikbaar om administratieve taakautomatisering voor ArcGIS Enterprise uit te voeren. Waarschijnlijk hebben ze allemaal hun eigen sterke punten. Apache JMeter is handig omdat het een grafische interface biedt voor het bouwen en aanpassen van de REST-verzoeken die nodig zijn om de functies uit te voeren. De HTML\/JavaScript-rapporten die automatisch kunnen worden gemaakt aan het einde van een testrapport zijn een mooie bonus om te begrijpen of de hele taak succesvol was of welke specifieke onderdelen faalden.<\/P>Om het Apache JMeter Testplan te downloaden dat in dit artikel wordt gebruikt, zie: portal_administration1.zip<\/A> <\/STRONG><\/LI><\/UL>Een Kort Woord over het Gebruik van Meerdere Threads<\/H2>Al de inbegrepen tests kunnen worden geconfigureerd om meerdere gelijktijdige threads te gebruiken voor snellere uitvoering. Dit is technisch gezien prima, maar al deze tests voeren schrijfoperaties uit naar de interne database voor de Portal for ArcGIS-component. Zoals bij elke database kunnen dergelijke operaties veel middelen vergen en kunnen ze slechts tot een bepaalde snelheid gaan. Het gebruik van te veel gelijktijdige threads kan de prestaties van deze tests zelfs vertragen.<\/P>Een Kort Woord over het Verwijderen van Gebruikers<\/H2>De tests die bij het project zijn inbegrepen bevatten geen operatie voor het verwijderen van gebruikers. Het verwijderen van een lid uit het portal is permanent (zonder beschikbare back-ups) en dergelijke tools die deze actie automatiseren moeten voorzichtig zijn. Bovendien kunnen sommige gebruikers een overvloed aan inhoud naar het portal hebben geüpload. Deze inhoud moet worden verwijderd of overgedragen aan een andere gebruiker voordat dat lid wordt verwijderd.<\/P> <\/P> <\/P> <\/P>Apache JMeter<\/A> uitgebracht onder de <\/SPAN>Apache<\/A> <\/SPAN>License 2.0.<\/A> Apache, Apache JMeter, JMeter, het Apache-veerlogo en het Apache JMeter-logo zijn handelsmerken van de Apache Software Foundation.<\/SPAN><\/P> <\/