Automatizace správy s Apache JMeteru
Apache JMeter je skvělý nástroj pro testování zátěže, ale je to také fantastický rámec pro automatizaci! Existuje mnoho administrativních pracovních postupů ArcGIS Enterprise a automatizačních řešení pro váš portál. Tento článek se zaměřuje na použití JMeteru k volání ArcGIS REST API za účelem provádění úkolů správy uživatelů, které by byly únavné pro velké množství členů. Naštěstí GUI JMeteru usnadňuje nastavení testu a vytváření REST požadavků.
Testovací plány správy uživatelů
Tento projekt obsahuje 6 testovacích plánů pro ArcGIS Enterprise 10.9/10.9.1:
- Přidat nového uživatele
- Jednoduchý základní test, který pouze přidává nové členy
- Přidat nového uživatele s několika možnostmi
- Test, který přidává nové členy, ale umožňuje specifikovat startovací stránku a skupinu portálu
- Přidat nového uživatele s více možnostmi
- Test, který přidává nové členy (startovací stránka a skupina), ale může nastavit doplňkové licence
- Nastavit bezpečnostní otázku/odpověď pro nové uživatele
- Nastaví bezpečnostní otázku a odpověď pro nově přidané členy, kteří se ještě nepřihlásili
- Deaktivovat uživatele
- Test, který deaktivuje uživatele
- Aktivovat uživatele
- Test, který aktivuje uživatele
Konfigurace CSV datové sady uživatelů
Pro pohodlí všechny testovací plány v projektu pracují ze stejného seznamu uživatelů ze stejného souboru. V testovacích plánech je tento odkazován prvkem CSV Data Set Config pojmenovaným "Users File".

Textový soubor seznamu uživatelů
Přiložený textový soubor obsahuje informace o uživatelích pro práci s 10 různými členy. Nicméně může být upraven a/nebo rozšířen podle potřeb vaší organizace.
- Existuje mnoho různých možností pro role a userLicenseTypeId pole
- Tato volba může také ovlivnit doplňkové licence, protože některé automaticky zahrnují specifická oprávnění

Poznámka: Doporučuje se nejprve spustit testovací plány s malým seznamem uživatelů, abyste zjistili, zda je vše správně nakonfigurováno pro váš web.
Přihlášení administrátora
S výjimkou jednoho mají všechny přiložené testovací plány logiku pro přihlášení jako vestavěný administrátor Portal for ArcGIS na začátku testu. Pro efektivitu je tato akce provedena pouze jednou (na začátku) pro každý testovací vlákno.
Poznámka: Při připojení ke komponentě Portal for ArcGIS v ArcGIS Enterprise budou testovací plány odesílat požadavky přímo na instanci "arcgis" na portu 7443.
Přidat nového uživatele (portal_users_add1)
Testovací plán portal_users_add1 je jednoduchý způsob, jak přidat nové členy do Portal for ArcGIS.
- Přihlašovací údaje administrátora jsou zadány v sekci Uživatelsky definované proměnné testovacího plánu
- S výjimkou uvedenou jinde je tento krok proveden na začátku všech přiložených testů

- Jakmile se test autentizuje jako administrátor, zavolá funkci createUser a opakuje ji pro každý řádek v souboru obsahujícím seznam uživatelů
- Protože tento test používá jediný HTTP požadavek k vytvoření uživatele, je to nejrychlejší a nejškálovatelnější způsob přidání nových členů
- Tento test pouze přidává uživatele, nevykonává žádné další úkoly jako přidání člena do skupiny, nastavení startovací stránky nebo výběr doplňkových licencí
- Pro pohodlí je uživatelské jméno připojeno ke všem transakcím a požadavkům založeným na uživateli
- Toto pomáhá při řešení problémů, pokud konkrétní iterace testu nemohla přidat určitého uživatele
- Všechny přiložené testy následují tento návrhový vzor

