JMeter standast breytur milli þráðahópa

Í þessu JMeter námskeiði skoðum við hvernig við getum deilt og komið breytum á milli þráðahópa.

Þegar þróaðar eru háþróaðar JMeter smáforrit, líklega verður þú með marga þráðahópa. Hver þráðahópur mun framkvæma mismunandi beiðnir.

Gott dæmi um þetta er þegar við þurfum að sannvotta notendur með Bearer Tokens. Einn þráður hópur framkvæmir sannvottunina og vistar táknið. Annar þráðahópur þarf að fá aðgang að þessu tákni og nota það í annarri beiðni.


Þess vegna þurfum við kerfi til að senda breytur milli þráðahópa.



Sendu breytur milli þráðahópa í JMeter

Í þessu dæmi mun prófunaráætlun okkar hafa tvo þráða hópa. Fyrsti þráðu hópurinn gerir GET beiðni um vefþjónustu. Við notum síðan JSON útdráttur tappi til að flokka JSON svarið.


Með því að nota JSONPath drögum við út gildi fyrir tiltekinn lykil og vistum það sem JMeter breytu.



Svona lítur JMeter beiðni okkar út:

Niðurstaðan af ofangreindri beiðni gefur eftirfarandi svar á JSON sniði:


og JSONPath okkar til að draga fyrstu slóðina út lítur út:

Gildi fyrirspurnar JSONPath er vistað sem first_url Þessi breyta er aðeins aðgengileg innan sama þráðahóps og við getum fengið gildi hennar með því að nota ${first_url} Nú, hvernig ætlum við að gera þessa breytu aðgengilega í gegnum aðra þráðahópa?


Svarið er að nota BeanShell Assertion til að vista breytuna sem alheims eign. Með þessum hætti getum við komið breytum á milli þráðahópa.

Til að bæta við BeanShell fullyrðingu, hægrismelltu á Test Plan> Add> Assertion> BeanShell Assertion

Í BeanShell fullyrðingu okkar getum við slegið inn eftirfarandi kóða

${__setProperty(first_url, ${first_url})};


Nú í þráðflokki 2 getum við fengið aðgang að þessari breytu beint með því að nota ${__property(first_url)} eins og sýnt er hér að neðan:

Eða við getum notað BeanShell PreProcessor til að vinna með breytuna:


Í BeanShell PreProcessor getum við fengið aðgang að breytunni sem send er inn frá öðrum þráðahópi með því að nota props.get('name_of_variable') Við getum þá framkvæmt einhverja strengjameðferð og vistað niðurstöðuna sem nýja breytu.

Í dæminu hér að ofan fjarlægjum við http:// frá breytunni sem var send frá þráðahópi 1 og við vistum niðurstöðuna sem breytu host

Breytan host er nú staðbundinn fyrir þráðahóp 2 og nálgast hann beint með því að nota ${host} eins og sýnt er hér að neðan: