Network Analyst Route
Jednoduše řečeno, řešič trasy Network Analyst se používá k nalezení nejrychlejší cesty z jednoho místa na druhé. Tato projížděná cesta může zahrnovat pouze startovní a cílové místo, ale může také volitelně zastavit na několika místech a zároveň požadovat od řešiče generování pokynů krok za krokem pro každou trasu v řešení.
Poznámka: Funkce trasy je dostupná s licencí Network Analyst.
Zátěžové testování služby trasy Network Analyst
Network Analyst je vybaven mnoha schopnostmi a funkcemi pro řešení tras. Taková řešení lze provádět prostřednictvím ArcGIS Pro, ale často jsou využívána prostřednictvím služby ArcGIS. Protože poskytuje špičkovou technologii pro řešení tras, je logické chtít provést zátěžový test vaší lokálně běžící (trasy) služby řešiče, abyste zjistili její škálovatelný potenciál.
Existuje několik typů analýz poskytovaných rozšířením Network Analyst, tento článek používá trasy, protože jsou velmi snadné na práci... jedinými požadovanými vstupy jsou alespoň dva platné body zastávek. Tato vlastnost z něj činí dobrou volbu pro demonstraci, jak generovat data a použít je v zátěžovém testu proti službě trasy.
Poznámka: Průvodce v tomto článku používal ArcGIS Pro 2.9 se službami Network Analyst, které běžely v nasazení ArcGIS Enterprise 10.9.
Jak otestovat službu trasy Network Analyst?
Výuková data Network Analyst ArcGIS Pro
Pochopení procesů v tomto článku je nejefektivnější, pokud lze kroky sledovat pomocí stejných dat. Pro takový úkol tým Network Analyst zpřístupnil skvělou sadu dat.
Na arcgis.com je k dispozici výukový program nazvaný Network Analyst ArcGIS Pro Tutorial Data. V zabalené podobě má asi 132MB a obsahuje data Network Analyst pro několik různých měst: San Diego, Paříž a San Francisco. Geografický souřadnicový systém je: WGS 1984 (WKID: 4326). Data jsou veřejně přístupná.
Poznámka: Příklady v tomto článku se zaměří na dataset San Diego.
- Zobrazení dat ulic San Diego z ArcGIS Pro (s topografickou podkladovou mapou):

- Vrstvy Streets, Walking_Pathways nebo Network Dataset (NewSanDiego_ND) nemusí být povoleny k využití schopností Network Analyst
- Ve výše uvedeném příkladu jsou povoleny jako referenční bod ulic San Diego
- Tento článek nebude pokračovat do detailů vytváření, konfigurace nebo publikování síťového datasetu v ArcGIS Enterprise. Pro informace o těchto úkolech viz:
Poznámka: Příklady řešiče tras v tomto článku používají mapovou službu (s funkcí analýzy sítě) na rozdíl od geoprocesní služby. Mapová služba používá synchronní provedení.
Generování testovacích dat
Tento testovací úkol bude vyžadovat platné body zastávek k použití v testu JMeter.
Stejně jako u jiných článků o JMeter na Community potřebujeme dobrá testovací data, abychom získali co největší hodnotu z výsledků. A stejně jako dříve Load Testing Tools usnadňují tuto práci. Existuje dokonce specifický nástroj pro vytváření dat tras.
Verze 1.3.0 přidává několik pěkných vylepšení do nástroje "Generate Data (Solve Route)".
Zpřístupnění nástrojů z ArcGIS Pro
Jakmile byl projekt load-testing-tools stažen do vašeho počítače, umístěte rozbalenou složku do adresáře, který je přístupný nebo zpřístupněný ArcGIS Pro. Pokud máte již nainstalovanou předchozí verzi Load Testing Tools, tato aktualizovaná verze může být umístěna vedle ní (i když s jiným názvem složky) nebo ji může úplně nahradit.
Například:
- Umístěte složku load-testing-tools do C:\Users\[uživatelské_jméno]\Documents\ArcGIS
- Použijte Přidat připojení složky z Katalogu v ArcGIS Pro k zobrazení obsahu tohoto adresáře:

