Proč testovat <\/SPAN>cacheovanou mapovou službu?<\/SPAN><\/H1>Cacheované mapové služby jsou populární a doporučovaný způsob, jak zajistit dobře fungující prezentaci statických dat. Typ cache služby je osvědčená technologie, ale stále mohou existovat požadavky na její testování pod zátěží, aby bylo možné přímo pozorovat její škálovatelnost na konkrétní architektuře nasazení. I když cacheované mapové služby fungují dobře, obsluhování tisíců <\/SPAN>současných požadavků na dlaždice může být náročné na hardwarové zdroje serveru.<\/SPAN><\/P>Poznámka: Kvůli rychlému tempu doručování a spotřeby zdroje může být load testing cacheovaných mapových služeb také náročný na využití hardwaru testovacího klientského pracovního stanoviště.<\/STRONG><\/FONT><\/P>Výzvy při testování cacheované mapové služby<\/SPAN><\/H1>Ve srovnání s load testingem funkce exportu mapy přináší správné<\/EM> testování cacheované mapové služby několik výzev, protože složení požadavků se s každou obrazovkou mapy mění. Jelikož základní schéma cache používá mřížkový design, rozsahy mapy některých posunů nebo přiblížení mohou stáhnout více či méně dlaždicových obrázků než jiné. Zohlednění tohoto reálného chování cache služby činí logiku testu složitější než při testování funkce exportu mapy.<\/SPAN><\/P>Logika testu by měla být také dynamická a pokrývat slušnou oblast zájmu. Převod HAR souboru zachycených požadavků na cache dlaždice do testu může být rychlý a snadný, ale neukazuje realistickou škálovatelnost služby. Je to kvůli malému vzorku požadavků na dlaždice, které se opakovaně používají.<\/SPAN><\/P>Obecně platí, že požadavky na jednotlivé cache dlaždice jsou rychlé...velmi<\/EM> rychlé. Kvůli tomuto chování musí logika testu také dobře fungovat, škálovat se službou a mít minimální režii na testovacím klientovi.<\/SPAN><\/P>Jak otestovat <\/SPAN>cacheovanou mapovou službu?<\/SPAN><\/H1>Kroky v tomto článku by měly fungovat s jakoukoli existující cacheovanou mapovou službou ve vašem lokálním nasazení ArcGIS Enterprise. Pokud však žádná není k dispozici, doporučuje se podívat se na dataset Natural Earth pro tento úkol.<\/SPAN><\/P>Dataset Natural Earth<\/H2>Ačkoli by kroky měly fungovat s jakýmikoli daty, průvodce procesem v tomto článku může být efektivnější, pokud je lze přímo následovat. V takových případech je skvělé obrátit se na Natural Earth datasets<\/A> , které poskytují slušné detaily map (na menších měřítcích) pokrývající celý svět.<\/SPAN><\/P>Stáhněte si zde dataset Natural Earth<\/A><\/STRONG> - Stažení uvedené výše je podmnožinou většího <\/LI>
Natural_Earth_quick_start.zip<\/A> a obsahuje upravený MXD pro ArcMap 10.8.1 a projekt ArcGIS Pro 2.8Návod: Vytvoření cacheované mapové služby<\/A><\/STRONG> <\/LI><\/UL>Poznámka: Doporučuje se seznámit se s některými metadaty cacheované mapové služby, protože load testing bude vyžadovat znalost některých těchto informací (např. xorigin, yorigin, tileCols, tileRows a prostorová reference stejně jako měřítka obsahující dlaždice).<\/STRONG><\/FONT><\/P>
Generování testovacích dat<\/SPAN><\/H2>S dostupnou cacheovanou mapovou službou je dalším krokem generování testovacích dat přes oblast zájmu.<\/SPAN><\/P>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 balíček Load Testing Tools<\/A> (pro ArcGIS Pro) tuto práci usnadňuje. Existuje dokonce specifický nástroj pro vytváření bounding box dat k použití s cacheovanými mapovými službami.<\/SPAN><\/P>Poznámka: Verze 1.3.0 Load Testing Tools přidala nástroj "Generate Bounding Boxes (Precision)".
Stáhněte a rozbalte balíček a poté zpřístupněte tuto složku ve svém projektu ArcGIS Pro.
Nástroj Generate Bounding Boxes (Precision)
Zahájení nástroje Generate Bounding Boxes (Precision) by mělo zobrazit rozhraní podobné následujícímu:
Před spuštěním nástroje upravme vstup tak, aby cílil generování dat na:Specifická měřítka mapy (v tomto případě tři různá měřítka)Měřítka 4622324.434309 a 1155581.108577 byla zachována<\span>
Měřítko 2311162.217155 bylo přidáno
Počet záznamů k vygenerování byl upraven tak, aby odrážel větší měřítka mapy
S poklesem čísla měřítka chceme, aby nástroj generoval více boxů
Konkretizovaná oblast zájmu (volitelné)
Byl přidán polygon Spojených států do nové mapy
Tento prvek byl nastaven jako omezující polygon

