2012-10-04 58 views
12

Przez cały dzień staram się uruchamiać testy JMeter mojej aplikacji JSF. Jestem świadomy ViewState, ale wydawało się to dość prostym problemem. Przygotowałem Regular Expression Extractor:Testowanie aplikacji JSF za pomocą JMeter - problem z ViewState

Reference Name: jsfViewState 
Regular expression: id=\"javax.faces.ViewState\" value=\"(.+?)\" 
Template $1$ 
Match No. 1 

Regular Exp Extractor

Poniższe próbniki są tworzone z proxy i nagrywania.

Pierwszy wniosek /TourJSF/pages/protected/admin/addTourPage.xhtml. Jest to żądanie GET, z którego zostanie wyodrębnione narzędzie ViewState.

First GET

POST prośba /TourJSF/pages/protected/admin/addTourPage.xhtml gdzie. ${jsfViewStete} przechodzi do javax.faces.ViewState

jsfViewState passed

Drugi GET wniosek, teraz bardzo ważne w tym przypadku.

Second GET

Wyniki:

Pierwszy GET. Po prawej widać wartość ViewState.

first GET result

Debug Sampler co wskazuje, że wartość jsfViewState jest poprawne. Możemy to porównać z poprzednim ekranem.

Debug Sampler

javax.faces.application.ViewExpiredException: viewId:/pages/protected/admin/addTourPage.xhtml - View /pages/protected/admin/addTourPage.xhtml could not be restored. 

znalazłem kilka blogów i tematy dotyczące tego problemu, ale wiele z nich były nierozwiązane. Jeśli jest to potrzebne, mogę umieścić linki do tych tematów. Jestem bardzo zdezorientowany ...

Gdzie jest problem? Może coś z

  • jsessionid?
  • HTTP Header Manager w każdym HTTP Request? Usunąłem HTTP Header Manager, ale nic się nie zmieniło.
  • coś z aplikacją JSF? Gdy dodałem parametr kontekstu com.sun.faces.enableRestoreView11Compatibility do web.xml, nie było ViewExpiredException, ale zawartość zwróconej strony była niepoprawna.

Odpowiedz

9
+0

Nie mogę w to uwierzyć ... HTTP Cookie Menedżer w grupie wątków pomaga. Dziękuję Ci bardzo! – LancerX

+0

Używałem już Menedżera plików cookie protokołu HTTP, ale nadal otrzymuję problem, mimo że przekazałem wyodrębniony stan widoku jsf. Jednak drugi podany przez ciebie link pomógł mi. Sekcja "Niektóre uwagi" wspomina, że ​​wyodrębniony stan widoku musi być przekazany jako "zakodowany". Po ustawieniu go na kodowanie wykonywane są testy jmetera za pomocą portletów JSF w produkcie WebSphere Portal. Wielkie dzięki!! –