sobota, 17 kwietnia 2010

Testy wydajnościowe bazy danych z Apache JMeter

Dzisiaj na tablicy od rana mam Apache JMeter - świetne i darmowe narzędzie do testowania obciążenia. Kto by chciał się zapoznać z tym jak testować swoje witryny za pomocą tego narzędzia zapraszam (który to już raz?;]) na blog Mateusza Zięby -> Na Jawie - perwszy test z Apache JMeter.
U mnie potestujemy za to jak sprawuje się silnik bazy danych dla zapytań używanych w tworzonej przez nas aplikacji.
Pobrać JMeter można tutaj. Po ściągnięciu, ale przed uruchomieniem należy przegrać sterownik JDBC bazy danych której będziemy używać do katalogu /lib/ znajdujący się w katalogu głównym aplikacji. W moim przypadku bazą danych będzie DB2, więc kopiuję tam plik db2jcc4.jar.
 Po uruchomieniu programu zabieramy się za tworzenie testu. Do węzła "Test Plan" po prawej stronie dodajemy Add -> Thread Group. Grupa wątków definiuje ilu użytkowników będzie symulować test, ile razy każdy z nich będzie wykonywać wszystkie zdefiniowane żądania oraz co jaki czas powinien startować kolejny użytkownik. Dla przykładowego testu ustawiłem następujące wartości:
Number of threads: 8
Ramp-Up Period: 0 (startują wszyscy od razu)
Loop count: 20

Teraz do grupy wątków należy dodać konfigurację połączenia z bazą danych: Add -> Config Element -> JDBC Connection Configuration.W tym oknie uzupełniamy:
Variable Name: (tutaj dowolna nazwa, u mnie: DB2_SAMPLE)
Database URL: (ścieżka połączenia do bazy danych, u mnie: jdbc:db2://localhost:5000/SAMPLE)
JDBC Driver class: (klasa sterownika, u mnie  com.ibm.db2.jcc.DB2Driver
Username: użytkownik
Password: hasło
Bardzo ważne jest uzupełnione przez nas pole Variable Name ponieważ to na podstawie tej nazwy będziemy się odwoływać do tego połączenia przy tworzeniu zapytań. Możliwe jest utworzenie wielu połączeń i korzystanie z nich w różnych zapytaniach, właśnie na podstawie tej nazwy (musi być ona unikalna!).
Teraz należy dodać zapytania które będą wykonywane: Add -> Sampler -> JDBC Request. Ja do testów podałem dwa bardzo proste zapytania zwracające listę pracowników oraz listę departamentów z przykładowej bazy w DB2.
EmpoyeeList:
DepartmentList:
Należy pamiętać by w obu zapytaniach pole Variable Name miało wartość taką jak nazwa puli połączeń z konfiguracji połączenia. W moim wypadku jest to DB2_SAMPLE.
No to już praktycznie wszystko gotowe. Dodajmy jeszcze Add -> Listeners -> Summary Report do wyświetlenia wyników podsumowujących testy.
I można startować z testem: Run -> Start :) Podczas symulacji łącznie powinno zostać wykonanych: liczba użytkowników * liczba powtórzeń * liczba zapytań SQL żądań.
Miłego testowania !

Brak komentarzy:

Prześlij komentarz