Next: 3 JMeter - bliższe
Up: Apache JMeter
Previous: 1 Wprowadzenie
Spis rzeczy
Wszystkie opisane niżej automaty testowe działają na poziomie protokołu
HTTP. Oznacza to, że ich sercem jest wysyłanie żądań do serwera WWW oraz
analiza i obróbka otrzymanych odpowiedzi.
Przedstawimy pokrótce wybór konkurencyjnych narzędzi do testowania
aplikacji webowych, rzucimy okiem na ich możliwości i ograniczenia.
Potem zaś przyjrzymy się bliżej najbardziej, naszym zdaniem, zaawansowanemu
produktowi w tej dziedzinie, czyli JMeter'owi.
ab
jest prostym, uruchamianym z linii poleceń narzędziem zaprojektowanym
do testowania wydajności serwerów WWW. Jest produktem Apache Software Foundation
jako część serwera WWW Apache.
- łatwo zaprzęgalny do testowania pojedynczego URI
- wielowątkowy (pozwala na zasypywanie serwera WWW daną liczbą
współbieżnych zapytań)
- wspacie dla prostej autoryzacji, metody POST, protokołu HTTPS
(dokumentowane jako niebezpieczne), dodatkowych nagłówków HTTP
- proste raporty HTML.
- brak jakiegokolwiek wsparcie dla testów funkcjonalności
- brak możliwości definiowania całych scenariuszy testowych
odpowiadających procesom biznesowym
Apache Benchmarking Tool, bo takie jest rozwinięcie niewinnego skrótu ab,
jest doskonały do szybkiego przetestowania wydajności jednego konkretnego URI aplikacji.
Ta prostota jest przydatna, kiedy chcemy się na przykład dowiedzieć, jak długo średnio
trwa oczekiwanie użytkownika np. na wylistowanie kategorii w sklepie internetowym, a nie
chcemy tracić czasu na naukę korzystania z bardziej wyspecjalizowanych narzędzi.
WebInject
jest narzędziem do testowania funkcjonalnego. Napisany w Perlu, rozwijany przez
jednego człowieka. Można go używać zarówno z graficznego interfejsu użytkownika, jak
i z linii poleceń.
- możliwość specyfikowania scenariuszy testowych (pliki XML), a co za tym
idzie testowanie całych przypadków użycia
- testowanie poprawności odpowiedzi serwera WWW poprzez wyszukiwanie
wzorca w zawartości otrzymanej strony
- mierzenie czasów odpowiedzi serwera WWW
- generowanie raportów graficznych
- żmudna specyfikacja przypadków testowych
- brak wsparcia dla typowych testów wydajnościowych (jednowątkowość)
Choć WebInject daje możliwości testowania funkcjonalnego, to jego główną
wadą jest niewygoda specyfikacji testów. Produkt ten raczej nie nadaje się do
stosowania na szeroką skalę.
Badboy
prezentuje ciekawe podejście do testowania, gdyż rozwiązuje kwestię
żmudnego specyfikowania testów. Pomysł twórców Badboy'a jest koncepcyjnie
bardzo prosty i można go streścić w słowach: „po co pisać automaty testowe,
które implementują pozdbiór funkcjonalności przeglądarki, jeżeli można do
testowania wykorzystać samą przeglądarkę?''. Program ten podsłuchując aktywność
klikającego użytkownika, nagrywa scenariusze testowe,
które można potem powtarzać.
- narzędzie typu „capture/replay''
- oparty na oryginalnym, lecz nieprzenośnym pomyśle wykorzystania
przeglądarki Internet Explorer do specyfikacji testów
- obsługa protokołów HTTP, HTTPS, ciasteczek, parametrów dynamicznych,
a nawet zdarzeń kliknięcia myszką w dany punkt ekranu (dyskusyjna przydatność)
Badboy wydaje się być doskonałym rozwiązaniem dla testerów kochających się
w powszechnym, lecz nie ogólnodostępnym systemie operacyjnym. Pozwala skutecznie
nagrywać i odtwarzać większość typowych zachowań użytkowników aplikacji webowych,
aczkolwiek np. z testowaniem strony mojego banku sobie nie radzi...
Celowo milczymy jak grób na temat komercyjnych narzędzi do testowania, gdyż
poszukujemy czegoś, co możemy spokojnie użyć bez sięgania głęboko do kieszeni.
Przedstawione wyżej rozwiązania spełniają to wymaganie. Nie zapewniają jednak
wszystkich cech, których oczekujemy od narzędzia testującego. A to jedno
nie jest w ogóle przenośne, choć funkcjonalne, drugie zaś, choć darmowe i
przenośne, nie ma wystarczającej i stabilnej funkcjonalności.
Dalej zobaczymy coś, co spełnia wszystkie te wymagania...
Next: 3 JMeter - bliższe
Up: Apache JMeter
Previous: 1 Wprowadzenie
Spis rzeczy
Przemyslaw Strzelczak
2005-05-20