Tento test je podobný procesu používanému v příkladu: Přidání členů do portálu zdroje, příkazovém řádku utility a funkce přidání členů ze souboru, která je zabudována do Portal for ArcGIS.
Přidat nového uživatele (portal_users_add2)
Testovací plán portal_users_add2 je snadný způsob, jak přidat nové členy do Portal for ArcGIS, ale zahrnuje několik možností. Kromě vytvoření uživatele tento test umožňuje administrátorovi nastavit další vlastnosti jako startovací stránku (také známou jako vstupní stránka) a skupinu portálu.
- Tento test rozšiřuje proces vytváření uživatele o 3 další požadavky na každého uživatele
- Pokud vytváříte tisíce uživatelů, můžete si všimnout, že tento test trvá déle než portal_users_add1
- To je způsobeno tím, že probíhá více práce

Poznámka: Nový člen může být při vytvoření skutečně přidán do více než jedné skupiny portálu. Nicméně pro jednoduchost portal_users_add2 přidává uživatele pouze do jedné skupiny a stejná skupina se používá pro všechny členy. Použitá skupina je definována z proměnné Uživatelsky definovaná proměnná PortalGroupId. Tento GUID Id musí být ručně vyhledán ve vašem Portálu for ArcGIS. Pokud nechcete uživatele přidávat do skupiny, jednoduše deaktivujte požadavek setProperties v testu.
Přidat nového uživatele (portal_users_add3)
Testovací plán portal_users_add3 je automatizovaný způsob přidání nových členů do Portal for ArcGIS s nejvíce možnostmi pro administrátora. Tento test umožňuje nastavit startovací stránku a skupinu portálu, ale také přidává možnost specifikovat doplňkové licence jako ArcGIS Pro a rozšíření a určité rozšíření typu User.
- Ihned po autentizaci administrátora provede test volání k získání GUID pro rozšíření ArcGIS Pro a typu User
- Tato GUID budou později použita při přiřazování licencí uživatelům
<\/span><\/P>Doplňkové licence přidávají několik dalších požadavků do procesu vytváření uživatele<\/SPAN>Ačkoli jsou tyto dodatečné požadavky výkonné, mohou přidat čas k celkovému úkolu, protože jsou prováděny pro každého vytvořeného člena<\/SPAN><\/LI><\/UL><\/LI>Test je nakonfigurován tak, aby přiřadil uživateli:<\/SPAN>ArcGIS Pro Advanced a všechny dostupné Extensions (k verzi 10.9\/10.9.1)<\/SPAN><\/LI>Všechny User type extensions<\/SPAN><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Poznámka: Existují i jiné Add-on licence jako Applications a ArcGIS Runtime extensions, které nebyly zahrnuty v portal_users_add3 Test Plan. Mnoho z těchto dalších licencí by vyžadovalo vlastní specifický HTTP request. Opět, i když to může být pohodlné a výkonné, může to přidat čas k procesu přidávání každého uživatele. Existují také některé licence jako App bundles, které nebyly zahrnuty v testu, protože jsou automaticky zahrnuty s typem uživatelské licence (např. Creator).<\/STRONG><\/FONT><\/P>Nastavení bezpečnostní otázky a odpovědi pro nové uživatele (portal_users_update_profile1)<\/H1>Test Plan portal_users_update_profile1<\/STRONG> je trochu unikátní. Je to jediný test v projektu, který se nepřihlašuje jako Portal for ArcGIS administrátor. Místo toho se přihlašuje jako každý uživatel a předpokládá, že provádí počáteční přihlášení pro každého člena, protože nastaví jejich bezpečnostní otázku a odpověď.<\/P>Přednastavení bezpečnostní otázky a odpovědi je zcela volitelné<\/LI>Vaše organizace může místo toho preferovat, aby si každý uživatel nastavil tyto hodnoty při prvním přihlášení<\/LI><\/UL>
<\/span><\/P>Deaktivace uživatele (portal_users_disable1)<\/H1>Test Plan portal_users_disable1<\/STRONG> je automatizovaný způsob, jak vzít seznam uživatelů a deaktivovat jejich členství v portálu. Jakmile je účet deaktivován, uživatel se nemůže přihlásit. Toto je méně destruktivní funkce než smazání. <\/P>Deaktivace uživatelů je poměrně přímočará a provádí se jedním REST voláním na disableUsers<\/LI><\/UL>Poznámka: Pro jednoduchost request disableUsers v portal_users_disable1 Test Plan deaktivuje vždy pouze jednoho člena najednou. Nicméně pro každé volání funkce disableUsers request přijímá skupiny uživatelů pro lepší efektivitu. Od verze 10.9\/10.9.1 přijímá disableUsers až 25 uživatelů najednou.<\/STRONG><\/FONT><\/P>
<\/span><\/P>Poznámka: Test portal_users_disable1 lze úspěšně spustit opakovaně na stejných uživatelích. Z pohledu ArcGIS Enterprise to znamená pouze opětovné deaktivování člena(ů).<\/STRONG><\/FONT><\/P>Aktivace uživatele (portal_users_enable1)<\/H1>Test Plan portal_users_enable1<\/STRONG> je automatizovaný způsob, jak vzít seznam uživatelů a aktivovat jejich členství v portálu. Jakmile je účet aktivován, uživatel se může přihlásit.<\/P>Aktivace uživatelů je poměrně přímočará a provádí se jedním REST voláním na enableUsers<\/LI><\/UL>Poznámka: Pro jednoduchost request enableUsers v portal_users_enable1 Test Plan aktivuje vždy pouze jednoho člena najednou. Nicméně pro každé volání funkce enableUsers request přijímá skupiny uživatelů pro lepší efektivitu. Od verze 10.9\/10.9.1 přijímá enableUsers až 25 uživatelů najednou.<\/FONT><\/STRONG> <\/P>
Poznámka: Test portal_users_enable1 lze úspěšně spustit opakovaně na stejných uživatelích. Z pohledu ArcGIS Enterprise to znamená pouze opětovné aktivování člena(ů).
Nastavení Thread Group
Na rozdíl od předchozích testů Apache JMeter Article, které jsou časově dominantní, jsou Test Plans v tomto projektu založeny na iteracích. Jinými slovy, při vytváření nebo deaktivaci konkrétních uživatelů potřebujeme pracovat pouze jednou s uživateli ze seznamu zájmu.
Nastavení "step load" Thread Group, které je ve výchozím nastavení součástí každé instalace Apache JMeter, obsahuje velmi pohodlné nastavení Loop Count pro přesné určení počtu iterací, které by měl Test Plan vykonat
Nastavení Loop Count by mělo odpovídat počtu řádků v "Users File", které obsahují členy k přidání/deaktivaci/aktivaci
Poznámka: Všechny Test Plans v projektu jsou nakonfigurovány se stejným nastavením Thread Group. Navíc všechny zahrnuté testy jsou spuštěny s jedním současným testovacím vláknem.

Spuštění testu
Na rozdíl od předchozích testů Apache JMeter Article spouštěných z příkazové řádky můžete pravděpodobně tento administrativní automatizační Test Plans spustit přímo z GUI. Samozřejmě záleží na tom, kolik uživatelů plánujete vytvořit, deaktivovat nebo aktivovat. Pokud pracujete s několika stovkami, GUI bude vyhovující. Pokud však plánujete vytvořit tisíce nebo desetitisíce uživatelů (nebo více), budete chtít spustit Test Plans z příkazové řádky pro nejlepší využití zdrojů testovacího pracovního stanoviště.
Zobrazte skript runMe.bat zahrnutý v projektu portal_administration1.zip jako příklad toho, jak spustit test podle doporučení týmu Apache JMeter. Tento skript je nakonfigurován ke spuštění portal_users_add3, ale lze jej snadno upravit pro spuštění jakéhokoli testu.
- Skript runMe.bat obsahuje proměnnou jmeterbin, kterou bude třeba nastavit na odpovídající hodnotu pro vaše prostředí
Poznámka: Vždy se doporučuje koordinovat čas spuštění s příslušným personálem vaší organizace. To zajistí minimální dopad na uživatele a další kolegy, kteří mohou také potřebovat používat vaše on-premise ArcGIS Enterprise Site.
Ověření Test Plans
Pokud je test spuštěný z GUI, bylo do všech zahrnutých Test Plans přidáno několik posluchačů nabízejících okamžitou zpětnou vazbu o stavu.
- Prvek View Results Tree nabízí pohodlný způsob rychlého zkoumání stavu každé transakce (např. "Create User Account -- portalpublisher2") a jejích příslušných požadavků (např. "\arcgis\portaladmin\security\users\createUser--portalpublisher2")
- Díky pravidlům Response Assertion přidaným ke každému požadavku je zelená fajfka důvěryhodným indikátorem úspěšné transakce nebo požadavku

