Szukaj…


Wprowadzenie

Parametryzacja polega na tworzeniu różnych zestawów danych dla różnych użytkowników w tym samym skrypcie testowym. Na przykład uruchamianie wielu użytkowników z różnymi poświadczeniami w tym samym skrypcie. To czyni go jednym z głównych aspektów tworzenia testów wydajności.

Parametryzacja przy użyciu plików zewnętrznych

Jednym z typowych sposobów parametryzacji skryptów wydajności jest użycie pliku CSV. Najlepszym przykładem użycia plików wejściowych CSV jest proces logowania. Jeśli chcesz przetestować aplikację na różnych użytkownikach, musisz podać listę poświadczeń użytkownika.

Załóżmy, że mamy żądanie logowania, które działa dla jednego konkretnego użytkownika: wprowadź opis zdjęcia tutaj

Możemy łatwo sparametryzować to żądanie, używając zewnętrznego pliku CSV i uruchamiając skrypt dla różnych użytkowników. Aby dodać konfigurację parametryzacji CSV:

Kliknij prawym przyciskiem myszy żądanie logowania -> Dodaj -> Element konfiguracji -> Konfiguracja zestawu danych CSV

wprowadź opis zdjęcia tutaj

Krótkie objaśnienie parametrów „Konfiguracja zestawu danych CSV”:

  • Nazwa - nazwa elementu, która będzie używana w drzewie JMeter
  • Nazwa pliku - nazwa pliku wejściowego. Względne nazwy plików są rozwiązywane na podstawie ścieżki aktywnego planu testów. Obsługiwane są również bezwzględne nazwy plików
  • File Encoding - kodowanie pliku wejściowego, jeśli nie jest to domyślna platforma
  • Nazwy zmiennych - lista oddzielnych nazw zmiennych, które będą używane jako kontener dla analizowanych wartości. Jeśli pusty, pierwszy wiersz pliku zostanie zinterpretowany jako lista nazw zmiennych
  • Separator - separator, który będzie używany do podziału analizowanych wartości z pliku wejściowego
  • Zezwolić na cytowane dane? - true, jeśli chcesz zignorować podwójne cudzysłowy i pozwolić, aby takie elementy zawierały separator.
  • Recykling na EOF? - true w przypadku, gdy plan testowania pliku powinien iterować plik więcej niż jeden raz. Poinstruuje JMeter, aby przesunął kursor na początku pliku
  • Zatrzymać wątek na EOF? - false w przypadku iteracji pętli nad plikiem CDC i true, jeśli chcesz zatrzymać wątek po odczytaniu całego pliku
  • Tryb udostępniania:
    • Wszystkie wątki - plik jest dzielony między wszystkich użytkowników wirtualnych (domyślnie)
    • Bieżąca grupa wątków - plik zostanie otwarty raz dla każdej grupy wątków
    • Bieżący wątek - każdy plik zostanie otwarty osobno dla każdego wątku
    • Identyfikator - wszystkie wątki dzielące ten sam identyfikator również korzystają z tego samego pliku

Utwórzmy plik csv zawierający różnych użytkowników z nazwami i hasłami: wprowadź opis zdjęcia tutaj

Możemy teraz używać tego pliku z konfiguracją zestawu danych CSV. W naszym przypadku wystarczy dodać wartości konfiguracyjne „Nazwa pliku” i „Nazwy zmiennych”: wprowadź opis zdjęcia tutaj

Ostatnim krokiem, który musimy zrobić, jest sparametryzowanie żądania logowania za pomocą zmiennych CSV. Można to zrobić, zastępując wartości początkowe odpowiednimi zmiennymi z pola konfiguracji „Zmienne nazwy” konfiguracji zestawu danych CSV, jak poniżej: wprowadź opis zdjęcia tutaj Jeśli uruchomimy teraz nasz skrypt testowy, JMeter zastąpi te zmienne wartościami z pliku „TestUsers.csv”. Każdy użytkownik wirtualny JMeter otrzyma poświadczenia z następującej linii pliku csv.