Klikněte na Spustit
Spuštění nástroje může chvíli trvat
Vizualizace vygenerovaných dat v ArcGIS Pro
Obrazovka Obsah bude naplněna přidáním nové tříd prvků, která vizuálně reprezentuje vygenerovaná data
Nebudou okamžitě vidět všechna vygenerovaná měřítka mapy

Vizualizace vygenerovaných dat v textovém editoru
Použitím průzkumníka souborového systému přejděte do projektu ArcGIS Pro použitého pro generování dat a otevřete jeden z csv souborů ve svém oblíbeném textovém editoru
Obsah souboru by měl vypadat podobně jako následující:

Test Apache JMeter bude nakonfigurován tak, aby každý z těchto bounding boxů převedl na odpovídající cache map tiles
Testovací plán cacheované mapové služby
K stažení Testovacího plánu Apache JMeter použitého v tomto článku viz: cache_tiles1.zip
Otevření Testovacího plánu v Apache JMeter by mělo vypadat podobně jako následující:
Upravte uživatelsky definované proměnné tak, aby odpovídaly vašemu prostředí
Xorigin, Yorigin, TileCols, TileRows jsou vlastnosti vytvořené mezipaměti mapy, které lze nalézt na stránce REST endpointu službyTileCols a TileRows se obvykle nacházejí pod Tile Info Výška a Šířka<\/LI><\/UL><\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Komponenty Testovacího Plánu<\/H2>CSV Data Set Config<\/H3>Prvky CSV Data Set Config v JMeteru slouží k odkazování na nově generovaná testovací data ze souborového systému. Aktuální verze Testovacího Plánu je vytvořena tak, aby využívala 3 různé CSV soubory (jeden pro každý datový soubor měřítka mapy).<\/SPAN><\/P>
<\/span><\/SPAN><\/P>Poznámka: Kromě User Defined Variables a nastavení Filename v prvcích CSV Data Set Config by nemělo být nic dalšího, co by vyžadovalo úpravy nebo změny v Testovacím Plánu. Logika testu je uvedena níže pouze pro vysvětlení, jak se hodnoty v HTTP Request naplní.<\/STRONG><\/FONT><\/P>Logika Seznamu Úrovní Detailu<\/H3>Pro zamezení složitější logiky testu v JMeteru je 24 pevných úrovní detailu mezipaměti mapy umístěno uvnitř třídy v prvku JSR223 Sampler testu. Tou "složitou alternativou" by bylo připojit se na endpoint služby na začátku testu a stáhnout metadata cache dlaždic. Vkládání HTTP logiky do JSR223 Samplerů je technicky možné, ale není to cesta, kterou jsem zvolil.<\/P>Uvnitř Levels Of Detail Transaction je pouze jeden JSR223 Sampler<\/LI>Tento prvek se spustí pouze jednou, na začátku každého testovacího vláknaPrvek obsahuje 24 pevných úrovní detailu cache, přičemž úroveň 0 začíná na měřítku 591657527.591555 Pokud vaše schéma cache začíná na jiné úrovni měřítka pro 0, pak bude potřeba ručně upravit JSR223 Sampler<\/LI><\/UL><\/LI><\/UL><\/LI>Tento JSR223 Sampler není potřeba upravovat pro spuštění testuPředpokládá se, že cachovaná služba map má Spatial Reference 102100 (3857)<\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Levels Of Detail -- JSR223 Sampler (Plná Logika):<\/P> <\/P> <\/P> <\/P> <\/P> <\/P>\\ FileServer class
import org.apache.jmeter.services.FileServer
public class Lod{
int level
double resolution
double scale
double tolerance
}
public class MyLodList1{
public List<Lod> LodList = new ArrayList()
MyLodList1(){
\\ Na základě ArcGIS Online Map Scales
\\ https:\/\/services.arcgisonline.com\/arcgis\/rest\/services\/World_Street_Map\/MapServer
\\
\\ Spatial Reference: 102100 (3857)
Lod lod = new Lod()
lod = new Lod()
lod.level = 0
lod.resolution = 156543.03392800014 \\/11
lod.scale = 591657527.591555
lod.tolerance = 0.5
this.LodList.add(lod)
lod = new Lod()
lod.level = 1
lod.resolution = 78271.51696399994 \\/11
lod.scale = 295828763.795777
lod.tolerance = 0.5
this.LodList.add(lod)
lod = new Lod()
lod.level = 2
lod.resolution = 39135.75848200009 \\/11
lod.scale = 147914381.897889
lod.tolerance = 0.25
this.LodList.add(lod)
lod = new Lod()
lod.level = 3
lod.resolution = 19567.87924099992 \\/11
lod.scale = 73957190.948944
lod.tolerance = 0.5
this.LodList.add(lod)
lod = new Lod()
lod.level = 4
lod.resolution = 9783.93962049996 \\/11
lod.scale = 36978595.474472
lod.tolerance = 0.5
this.LodList.add(lod)
lod = new Lod()
lod.level = 5
lod.resolution = 4891.96981024998 \\/11
lod.scale = 18489297.737236
tolerance = 0.5
the this.LodList.add(lod)
}
}
MyLodList1 mylods = new MyLodList1()
List<Lod> LodList = mylods.LodList
vars.putObject("LodList",LodList)<\/code><\/pre><P> <\/P><P> <\/P><P> <\/P><P> <\/P><P> <\/P><H3 id="toc-hId-173889251">Logika GetMapTile<\/H3><P>JSR223 Samplery uvnitř GetMapTile Transaction jsou logikou odpovědnou za převod ohraničujícího boxu na odpovídající cache dlaždice. <\/P><UL><LI>Pro každé měřítko mapy je jeden JSR223 Sampler (například jeden pro každý odpovídající CSV Data Set Config)<UL class="lia-list-style-type-circle"><LI>CSV Data Set Config A --> JSR223 Sampler A1<\/LI><\/UL></LI><LI>Toto se spouští při každé iteraci testovacího vlákna<UL class="lia-list-style-type-circle"><LI>Toto se spouští často... pokaždé, když je načten nový ohraničující box<\/LI></UL></LI><LI>Tyto JSR223 Samplery není potřeba upravovat pro spuštění testu<\/LI></UL><P><FONT color="#FF0000"><STRONG>Poznámka: JSR223 Samplery používající Groovy jsou obecně rychle vykonávány a přidávají velmi malý režijní náklad k testu<\/STRONG></FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="cachemap_jmeter_getmaptile_jsr223.png" style="width: 999px;"><img src="https:\/\/us.v-cdn.net\/6038851\/uploads\/images\/31593i4D4124A2B19B94D0\/cachemap_jmeter_getmaptile_jsr223.png" role="button" title="cachemap_jmeter_getmaptile_jsr223.png" alt="cachemap_jmeter_getmaptile_jsr223.png" \/></span></P><P> GetMapTile -- JSR223 Sampler A1 (Plná Logika):</P><P> </P> bbox_scale_double = Double.parseDouble(scale_var)
// Map units per pixel
double tileresolution = 0
double lod_resolution = 0
double scale = 0
int tilelevel = 0
LodList = vars.getObject("LodList") // Předpokládá se, že kešovaná mapová služba má prostorovou referenci 102100 (3857)
boolean firstIteration = true;
for(int i = 0; i < LodList.size; i++)
{
lod_resolution = Precision.round(LodList[i].resolution, resolutionprecision)
tileresolution = lod_resolution
tilelevel = LodList[i].level
scale = LodList[i].scale
if (mapresolution >= lod_resolution)
{
break
}
}
tileCols_var = vars.get("TileCols")
cols = Double.parseDouble(tileCols_var)
tileRows_var = vars.get("TileRows")
rows = Double.parseDouble(tileRows_var)
// Původ keše (levý horní roh)
xorigin_var = vars.get("Xorigin")
xorigin = Double.parseDouble(xorigin_var)
yorigin_var = vars.get("Yorigin")
yorigin = Double.parseDouble(yorigin_var)
// Získat minimální sloupec dlaždice
double minxtile = (xmin - xorigin) / (cols * tileresolution)
// Získat minimální řádek dlaždice
// Od původu je maxy minimální y
double minytile = (yorigin - ymax) / (rows * tileresolution)
// Získat maximální sloupec dlaždice
double maxxtile = (xmax - xorigin) / (cols * tileresolution)
// Získat maximální řádek dlaždice
// Od původu je miny maximální y
double maxytile = (yorigin - ymin) / (rows * tileresolution)
// Vrátit celočíselnou hodnotu pro min a max, řádek a sloupec
int mintilecolumn = (int)Math.floor(minxtile)
int mintilerow = (int)Math.floor(minytile)
int maxtilecolumn = (int)Math.floor(maxxtile)
int maxtilerow = (int)Math.floor(maxytile)
Scheme_var = vars.get("Scheme")
WebServerName_var = vars.get("WebServerName")
ServerInstanceName_var = vars.get("ServerInstanceName")
ServiceName_var = vars.get("ServiceName")
ServiceType_var = vars.get("ServiceType")
def cacheRequest
def tilePaths = []
int count = 0
for (int row = mintilerow; row <= maxtilerow; row++)
{
// pro každý sloupec v řádku, v rozsahu mapy
for (int col = mintilecolumn; col <= maxtilecolumn; col++)
{
cacheRequest = ("/").concat(ServerInstanceName_var).concat("/rest/services/").concat(ServiceName_var).concat("/").concat(ServiceType_var)
cacheRequest = cacheRequest.concat("/tile").concat("/").concat(tilelevel.toString()).concat("/").concat(row.toString()).concat("/").concat(col.toString())
count++
tilePaths.add(cacheRequest)
}
}
def requestCount = count.toString()
vars.putObject("RequestCount_A",requestCount)
vars.putObject("TilePaths_A",tilePaths) Smyčka kešových dlaždic a naplnění cestPro tuto část Testovacího plánu je potřeba několik komponent. S ohraničujícím rámečkem přeloženým do odpovídajících kešových dlaždic a sestaveným do seznamu URL je potřeba třetí JSR223, který umístí každé URL do proměnné uvnitř smyčky. Logika smyčky probíhá uvnitř transakce Cache Tiles.Existuje jeden JSR223 Sampler pro každé měřítko mapyCSV Data Set Config A --> JSR223 Sampler A2Tyto JSR223 Samplery není třeba upravovat pro spuštění testuJe přidán Loop Controller, který požaduje pouze skutečný počet dlaždic na ohraničující rámeček, protože toto množství se může měnit podle rozsahuPočet dlaždic odpovídajících každému ohraničujícímu rámečku se liší podle rozsahu, ale také podle rozlišení mapy (1920x1080)Vyšší rozlišení obrazovky vyžaduje více dlaždicLoop Controller obsahuje následující prvky:ČítačJSR223 SamplerHTTP RequestLoop Controller
Čítač
JSR223 Sampler
HTTP RequestVeškerá výše uvedená logika testu existuje pouze pro tuto komponentu testu. Pro každé měřítko mapy existuje pouze jeden HTTP Request! Tento jednoduchý design podporuje čitelnost a udržovatelnost.
Poznámka: HTTP Requests obsahují prvek Response Assertion pro ověření položek vrácených ze serveru. Pokud je typ obsahu odpovědi image/jpeg nebo image/png, požadavek projde. Nicméně některé VectorTileServer keše mohou vracet soubor ve formátu Protocolbuffer Binary Format (*.pbf). V těchto případech by bylo potřeba ručně rozšířit Patterns to Test na následující: image/jpeg || image/png || application/octet-stream || application/x-protobufKonfigurace Thread GroupJMeter Test Plan je aktuálně nakonfigurován pro relativně krátký test trvající 20 minut. Kešované mapové služby fungují dobře, takže bude probíhat velký průtok dat v každém kroku (2 minuty na krok) a celkově během testu.Různá prostředí mohou vyžadovat alternativní konfiguraci zátěže k dosažení požadovaných výsledků testu, upravte podle potřeby
Ověření Testovacího plánuJako nejlepší praxi je vždy dobré ověřit výsledky před spuštěním skutečného zátěžového testu.Použijte posluchač View Results Tree k asistenci při ověřováníTest Plan obsahuje posluchač View Results Tree, ale je ve výchozím nastavení zakázánPovolte jej pro zobrazení výsledkůZ GUI spusťte testTransakce
- Vyberte jednu z transakcí "Cache Tiles"
- Výsledky by měly vypadat následovně:

- V tomto příkladu byly všechny transakce úspěšně dokončeny (např. zelená fajfka)Cache Tiles (měřítko mapy: 4622324.434309)
- Cache Tiles (měřítko mapy: 2311162.217155)
- Cache Tiles (měřítko mapy: 1155581.108577)
Výběrem jedné z transakcí a prvku výsledku Sampler se zobrazí některé klíčové informaceKratký pohled na velikost v bajtechV uvedeném příkladu byla velikost transakce přes 50KB, což naznačuje, že byla vrácena slušná data dlaždic (pro tento dataset) a odpovědi nebyly všechny "prázdné" obrázkyPočet vzorků v transakci byl 80Protože existuje JSR223 Sampler u každého požadavku na dlaždici, ve skutečnosti to znamenalo stažení 40 dlaždicDoba načítání ukazuje 62 ms, což znamená, že stažení 40 obrázků dlaždic trvalo pouze 0,062 sekundyPožadavky
- Rozbalte vybranou transakci
- V tomto příkladu Cache Tiles (měřítko mapy: 1155581.108577)
- Vyberte jeden z HTTPS požadavků
- Výsledky by měly vypadat následovně:
<\/span><\/SPAN><\/P>V tomto příkladu byla select request úspěšně dokončena <\/SPAN>úspěšně (např. zelená fajfka)<\/SPAN><\/LI>Rychle se podívejte na Load time<\/SPAN>V tomto příkladu trval jednotlivý požadavek dlaždice pouze 2 ms (0,002 sekundy) ke stažení<\/SPAN><\/LI><\/UL><\/LI>Kliknutím na záložku Response data si můžete prohlédnout požadovanou dlaždici:<\/SPAN><\/LI><\/UL>
<\/span><\/SPAN><\/P>Poznámka: Po dokončení vizuální validace a ladění se doporučuje deaktivovat prvek View Results Tree před spuštěním load testu<\/STRONG><\/FONT><\/P>Spuštění testu<\/H1>Load test by měl být spuštěn stejným způsobem jako běžný JMeter Test Plan.<\/P>Pro příklad, jak spustit test podle doporučení Apache JMeter, viz skript runMe.bat zahrnutý v projektu cache_tiles1.zip. <\/P>Skript runMe.bat obsahuje proměnnou jmeterbin<\/EM>, kterou je třeba nastavit na odpovídající hodnotu pro vaše prostředí<\/LI><\/UL>Poznámka: Vždy se doporučuje koordinovat čas zahájení a délku trvání load 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 system noise<\/EM> z jiné aktivity a použití, které by mohly "znečistit" výsledky vašeho testu.<\/STRONG><\/FONT><\/P>Poznámka: Z několika důvodů se důrazně nedoporučuje nikdy neprovádět load test ArcGIS Online<\/EM><\/U>.<\/STRONG><\/FONT><\/P>JMeter Report<\/H1>Automaticky generovaná JMeter Report může poskytnout přehled o propustnosti cached map service pod zatíženímTato zpráva je automaticky generována z příkazových možností předaných ze skriptu runMe.bat<\/LI><\/UL><\/LI><\/UL>Křivka propustnosti<\/H2>JMeter Report pro load test cached map service může vypadat pomalu a zadrhávající se při zobrazení v webovém prohlížečiJe to kvůli výchozí povaze jeho složení, která se snaží vykreslit každý unikátní požadavek v některých grafechV takovém testu jich bude mnoho<\/LI>Z legendy grafu vyberte všechny položky JSR223 Sampler k deaktivaci jejich vykreslování (protože mohou zkreslit měřítko)<\/LI><\/UL><\/LI><\/UL><\/LI>V tomto případě byla špičková propustnost pro jakoukoli danou transakci map scale cached tiles asi 15 transakcí za sekunduProtože byly testovány 3 map scales, celkový počet transakcí za sekundu byl 45 transakcí za sekunduTo odpovídalo přibližně 162 000 cache transakcím za hodinu <\/LI><\/UL><\/LI>Špičková propustnost se zdá být kolem značky 10:34<\/LI><\/UL><\/LI><\/UL>
Výkonová křivka<\/H2>Výkon propustnosti cache byl dobrý přibližně 120 ms nebo 0,12 sekundyToto pozorování bylo provedeno tam, kde došlo k špičkovým transakcím za sekundu na značce 10:34<\/LI>
Poznámka: "Peak throughput" je bod v testu, kde nelze dosáhnout vyšší propustnosti. To neznamená, že je to maximální množství tlaku<\EM>, které služba zvládne bez "pádů". Obecně platí, že pokud další uživatelé požadují cache tiles poté, co systém dosáhl špičkové propustnosti (např. zvýšíte konfiguraci step load), služba jejich požadavky stále splní, ale budou muset déle čekat na odpovědi (kvůli frontám).<\FONT>Závěrečné myšlenkyApache JMeter Test Plan v tomto článku představuje programový přístup k aplikaci zatížení na ArcGIS cached map service. Jednou ze silných stránek tohoto testu je jeho snadná tvorba, konfigurace a údržba.< / P >< P > Automaticky generovaná zpráva JMeter poskytuje grafy a souhrny, které lze použít k analýze výkonu a škálovatelnosti cached map service.< / P >< UL >< LI > Pro stažení Apache JMeter Test Plan použitého v tomto článku viz: cache_tiles1.zip</ LI ></ UL >< H2 id = "toc-hId--599044696">Další položky stojící za zmínku
< P > Každá cached služba je jiná. Obecně však výkon a škálovatelnost cached služby může ovlivnit řada faktorů:< / P >< UL >< LI > Architektura nasazení< UL class = "lia-list-style-type-circle">< LI > Umístění cache dat vzhledem k ArcGIS tile handler(s)< / LI >< LI > Technologie a rychlost disku pro ukládání cache dat< / LI ></ UL ></ LI >< LI > Šířka pásma sítě< UL class = "lia-list-style-type-circle">< LI > Mezi uložištěm cache dat a ArcGIS tile handler(s)< / LI >< LI > Mezi ArcGIS tile handler(s) a ArcGIS Web Adaptor(s)< / LI >< LI > Mezi ArcGIS Web Adaptor(s) a Test Client< / LI ></ UL ></ LI >< LI > Rychlost procesoru a počet jader procesoru< UL class = "lia-list-style-type-circle">< LI > Dodávka cache tiles je rychlá, ale při vysokém zatížení celý proces využívá CPU zdroje z ArcGIS tile handler a ArcGIS Web Adaptor (pokud existuje v nasazení) hostingové technologie (např. Microsoft Internet Information Services service)< / LI ></ UL ></ LI >< LI > Různá data mohou fungovat různě< UL class = "lia-list-style-type-circle">< LI > Průměrná velikost dlaždice (např. velikost na disku)< UL class = "lia-list-style-type-square">< LI > Menší dlaždice obsahující méně dat mohou fungovat jinak než větší podrobnější dlaždice< / LI ></ UL ></ LI >< LI > Testované mapové měřítka< UL class = "lia-list-style-type-square">< LI > I pro stejný dataset může mít map scale
36111.909643 těžší cache tiles než map scale < / SPAN >< SPAN >1155581.108577</ LI ></ UL ></ LI ></ UL ></ LI ></ UL >< H2 id = "toc-hId-1888468137">Předpoklady a omezení< UL >< LI >< STRONG >JDK 17 nebo vyšší nebude fungovat s tímto (JMeter 5.4.x) Test Planem< UL >< LI > Spuštění na těchto verzích JDK vyvolá následující chybu:
org.codehaus.groovy.GroovyBugError: BUG! výjimka ve fázi 'semantic analysis' ve zdrojové jednotce 'Script161.groovy' Nepodporovaná hlavní verze souboru třídy 61</ LI >< LI >< STRONG >< FONT color="#000000">Použití JDK 16 nebo staršího tuto chybu eliminuje</ STRONG >< UL >< LI >< FONT color="#000000">Důvodem je, že JMeter 5.4.x podporuje pouze JDK 16 (nebo starší)</ LI ></ UL ></ LI >< LI >< STRONG >< FONT color="#000000">Pokud vaše prostředí vyžaduje JDK 17 nebo vyšší, musíte použít JMeter 5.5 (který podporuje JDK 17)</ STRONG ></ LI ></ UL ></ LI >< LI > On-Demand Cache není povolený< UL class = "lia-list-style-type-circle">< LI > Může fungovat, ale nebylo testovánoSingle Fused Map Cache je PRAVDAFormát úložiště cache je KOMPAKTNÍFormát obrázku dlaždic je JPG nebo PNG
- Díky pravidlu Response Assertion pro validaci návratu ze serveru
Zahrnutý Test Plan by měl fungovat s cached službou pro
- Mapu
- Obrázek
- Proměnnou ServiceType (v rámci User Defined Variables) bude třeba změnit
- Nebyl důkladně testován
- Vektor
- Proměnnou ServiceType (v rámci User Defined Variables) bude třeba změnit
- Služba VectorTile může mít dlaždicové obrázky ve formátu Protocolbuffer Binary Format (*.pbf)
- Pravidlo Response Assertion by bylo třeba rozšířit o application/octet-stream nebo application/x-protobuf
- JSR223 Samplers v rámci GetMapTile transakce by bylo třeba upravit tak, aby přidaly ".pbf" na konec proměnné cacheRequest
- Nebyl důkladně testován
< / P > < / P > < / P ><A href=\"
https://jmeter.apache.org/index.html\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Apache JMeter</A><SPAN> vydaný pod licencí </SPAN><A href=\"
https://apache.org/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Apache</A><SPAN> rel="noopener nofollow noreferrer">Licence 2.0.<\/A>
Apache, Apache JMeter, JMeter, pírko Apache a logo Apache JMeter jsou ochranné známky Apache Software Foundation.<\/SPAN><\/P>