- The View Results in Table element offers a handy way to see status of each transaction <\/EM><\/STRONG>jeho doba odezvy vše z jedné tabulky<\/SPAN><\/LI><\/UL>
<\/span><\/P>Řešení problémů s prováděním testu z příkazového řádku<\/H2>Jak bylo zmíněno dříve, při práci s velkým množstvím uživatelů je doporučený přístup spouštět Testovací plány z příkazového řádku. Administrátoři však budou velmi zajímat, kteří uživatelé, pokud vůbec někdo, narazili na chyby během automatizace. Právě zde může JMeter Test Report nabídnout skvělý přehled.<\/P>Z koláčového grafu Request Summary na úvodní stránce Test Reportu můžete rychle zjistit, zda došlo k nějakým chybám<\/LI><\/UL>
<\/span><\/P> Pokud během testu došlo k chybám, tabulka Statistiky (dole na první stránce reportu) umožňuje snadno najít neúspěšné požadavky uživatelů při třídění podle sloupce FAIL<\/LI><\/UL>
<\/span><\/P>Závěrečné myšlenky<\/H1>Existuje mnoho frameworků, nástrojů a utilit pro automatizaci administrativních úkolů v ArcGIS Enterprise. Pravděpodobně mají všechny své silné stránky. Apache JMeter je užitečný, protože poskytuje grafické rozhraní pro vytváření a úpravu REST požadavků potřebných k provedení funkcí. HTML\/JavaScript reporty, které lze automaticky vytvořit na konci testu, jsou příjemným bonusem pro pochopení, zda byl celý úkol úspěšný nebo které konkrétní části selhaly.<\/P>Pro stažení Apache JMeter Test Plánu použitého v tomto článku viz: portal_administration1.zip<\/A> <\/STRONG><\/LI><\/UL>Krátké upozornění k použití více vláken<\/H2>Všechny zahrnuté testy by mohly být nakonfigurovány tak, aby používaly více současných vláken pro rychlejší provedení. Z technického hlediska je to v pořádku, ale všechny tyto testy provádějí zápisové operace do interní databáze komponenty Portal for ArcGIS. Stejně jako u jakékoli databáze mohou být tyto operace náročné na zdroje a mohou probíhat jen omezenou rychlostí. Použití příliš mnoha současných vláken může ve skutečnosti zpomalit výkon těchto testů.<\/P>Krátké upozornění k mazání uživatelů<\/H2>Testy zahrnuté v projektu nezahrnovaly operaci mazání uživatele. Odstranění člena z portálu je trvalé (pokud nejsou k dispozici zálohy) a nástroje automatizující tuto akci by měly postupovat opatrně. Navíc někteří uživatelé mohli nahrát velké množství obsahu do portálu. Tento obsah by bylo třeba před odstraněním člena smazat nebo převést na jiného uživatele.<\/P> <\/P> <\/P> <\/P>Apache JMeter<\/A> uvolněný pod <\/SPAN>Apache<\/A> <\/SPAN>Licence 2.0.<\/<\span> Apache, Apache JMeter, JMeter, pírko Apache a logo Apache JMeter jsou ochranné známky Apache Software Foundation.<\/<\span>\/<\p>\/ <\/<\p>