Nástroj "Generate Data (Solve Route)" může vytvářet testovací data ze (mapové) služby, lokální kopie dat nebo dat v rámci enterprise geodatabáze. Pro tento příklad lze použít jakákoli data ve formátu WGS 1984 (WKID: 4326) s oblastí zájmu zaměřenou kolem San Diego .
Spuštění nástroje Generate Data (Solve Route)
- Spuštění nástroje Generate Data (Solve Route) by mělo zobrazit rozhraní podobné následujícímu:

- V jeho nejjednodušší podobě je třeba zadat pouze cestu k csv souboru, který bude obsahovat body zastávek
- Ale protože chceme generovat náhodné body k použití jako zastávky, rádi bychom se vyhnuli jejich vytváření v zálivech, jezerech nebo oceánu
- Zde přichází na řadu volitelný parametr Omezující polygon
- Toto vstupní pole lze použít k odkazu na datovou vrstvu pro prostorové omezení oblasti generování bodů
- Ve skutečnosti upravíme všechny výchozí hodnoty
- Zobrazení polygonu (růžově) vymezujícího oblast zájmu dat ulic San Diego v ArcGIS Pro:

Poznámka: Tento polygon byl vytvořen ručně a není součástí datasetu San Diego
Poznámka: Z hlediska testování polygon nemusí zahrnovat každý segment vrstvy ulic
Vstupy nástroje Generate Data (Solve Route)
- Nastavte počet testů na:
- Nastavte počet zastávek na test na:
- Nasměrujte parametr Omezující polygon na:
- Nastavte výstup na cestu k souboru, kam budou výsledky zapisovány:
- C:\Users\[uživatelské_jméno]\Documents\ArcGIS\Projects\NetworkAnalystMap1\sandiegostops1.csv
- Klikněte na Spustit pro spuštění nástroje

- Zkoumání CSV souboru odhalí generovaná data zastávek
- Tato data budou použita přímo v testu Apache JMeter jako vstupní hodnoty.<\/FONT><\/LI><\/UL><\/LI>Zobrazení souboru v textovém editoru by mělo ukázat něco podobného následujícímu:<\/LI><\/UL>
<\/span><\/P>Funkce řešiče tras jsou neuvěřitelně rozsáhlé a mohou přijímat i jiné prostorové údaje, například:<\/SPAN>
Barriers, Polyline Barriers a Polygon Barriers jsou další vstupy, které lze předat jako parametr požadavku.<\/SPAN>Generování těchto dalších vstupů pro požadavky řešiče tras nebude v tomto článku pokryto.<\/SPAN><\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>Prostorová vizualizace generovaných bodů<\/SPAN><\/H3>Generované body používané jako zastávky v požadavcích lze přidat do projektu ArcGIS Pro pro prostorové zobrazení jejich umístění.<\/SPAN><\/P>V ArcGIS Pro použijte Catalog k nalezení a otevření souborové geodatabáze uvnitř projektu.<\/SPAN><\/LI>Nalezněte feature class random_pts.<\/SPAN>Přidejte feature class do aktuální mapy:<\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Testovací plán Route Solveru <\/H1>Pro stažení testovacího plánu Apache JMeter použitého v tomto článku viz: <\/SPAN>route_solver1.zip<\/A><\/STRONG><\/LI>Otevření testovacího plánu v Apache JMeter by mělo vypadat podobně jako následující:HTTP Request<\/H2>Test řešení trasy je jednoduchý a poměrně přímočarý. Veškerá logika testu je obsažena v jednom objektu JMeter HTTP Request. Podle stylu testování použitého v předchozích článcích je tento prvek požadavku umístěn uvnitř Transaction Controlleru.<\/P>
<\/span><\/P>Páry klíč/hodnota pro požadavek v tomto testu JMeter jsou založeny na dvou faktorech:<\/SPAN><\/P>Funkcionalita dostupná ve zveřejněné službě Network Analyst (a podkladových datech)<\/SPAN>Hodnoty v tomto testu byly převzaty přímo z výchozích hodnot použitých z REST endpointu zveřejněné služby San Diego, například:<\/SPAN>https:\/\/yourwebadaptor.domain.com/server/rest/services/NetworkAnalyst/SanDiegoRoute/NAServer/Route/solve <\/A><\/STRONG>
Verze ArcGIS Enterprise (ArcGIS Server)
- Některé verze přidávají nové schopnosti
- Tento test je založen na zveřejněné službě ze sady dat San Diego a ArcGIS Enterprise 10.9
Různé síťové datasetty mohou mít různé možnosti parametrů požadavků dostupné nebo vyplněné ve výchozím nastavení. Některé parametry, pokud jsou povoleny (například returnDirections), řeknou řešiči, aby vrátil více informací. To zase žádá službu o více práce, což zvýší dobu odezvy požadavku.
Poznámka: Zobrazení HTTP Request z Obsahu (vlevo v Test Plánu) se zobrazí jako kombinace proměnných JMeter a řetězců. Toto je záměrné. Tyto hodnoty budou vyplněny při přehrávání (v objektu View Results Tree a surovém výsledkovém souboru).
Nastavení Thread Group
Testovací plán JMeter je nakonfigurován pro zatěžovací test trvající 20 minut. V tomto příkladu testu používajícím dvě zastávky pro každý požadavek trasy by měl řešič fungovat dobře a vrátit slušný počet vzorků (např. odpovědí ze serveru) pro každý krok.
- Různá prostředí a data mohou vyžadovat alternativní nastavení k dosažení požadovaných výsledků testu, upravte nastavení vláken testu podle potřeby.

