jMeter - Funkcje
Funkcje JMeter i zmienne użytkownika
Funkcje JMeter to specjalne wartości, które mogą wypełniać pola dowolnego Samplera lub innego elementu w drzewie testowym.
Wywołanie funkcji wygląda następująco -
${__functionName(var1,var2,var3)}
_functionName odpowiada nazwie funkcji. Na przykład${__threadNum}.
Jeśli parametr funkcji zawiera przecinek, upewnij się, że został on zastąpiony znakiem „\”, jak pokazano poniżej -
${__time(EEE\, d MMM yyyy)}
Zmienne są określane jako -
${VARIABLE}
Lista funkcji
Poniższa tabela zawiera listę funkcji luźno pogrupowanych w typy -
| Typ funkcji | Nazwa | Komentarz |
|---|---|---|
| Informacja | ThreadNum | Uzyskaj numer wątku. |
| Informacja | samplerName | Uzyskaj nazwę próbnika (etykietę). |
| Informacja | machineIP | Uzyskaj adres IP komputera lokalnego. |
| Informacja | machineName | Uzyskaj nazwę komputera lokalnego. |
| Informacja | czas | Pokaż aktualny czas w różnych formatach. |
| Informacja | log | Zapisz (lub wyświetl) komunikat (i zwróć wartość). |
| Informacja | logn | Zapisz (lub wyświetl) komunikat (pusta wartość zwracana). |
| Wejście | StringFromFile | Przeczytaj wiersz z pliku. |
| Wejście | FileToString | Przeczytaj cały plik. |
| Wejście | CSVRead | Odczyt z pliku rozdzielanego CSV. |
| Wejście | XPath | Użyj wyrażenia XPath, aby odczytać z pliku. |
| Obliczenie | licznik | Wygeneruj rosnącą liczbę. |
| Obliczenie | intSum | Dodaj numery wewnętrzne. |
| Obliczenie | longSum | Dodaj długie liczby. |
| Obliczenie | Losowy | Wygeneruj liczbę losową. |
| Obliczenie | RandomString | Wygeneruj losowy ciąg. |
| Obliczenie | UUID | Wygeneruj losowy UUID typu 4. |
| Skrypty | BeanShell | Uruchom skrypt BeanShell. |
| Skrypty | javaScript | Przetwarzaj JavaScript (Mozilla Rhino). |
| Skrypty | jexl, jexl2 | Oceń wyrażenie Commons Jexl. |
| Nieruchomości | własność | Przeczytaj nieruchomość. |
| Nieruchomości | P. | Przeczytaj właściwość (metoda skrócona). |
| Nieruchomości | setProperty | Ustaw właściwość JMeter. |
| Zmienne | rozdzielać | Podziel ciąg na zmienne. |
| Zmienne | V | Oceń nazwę zmiennej. |
| Zmienne | eval | Oceń wyrażenie zmiennej. |
| Zmienne | evalVar | Oceń wyrażenie przechowywane w zmiennej. |
| Strunowy | regexFunction | Przeanalizuj poprzednią odpowiedź przy użyciu wyrażenia regularnego. |
| Strunowy | escapeOroRegexpChars | Cytuj metaznaki używane przez wyrażenie regularne ORO. |
| Strunowy | zwęglać | Generuj wartości znaków Unicode z listy liczb. |
| Strunowy | unescape | Przetwarzaj ciągi znaków zawierające znaki ucieczki Java (np. \ N & \ t). |
| Strunowy | unescapeHtml | Dekoduj ciągi zakodowane w formacie HTML. |
| Strunowy | escapeHtml | Zakoduj ciągi przy użyciu kodowania HTML. |
| Strunowy | TestPlanName | Zwróć nazwę bieżącego planu testów. |
Istnieją dwa rodzaje funkcji -
Wartości statyczne (lub zmienne) zdefiniowane przez użytkownika
Wbudowane funkcje
Zdefiniowane przez użytkownika wartości statyczne pozwalają użytkownikowi zdefiniować zmienne, które mają zostać zastąpione ich wartością statyczną, gdy drzewo testów jest kompilowane i przesyłane do uruchomienia.
Zmienne nie mogą być zagnieżdżane; to znaczy${Var${N}} nie działa.
W tym celu można użyć funkcji __V (zmienna) (wersje po 2.2) - $ {__ V (Var $ {N})}.
Ten rodzaj wymiany jest możliwy bez funkcji, ale jest mniej wygodny i mniej intuicyjny.
Gdzie używać funkcji i zmiennych
Funkcje i zmienne można zapisać w dowolnym polu dowolnego składnika testowego.
Następujące funkcje powinny dobrze działać w planie testów -
- intSum
- longSum
- machineName
- BeanShell
- javaScript
- jexl
- random
- time
- funkcje właściwości
- funkcje dziennika
Funkcje używane w Planie testów mają pewne ograniczenia. Zmienne wątku JMeter nie zostaną w pełni skonfigurowane podczas przetwarzania funkcji, więc nazwy zmiennych przekazane jako parametry nie zostaną skonfigurowane, a odwołania do zmiennych nie będą działać. Dlatego split () i regex () oraz funkcje oceny zmiennych nie będą działać. Funkcja threadNum () nie będzie działać i nie ma sensu na poziomie planu testów.
Odwoływanie się do zmiennych i funkcji
Odwoływanie się do zmiennej w elemencie testowym odbywa się poprzez umieszczenie nazwy zmiennej w nawiasach kwadratowych za pomocą „$ {” i „}”.
Do funkcji odwołuje się w ten sam sposób, ale zgodnie z konwencją nazwy funkcji zaczynają się od „__”, aby uniknąć konfliktu z nazwami wartości użytkownika.
Niektóre funkcje do ich konfiguracji pobierają argumenty, które są umieszczane w nawiasach i rozdzielane przecinkami. Jeśli funkcja nie przyjmuje argumentów, nawiasy można pominąć. Na przykład -
${__BeanShell(vars.put("name"\,"value"))}
Alternatywnie możesz zdefiniować swój skrypt jako zmienną, np. W Planie testów -
SCRIPT vars.put("name","value")
Następnie można odwoływać się do skryptu w następujący sposób -
${__BeanShell(${SCRIPT})}
Okno dialogowe pomocnika funkcji
Okno dialogowe pomocnika funkcji jest dostępne w JMeter's Options patka.
Korzystając z pomocnika funkcji, możesz wybrać funkcję z listy rozwijanej i przypisać wartości jej argumentom. Lewa kolumna tabeli zawiera krótki opis argumentu, a prawa kolumna to miejsce, w którym wpisujesz wartość tego argumentu. Różne funkcje przyjmują różne argumenty.
Gdy to zrobisz, kliknij przycisk „Generuj”, a odpowiedni ciąg zostanie wygenerowany, który możesz skopiować i wkleić do planu testów, gdziekolwiek chcesz.
Zmienne predefiniowane
Niektóre zmienne są definiowane wewnętrznie przez JMeter. Oni są -
COOKIE_cookiename - zawiera wartość pliku cookie.
JMeterThread.last_sample_ok - czy ostatnia próbka była OK - prawda / fałsz. Uwaga - jest to aktualizowane po uruchomieniu PostProcessors i Assertions.
Zmienne START.
Wstępnie zdefiniowane właściwości
Niektóre wbudowane właściwości są definiowane przez narzędzie JMeter. Są one wymienione poniżej. Dla wygody właściwości START są również kopiowane do zmiennych o tych samych nazwach.
START.MS - czas rozpoczęcia JMeter w milisekundach.
START.YMD - czas rozpoczęcia JMeter jako rrrrMMdd.
START.HMS - czas rozpoczęcia JMeter jako GGmmss.
TESTSTART.MS - czas rozpoczęcia testu w milisekundach.
Należy zauważyć, że zmienne / właściwości START reprezentują czas uruchamiania narzędzia JMeter, a nie czas rozpoczęcia testu. Są przeznaczone głównie do użytku w nazwach plików itp.