Żądanie logowania pierwszego użytkownika:

wprowadź opis zdjęcia tutaj

Żądanie logowania drugiego użytkownika: wprowadź opis zdjęcia tutaj

Parametryzacja za pomocą baz danych

Innym sposobem parametryzacji skryptów wydajnościowych jest wykorzystanie danych bazy danych przez JDBC. JDBC to interfejs programowania aplikacji, który określa, w jaki sposób klient może uzyskać dostęp do bazy danych.

Najpierw pobierz sterownik JDBC do swojej bazy danych (skontaktuj się z dostawcą bazy danych). Na przykład sterownik mysql można znaleźć tutaj. Następnie możesz go dodać, dodając plik .jar do planu testów, korzystając z poniższego formularza:

wprowadź opis zdjęcia tutaj

Ale lepiej jest dodać plik Jar do folderu lib i ponownie uruchomić JMeter.

Następnie skonfiguruj połączenie z bazą danych za pomocą elementu „Konfiguracja połączenia JDBC”. W ten sposób: Kliknij prawym przyciskiem myszy grupę wątków -> Dodaj -> Element konfiguracji -> Konfiguracja połączenia JDBC

wprowadź opis zdjęcia tutaj

Parametry „Konfiguracja połączenia JDBC”:

  • Nazwa - nazwa konfiguracji połączenia, która będzie wyświetlana w drzewie grup wątków
  • Nazwa zmiennej - nazwa, która będzie używana jako unikalny identyfikator połączenia db (można użyć wielu połączeń i każde z nich będzie powiązane z inną nazwą)
  • Maksymalna liczba połączeń - maksymalna dozwolona liczba połączeń w puli połączeń. W przypadku 0 każdy wątek otrzyma własną pulę z jednym połączeniem
  • Max Wait (ms) - pula zgłasza błąd, jeśli określony limit czasu zostanie przekroczony podczas połączenia db
  • Time Between Eviction Runs (ms) - liczba milisekund, które należy wstrzymać między uruchomieniami wątku, który wyklucza nieużywane połączenia z puli db
  • Automatyczne zatwierdzanie - tak, aby włączyć automatyczne zatwierdzanie dla powiązanych połączeń db
  • Testuj podczas bezczynności - sprawdź bezczynne połączenia przed wykryciem skutecznego żądania. Więcej informacji: BasicDataSource.html # getTestWhileIdle
  • Soft Min Evictable Idle Time (ms) - okres czasu, w którym określone połączenie może być bezczynne w puli db, zanim zostanie eksmitowane. Więcej informacji: BasicDataSource.html # getSoftMinEvictableIdleTimeMillis
  • Sprawdzanie poprawności - zapytanie sprawdzające poprawność, które będzie używane do sprawdzenia, czy baza danych nadal odpowiada
  • Adres URL bazy danych - parametry połączenia JDBC dla bazy danych. Zobacz tutaj przykłady
  • JDBC Driver class - odpowiednia nazwa klasy sterownika (specyficzna dla każdego db). Na przykład „com.mysql.jdbc.Driver” dla bazy danych MySql
  • Nazwa użytkownika - nazwa użytkownika bazy danych
  • Hasło - hasło do bazy danych (będzie przechowywane niezaszyfrowane w planie testowym)

W naszym przypadku musimy skonfigurować tylko pola obowiązkowe:

  • Nazwa zmiennej Powiązana z pulą.
  • URL bazy danych
  • Klasa sterownika JDBC
  • Nazwa Użytkownika
  • Hasło

Resztę pól na ekranie można pozostawić jako domyślne: wprowadź opis zdjęcia tutaj

Załóżmy, że przechowujemy poświadczenia użytkownika testowego w bazie danych: wprowadź opis zdjęcia tutaj