Validace Test Plánu
Jako nejlepší praxi je vždy dobré ověřit výsledky vrácené v GUI JMeter před spuštěním skutečného zatěžovacího testu z příkazového řádku.
- Použijte posluchač View Results Tree k asistenci při validaci
- Testovací plán pro tento článek obsahuje posluchač View Results Tree, ale je deaktivován
- Povolte jej pro zobrazení výsledků při spuštění testu z GUI
- Z GUI spusťte test
- Nechte test běžet asi 20 sekund
Transakce
- Vyberte jednu z transakcí "Route"
- Sekce View Results Tree by měla vypadat následovně:

- V tomto příkladu byly všechny transakce úspěšně dokončeny
- Někdy při zastavení přehrávání může poslední transakce ve View Results Tree selhat, protože byla zastavena "uprostřed požadavku"; toto lze bezpečně ignorovat
Požadavky
- Rozbalte jednu z transakcí "Route"
- Zvolte HTTPS požadavek uvnitř ní
- Výsledky by měly vypadat následovně:

- V tomto příkladu byl vybraný požadavek úspěšně dokončen (jak naznačuje zelená fajfka)
- Úspěch nadřazené transakce již tento stav indikoval
- Z karty výsledků Sampler rychle nahlédněte do pole Velikost v bajtech
- V tomto příkladu byla velikost požadavku asi 15KB, což obvykle znamená, že byla vrácena dobrá geometrická data; jinými slovy odpovědi nebyly "prázdné", což je další důkaz úspěchu
- Zkontrolujte URL požadavku
- Zmiňovaná hodnota URL požadavku se během běhu vyplní
- Klikněte na kartu Response data a podkartu Response Body
- Toto ukazuje textový pohled na data vrácená z požadavku:

Poznámka: Geometrie tras vrácené jsou běžně vykreslovány v JavaScriptových aplikacích založených na webovém prohlížeči. Ačkoli Apache JMeter je (testovací) klient, tyto geometrické odpovědi ze serveru prostorově nevykresluje tímto způsobem.<\/STRONG><\/FONT><\/P>Provedení testu<\/H1>Zátěžový test by měl být spuštěn stejným způsobem jako typický JMeter Test Plan.<\/P>Pro příklad, jak spustit test podle doporučení týmu Apache JMeter, viz skript runMe.bat přiložený k projektu route_solver1.zip. <\/P>Skript runMe.bat obsahuje proměnnou jmeterbin<\/EM> <\/SPAN>, kterou je třeba nastavit na odpovídající hodnotu pro vaše prostředí<\/LI>Pokud byla služba Network Analyst route publikována jako dedikovaná, <\/FONT>před spuštěním zátěžového testu upravte minimální a maximální počet instancí dle potřeby<\/FONT>
Pro více informací viz: Nastavení instancí služby<\/A> <\/STRONG><\/FONT><\/LI><\/UL><\/LI>Publikovaná služba route použitá v tomto článku byla dedikovaná s maximálním počtem instancí nastaveným na 4- Komponenta ArcGIS Server běžela na systému se 4 jádry CPU<\/LI><\/UL><\/LI><\/UL>
Poznámka: Vždy je doporučeno<\/U><\/EM> koordinovat čas zahájení a délku trvání zátěžového testu s příslušnými osobami ve vaší organizaci. To zajišťuje minimální dopad na uživatele a další kolegy, kteří mohou také potřebovat používat vaše on-premise ArcGIS Enterprise Site. Navíc to pomáhá zabránit šumu systému<\/EM> způsobenému jinými aktivitami a používáním, které by mohly "znečistit" výsledky testu.<\/STRONG><\/FONT><\/P>Poznámka: Z několika důvodů se důrazně doporučuje nikdy nezátěžovat ArcGIS Online<\/EM><\/U>.<\/STRONG><\/FONT><\/P>
JMeter Report<\/H1>Křivka propustnosti<\/H2>Automaticky generovaná zpráva JMeter může poskytnout přehled o propustnosti služby route pod zátěžíProtože každá Route Transaction obsahovala jeden požadavek, obě metriky (požadavek a transakce) prakticky ukazovaly stejnou hodnotu; to je očekávané vzhledem k návrhu testu<\/LI><\/UL><\/LI>V tomto případě byla špičková propustnost pro dvoustupňové řešení trasy asi 15 transakcí za sekunduVzhledem k testovanému prostředí to odpovídá přibližně 54 000 řešení tras za hodinu <\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Výkonnostní křivky<\/H2>Automaticky generovaná zpráva JMeter může také poskytnout přehled o výkonnosti služby route pod zátěžíProtože každá Route Transaction obsahovala jeden požadavek, obě metriky (požadavek a transakce) prakticky ukazovaly stejnou hodnotu; to je očekávané vzhledem k návrhu testu<\/LI><\/UL><\/LI>Výkon požadavků na trasu byl dobrý a během celého zátěžového testu pod 1 sekundouKde propustnost poprvé dosáhla vrcholu 15 transakcí za sekundu, tam byl měřen čas odezvyV tomto bodě testu byl průměrný čas odezvy asi 333 ms neboli 0,33 sekundy<\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Může být také užitečné vidět vykreslené časy odezvy vzhledem ke krokové zátěži (konfigurované vlákna)Předchozí grafy ukazovaly hodnoty vzhledem k času<\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Závěrečné myšlenky<\/H1>Apache JMeter Test Plan v tomto článku představuje programový přístup k aplikaci zátěže na službu Network Analyst route. Jednou ze silných stránek tohoto testu je jeho snadná konfigurace a údržba.<\/P>Automaticky generovaná zpráva JMeter poskytuje grafy a souhrny, které lze použít k rychlé analýze výkonu a škálovatelnosti služby route.<\/P>Ke stažení Apache JMeter Test Plan použitého v tomto článku viz: route_solver1.zip<\/<A>\/<\STRONG> <\/<LI>Ke stažení datasetu San Diego použitého v tomto článku viz: Network Analyst ArcGIS Pro Tutorial Data<\/<A>\/<\STRONG> <\/<P> <\/<P> <\/<P >
Apache JMeter <\/<A > vydaný pod <\/<SPAN >Apache <\/<A > <\/<SPAN >Licence 2.0.<\/<A > Apache, Apache JMeter, JMeter, pírko Apache a logo Apache JMeter jsou ochranné známky Apache Software Foundation.<\/<SPAN ><\/<P >