Jest to reguła mówiąca o tym, że baza danych ma sziałać szykbo, tzn. w taki sposób, że użytkownik czekając na wyniki zapytań powinien je otrzymać maksymalnie po trzech kliknięciach
Do testowania wydajności baz danych stosuje się dwa narzędzia: MUNIN oraz JMETER
Podczas testów za pomocą JMeter należy mieć zainstalowane oprogramowanie: JAVA TM SE Runtime Environment
Z odpowiednimi uprawnieniami instalujemy JRE poleceniem: sudo apt-get install sun-java6-sdk
Po zainstalowaniu pakietu poleceniem sudo java - vresion sprawdzamy czy pakiet został zainstalowany
Binarka przychodzi pod postacią pliku .tar.gz. Należy go rozpakować w wybranym katalogu. W podkatalogu bin/ są skrypty uruchamiające JMeter pod różnymi systemami: jmeter.bat i jmeter-server.bat (Windows), jmeter i jmeter-server (Linuks).
Pobieramy JMeter ze strony projektu.
Po przejściu do katalogu /bin uruchamiamy w terminalu najpierw serwer-jmeter a następnie jmeter. po uruchomieniu programu zobaczymy okno:
Plan testu zawiera listę kroków, które będą wykonane podczas testu. Pozwala równiez na przechowywanie zmiennych statycznych do których będą zapisywane wartości wyekstrahowane z odpowiedzi na zapytania. Jest on hierarchiczny i do jego budowania są dostępne następujące składniki:
ThreadGroup
Każdy plan testu musi zawierać przynajmniej jedną grupę wątków. Grupy wątków są punktami startowymi testu - składniki wykonują się w ramach grupy wątków. Pozwala ona ustalić ilość wątków, czas tworzenia wątków (ramp-up period), ilość powtórzeń części testu.
Kontrolery
W Jmeter są dwa rodzaje kontrolerów:
- Samplers - pozwalają na generowanie zapytań (np. HTTPSampler - generuje zapytanie HTTP)
- Logic controllers - pozwalają sterować przepływem (np. IfControler - pozwala na
wykonanie zapytania jeśli warunek jest spełniony).
Wszystkie one są szczegółowo opisane na
stronie .
Samplers
Samplery wykonują żądania łącząc się z serverem WWW czy FTP. W Jmeter dostępne są m.in.:
- FTP Request
- HTTP Request
- JDBC Request - wysyla zapytanie SQL do bazy danych
- Java object request - pozwala wywołac obiekt implementujący interfejs JavaSamplerClient.
- JMS Point to Point - pozwala wrzucać/pobierać wiadomości z/do kolejek JMS'owych.
Logic controllers
Pozwalają sterować przepływem wykonania składników potomnych planu (wykonanie warunkowe, pętle, wykonanie w przypadkowej kolejności). Kontrolery logiki można zagnieżdżać.
Assertions
Asercje pozwalają zweryfikować czy odpowiedź na zapytanie zawiera określone wyrażenie regularne. Można też zastosować asercje XPath, które pozwalają zwalidować odpowiedź na zapytanie przy użyciu DTD, lub wpisać zapytanie XPath i jeśli wynik jest niepusty przyjąć, że asercja jest prawdziwa.
Timers
Składniki pozwalające opóżnić lub zsynchronizować poszczególne operacje. Domyślnie JMeter wysyła zapytania bez przerwy, co może prowadzić do jego przeładowania.
Configuration elements
Składniki pozwalające uprościć tworzenie planu poprzez zgrupowanie ustawień konfiguracyjnych. Np. adres ip dla wszystkich zapytań servera HTTP może być taki sam. Wtedy zamiast każdemu elementowi HTTPRequest konfigurować adres ip servera wystarczy dodać do kontenera nadrzędnego HTTPRequestDefaults, gdzie będzie skonfigurowany adres ip serwera. Pozwala również na obsługe ciasteczek czy autentykacje przy użyciu HTTP Basic.
Listeners
Składniki pozwalające zbierać wyniki np wyświetlić wykres (Graph Results) czy sprawdzić czy asercje są spełnione (Assertion Results). Może równiez być użyty w celu zapisania odpowiedzi na zapytania.
Pre-Processor Elements
Składniki pozwalające wykonać jakąś akcję przed wykonaniem zapytania. Użyteczne np. w przypadku gdy sesja jest zawarta w URL.
Post-Processor Elements
Analogicznie jak Pre-Processor Elements - pozwalają wykonać akcję po wykonaniu zapytania. Użyteczne do esktrahowania wartości z tekstu odpowiedzi.