2009-02-19 10 views
5

Pracuję nad witryną, która bardzo dobrze wykorzystuje AJAX i dynamiczny JavaScript na interfejsie frontowym i czas rozpocząć testy warunków skrajnych. Ale jak właściwie stresujesz test, który wymaga kliknięcia kilku linków na front-endie? Jednym ze sposobów, w jaki łatwo i szybko można było trafić na każdej stronie witryny, było wskazywanie na nią Google Mini. Ale to nie będzie klikać odnośników, a potem nawigować w oknach Modalnych i tym podobnych.Testowanie obciążenia UI

Edycja - Powinienem wskazać, że strona jest wykonana w PHP5, a używana biblioteka JavaScript to jQuery. Nie jestem pewien, czy to by miało jakąkolwiek różnicę, ale uznał, że może to być przydatne.

Odpowiedz

2

JMeter jest w tym świetny. Możesz nagrywać swoje sesje i dostosowywać je do własnych upodobań.

Tak zwane "testowanie obciążenia ajax" jest powracającym tematem na tej stronie i często jest mylone. Warto więc powiedzieć wprost: tak naprawdę nie ma różnicy między testowaniem obciążenia na normalnej stronie internetowej a testowaniem obciążenia za pomocą ajax. Wszystko sprowadza się do dyskretnych próśb; po prostu nie są to pełne odświeżenia strony.

Jedną rzeczą, aby pamiętać, to istnieje wyraźna różnica pomiędzy obciążeniem testowania serwera przetwarzanie żądań (test obciążenia) i wydajności na ekranie składników UI aktualizowane (jak dobrze javascript wykonuje.)

Prosty przykład test obciążenia:

  1. początkowe obciążenie strona
  2. logowanie
  3. nawigacja?
  4. 5-10 wnioski 'Ajax' (lub cokolwiek może zmieścić swój sposobie korzystania z aplikacji)
  5. Wyloguj
1

Co naprawdę chcę to podkreślić testu jest zdolność serwera do obsługi żądań AJAX. Użyj narzędzia ładującego, które sprawdza żądania podczas "zapisywania" testu, a następnie dostosuj je odpowiednio. Użyłem tylko wersji testowej vs, więc nie mogę wskazać taniego.

1

Nie zgadzam się z Nathanem i Freddy do pewnego stopnia. Mają rację, że "testowanie AJAX" tak naprawdę nie różni się tym, że tworzone są żądania HTTP. Ale to nie jest takie proste. Zobacz mój artykuł na Ajaxian.com na Why Load Testing Ajax is Hard.

JMeter, Pylot i The Grinder są świetnymi narzędziami do generowania żądań HTTP (ja osobiście polecam Pylota). Ale w swojej istocie nie działają jako przeglądarka i nie przetwarzają kodu JavaScript, co oznacza, że ​​wszystko, co robią, odtwarza ruch, który widzieli w rekordowym czasie. Jeśli żądania AJAX były unikalne dla tej sesji, mogą nie być odpowiednie/poprawne, aby odtwarzać w dużych ilościach.

Faktem jest, że w miarę przesuwania logiki do przeglądarki staje się o wiele trudniejsza (o ile nie niemożliwa) odpowiednia symulacja ruchu za pomocą tradycyjnych narzędzi do testowania obciążenia.

W tym artykule podam prosty przykład tego, jak trudno jest przetestować coś w rodzaju strony głównej Google, gdy chcesz zapytać 1000 o różne wyszukiwane hasła (ważny cel podczas testowania obciążenia).Aby to zrobić za pomocą JMeter/Pylot/Grinder, efektywnie skończysz przepisywanie części kodu AJAX (w twoim przypadku w/jQuery) w ojczystym języku narzędzia.

To staje się jeszcze bardziej złożone, jeśli celem jest zmierzenie czasu reakcji postrzeganego przez użytkownika (co jest prawdopodobnie najważniejszą rzeczą pod koniec dnia). W przypadku bardzo złożonych aplikacji wykorzystujących Comet/"Reverse Ajax" (technika, która utrzymuje otwarte gniazda przez długi czas), tradycyjne narzędzia ładujące w ogóle nie działają.

Moja firma, BrowserMob, zapewnia load testing service który używa przeglądarek Firefox, zasilanych przez Selenium, jechać setki lub tysiące prawdziwych przeglądarek, co pozwala mierzyć czas i wykonanie elementów wizualnych, jak widać w przeglądarce. Obsługujemy również tradycyjnych użytkowników wirtualnych (ślepy ruch HTTP) i symulowaną przeglądarkę (przez HtmlUnit).

Wszystko, co powiedzieliśmy, to zwykle połączenie usługi takiej jak BrowserMob z tradycyjnym testowaniem obciążenia. Oznacza to, że prawdziwe przeglądarki doskonale sprawdzają się na pełnym obciążeniu, ale nigdy nie będą tak ekonomiczne jak "wirtualni użytkownicy", ponieważ wymagają 10-100 razy więcej pamięci RAM i procesora. Zobacz mój ostatni wpis na blogu dotyczący tego, czy to simulate or not to simulate virtual users.

Nadzieję, że pomaga!

0

Możesz użyć czegoś takiego jak openSTA.

Umożliwia to rejestrację sesji z witryną internetową, a następnie odtwarzanie za pomocą stosunkowo prostego języka skryptowego.

Możesz także łatwo testować serwisy internetowe i pisać własne skrypty.

Pozwala na umieszczenie skryptów w teście w dowolny sposób i skonfigurowanie liczby iteracji, liczby użytkowników w każdej iteracji, czasu narastania w celu wprowadzenia każdego nowego użytkownika i opóźnienia między kolejnymi iteracjami. Testy można również zaplanować w przyszłości.

Jest to oprogramowanie otwarte i bezpłatne.

Generuje wiele raportów, które można zapisać w arkuszu kalkulacyjnym. Następnie używamy tabeli przestawnej, aby łatwo analizować i rysować wyniki.

Powiązane problemy