2013-02-28 19 views
6

Używam JMeter do wykonywania niektórych testów obciążeniowych w mojej aplikacji JSF i mam problemy z przekazywaniem elementu ViewState wzdłuż stron. Zmienna ViewState nie zostanie w ogóle wyodrębniona lub nie zostanie przekazana wzdłuż stron.Wyodrębnianie obiektu ViewState podczas testowania JSF za pomocą JMeter

Nagrałem moje kroki testowe z serwera proxy i to właśnie wygląda:

First GET Request

Dodałem ekstraktor regex w pierwsze żądanie GET. Przetestowałem wyrażenie regularne i jest ono poprawne.

First POST Request

Na każde żądanie POST I zastąpić przewodowe Zobacz identyfikatory z mojego zmiennej.

I co mam kiedy wysłać wniosek jest następujący:

Request sent

parametry POST są błędne, gdyż wysyła nazwę zmiennej.

POST danych:

LoginForm% 3ArequestToken = & LoginForm% 3Ausername = Heller & LoginForm% 3Apassword =% 21QAYxsw2% A7EDC & LoginForm% 3AloginButton = Anmelden & com.sun.faces.VIEW = 24% % 7BjsfViewState% 7D & LoginForm = LoginForm

mógłbyś powiedzieć co robię źle tutaj?
Dzięki!

Odpowiedz

2

Znalazłem mój problem: wyrażenie regularne było nieprawidłowe, więc nie mogło znaleźć nic w odpowiedzi. Musiałem zmienić wyrażenie regularne. Zauważono to po dodaniu wartości domyślnej "NIE ZNALEZIONO".

2

Parametr ViewState jest zakodowaną wartością (według Base64) i może zawierać wartości, które byłyby niewłaściwe, gdyby zostały przekazane w żądaniu GET za pośrednictwem adresu URL. Parametry adresu URL są zwykle kodowane, aby specjalne wartości (np. Spacja ->% 20) mogły być reprezentowane i dekodowane, gdy żądanie dotrze do serwera.

Problem polega na tym, że następujące żądanie to POST, co oznacza, że ​​parametry nie muszą być kodowane za pomocą adresu URL.

com.sun.faces.VIEW =% 24% 7BjsfViewState% 7D & LoginForm = LoginForm

Powyższe pokazuje, że JMeter lub inny proces kodowania URL ViewState na żądanie, które jest niepoprawna . Wartość ViewState powinna po prostu zostać przesłana bez zmian.

+0

Żądania POST są wysyłane jako kodowane wenę, to prawda. Ale myślę, że problem polega na tym, że wyodrębniona wartość w ogóle nie jest ustawiona w żądaniu, ponieważ widzę nazwę zmiennej jako wartość dla com.sun.faces.VIEW, a nie jakąś rzeczywistą wartość wyodrębnioną z odpowiedzi poprzednie żądanie. –

Powiązane problemy