Teraz, gdy skonfigurowane jest połączenie z bazą danych, możemy dodać samo żądanie JDBC i użyć jego zapytania, aby uzyskać wszystkie poświadczenia z bazy danych: Kliknij prawym przyciskiem myszy grupę wątków -> Dodaj -> Próbka -> Żądanie JDBC

Za pomocą zapytania „Select Statement” i „Variable Names” możemy przeanalizować odpowiedź na zmienne niestandardowe.

wprowadź opis zdjęcia tutaj

Będziemy teraz mieć zmienne JMeter, które mogą być dalej wykorzystywane w kolejnych żądaniach. Określone zmienne zostaną utworzone z przyrostowym przyrostkiem (email_1, email_2, email_3… ..).

Aby użyć tych zmiennych w „Żądaniu logowania”, musimy dodać licznik, który będzie używany do uzyskania dostępu do właściwych wartości z odpowiedzi na zapytanie JDBC. Aby dodać element „Licznik” w JMeter: Kliknij prawym przyciskiem myszy grupę wątków -> Dodaj -> Element konfiguracji -> Licznik

wprowadź opis zdjęcia tutaj

Następnie możemy zaktualizować „Żądanie logowania” za pomocą funkcji __V. Zwraca wynik oceny wyrażenia nazwy zmiennej i może służyć do oceny zagnieżdżonych odwołań do zmiennych:

wprowadź opis zdjęcia tutaj

Określona konfiguracja wystarczy, aby użyć wartości bazy danych do uruchomienia skryptu między różnymi użytkownikami: wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Parametryzacja za pomocą wtyczki „Parameterized Controller”

Jeśli chcesz wykonać powtarzającą się sekwencję tej samej akcji z różnymi parametrami, użyj wtyczki „Parameterized Controller” innej firmy z projektu JMeter-Plugins .

Najpierw musisz zainstalować tę wtyczkę, postępując zgodnie z procedurą instalacji.

Załóżmy, że chcemy sparametryzować przepływ pracy logowania:

wprowadź opis zdjęcia tutaj

Przede wszystkim musisz zainstalować wtyczkę „Parameterized Controller”, ponieważ nie jest ona zawarta w rdzeniu JMeter. Kroki instalacji tego procesu można znaleźć tutaj.

Przenieśmy „Zgłoszenie logowania” do osobnego kontrolera i wyłączmy go (kliknij prawym przyciskiem myszy i wybierz „Wyłącz”). Jest to najbardziej preferowany sposób na umieszczenie kontenera modułów w planie testowania i unikanie używania Workbench jako takiego kontenera. Po zakończeniu instalacji możesz dodać dwa kontrolery „Sparametryzowane” z różnymi poświadczeniami użytkownika: Kliknij prawym przyciskiem myszy grupę wątków -> Dodaj -> Kontroler logiki -> Sterownik sparametryzowany

wprowadź opis zdjęcia tutaj

Sterowniki sparametryzowane zawierają sekcję „Zmienne zdefiniowane przez użytkownika”, w której można określić parametry. Umieść poświadczenia pierwszego użytkownika w pierwszym sparametryzowanym kontrolerze, a poświadczenia drugiego użytkownika w drugim sparametryzowanym kontrolerze. wprowadź opis zdjęcia tutaj

Wewnątrz obu sparametryzowanych sterowników dodaj odniesienia do „Kontrolera wielokrotnego użytku”, aby wywołać „Żądanie logowania” z różnymi parametrami. Można to zrobić w ten sposób:

Kliknij prawym przyciskiem myszy „Parameterized Controller” -> „Add” -> „Logic Controller” -> „Module Controller”

wprowadź opis zdjęcia tutaj

Podczas uruchamiania skryptu zobaczysz, że „żądanie logowania” wyzwoliło każdy ze sparametryzowanych kontrolerów osobno. Może to być bardzo przydatne na wypadek, gdybyś musiał uruchomić skrypt dla różnych kombinacji parametrów wejściowych.

wprowadź opis zdjęcia tutaj



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow