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.