Променливи на премин JMeter помеѓу групи на нишки

Во ова упатство за JMeter, разгледуваме како можеме да споделуваме и да ги пренесуваме променливите помеѓу групите со нишки.

Кога развивате напредни скрипти JMeter, најверојатно ќе имате повеќе групи со нишки. Секоја група со нишки ќе извршува различни барања.

Добар пример за ова е кога треба да ги автентицираме корисниците со Bearker Tokens. Една група со нишки ја прави автентикацијата и го зачувува токенот. Друга група со нишки треба да пристапи до овој токен и да ја искористи во друго барање.


Затоа, потребен ни е механизам за да ги поминеме променливите помеѓу групите со нишки.



Поминете ги променливите помеѓу групите на нишки во JMeter

За овој пример, нашиот план за тестирање ќе има две групи на нишки. Првата група со нишки доставува GET барање до веб-услуга. Потоа го користиме JSON Екстрактор приклучок за анализирање на одговорот на JSON.


Користејќи JSONPath, ја извлекуваме вредноста за одреден клуч и ја зачувуваме како променлива JMeter.

Вака изгледа нашето барање JMeter:

Резултатот од горенаведеното барање го произведува следниот одговор во формат JSON:


и нашиот JSONPath за извлекување на првиот урл изгледа:

Вредноста на барањето JSONPath е зачувана како first_url. Оваа променлива е достапна само во истата група на нишки и нејзината вредност можеме да ја добиеме со употреба на ${first_url}. Сега, како ќе ја направиме оваа променлива достапна преку други групи на нишки?


Одговорот е да се користи BeanShell Assertion да се зачува променливата како глобална сопственост. На овој начин, можеме да поминеме променливи помеѓу групите на нишки.

За да додадете тврдење за BeanShell, кликнете со десното копче на План за тестирање> Додај> Тврдење> Изјава за BeanShell

Во нашето тврдење за BeanShell, можеме да го внесеме следниот код

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


Сега во групата со нишки 2, можеме да и пристапиме на оваа променлива директно користејќи ${__property(first_url)} како што е прикажано подолу:

Или, можеме да користиме BeanShell PreProcessor да се манипулира со променливата:


Во предпроцесорот BeanShell, можеме да пристапиме до променливата пренесена од друга група на нишки, со користење на props.get('name_of_variable'). Потоа можеме да извршиме некои манипулации со низата и да го зачуваме резултатот како нова променлива.

Во примерот погоре, го отстрануваме http:// од променливата што е пренесена од Темата група 1, и резултатот го зачувуваме како променлива host.

Променливата host сега е локален за групата на нишки 2 и директно пристапувајте до него со користење | | + + _ | како што е прикажано подолу: