JMeter a aplikacja w SEAM-ie

Odpowiedz Nowy wątek
2011-07-11 09:18
0

Witam,

Nie jestem specjalistą w Javie jednak przyszło mi przeprowadzić testy aplikacji napisanej przy użyciu SEAM-a znajdującej się na serwerze dedykowanym. Byłbym wdzięczny za pomoc i udzielenie odpowiedzi na kilka pytań...

Głównym celem jest sprawdzenie wydajności aplikacji i serwera przy obciążeniu na poziomie 400 użytkowników wykonujących dość proste scenariusze - ale na stosunkowo złożonej aplikacji.

W celu przeprowadzenia symulacji stworzyłem scenariusz testowy w programie JMeter bez timerów - wszystkie requesty wykonują się prawidłowo także dla symulacji większej ilości użytkowników.

pytanie pierwsze - gdzie powinienem odpalić testy? - czy na serwerze, na którym znajduje się aplikacja (trudniejsze ponieważ brak GUI) czy na lokalnej stacji (lub paru stacjach na różnych łączach). Przyznam się, że nie wiem jak wpływa przepustowość łącza na wyniki... i gdzie wykonać test aby najlepiej odzwierciedlał rzeczywiste użytkowanie aplikacji.

2 Jakie timery ustawic - tzn mam na myśli opóźnienia pomiędzy wątkami. Obecnie leci chyba wszystko na raz - i czasy odpowiedzi są długie... (też nie wiem czy to przez łącze czy zarzucenie serwera). Dodanie timerow spowodowałoby opóźnione wstawanie wątków i w takiej sytuacji można by je zapętlić.

3 jak najprościej zweryfikować wyniki...? Chodzi o to, że np listener "Graph result" zwraca wartość Average w milisekundach - rozumiem, że jest to średni czas odpowiedzi każdej z podstron (każdego samplera). Jak najprościej sprawdzić czy dla danego scenariusza (obecnie każdy wątek przechodzi go 1 raz) dla 400 użytkowników aplikacja nie zwolni za bardzo? Być może lepiej ustawić pętle dodać timery ustawić 400 wątków i pozostawić na jakiś czas?

Jeśli bylibyście w stanie udzielić mi tych paru odpowiedzi - będę naprawdę wdzięczny… Z góry też przepraszam za ewentualne braki logiczne w moim poście - dopiero zaczynam przygodę z testowaniem i niestety odczuwam jeszcze znaczący brak wiedzy ;)
Pozdrawiam serdecznie.

Pozostało 580 znaków

2011-07-11 10:08

Co do infrastruktury to najlepszym rozwiązaniem jest użycie serwera o parametrach zbliżonych do produkcyjnego. Następnie na zwykłym PCecie stawiasz sobie VirtualBox i odpalasz w nim ze dwa niewielkie Debiany z JMeterem, które będą "spamować" aplikację testową. Dlaczego tak jest moim zdaniem dobrze? Po pierwsze testujesz maszynę o podobnej wydajności jak produkcyjna czyli warunki eksperymentu są zbliżone do założeń. Znowuż wirtualki pozwalają na stabilne testowanie, bo nawet w przypadku zawieszenia się testów w wyniku błędów nie będziesz stratny. Wystarczy restart VB.

  1. Jeżeli testujesz przez przeklikanie to możesz testy JMetera wzbogacić o Selenium. W takim układzie Selenium pozwala na oczekiwanie na odpowiedź i nie trzeba ustawiać żadnych synchronizacji.
  2. Musisz uruchomić wielokrotnie ten sam test. Dopiero na tej podstawie można mówić o średnim czasie w jakimś scenariuszu. Najłatwiej uruchomić kilka wątków i w nich odpalać w pętli testy. całośc będzie trochę naiwna, bo np. będzie utrzymywana sesja na serwerze, ale w razie czego pozwoli to wykryć anomalie.

Pozostało 580 znaków

2011-07-11 10:54
0

Witam,
dziękuję za szybką odpowiedź - Selenium będzie bardzo przydatne.
Pozdrawiam ;)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0