2012-10-04 10 views
12

Den ganzen Tag versuche ich, JMeter-Tests meiner JSF-Anwendung auszuführen. Ich kenne ViewState, aber es schien ein ziemlich einfaches Problem zu sein. Ich bereitete Regular Expression Extractor:JSF-Anwendung mit JMeter testen - ViewState-Problem

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

Regular Exp Extractor

Die folgenden Sampler mit Proxy und Aufzeichnung erstellt.

Erste Anfrage /TourJSF/pages/protected/admin/addTourPage.xhtml. Dies ist die GET Anfrage, aus der ViewState extrahiert wird.

First GET

Die POST Anfrage /TourJSF/pages/protected/admin/addTourPage.xhtml wo. ${jsfViewStete} ist bestanden in javax.faces.ViewState

jsfViewState passed

Die zweite GET Anfrage jetzt sehr wichtig, in diesem Fall.

Second GET

Die Ergebnisse:

Erste GET. Auf der rechten Seite können wir den Wert von ViewState sehen.

first GET result

Debug Sampler die zeigt, dass jsfViewState Wert korrekt ist. Wir können es mit dem vorherigen Bildschirm vergleichen.

Debug Sampler

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

fand ich einige Blogs und Themen zu diesem Thema, aber viele von ihnen waren ungelöst. Wenn es nötig ist, kann ich Links zu diesen Themen setzen. Ich bin wirklich verwirrt ...

Wo ist das Problem? Vielleicht etwas mit

  • jsessionid?
  • HTTP Header Manager in jedem HTTP Request? Ich habe HTTP Header Manager gelöscht, aber nichts geändert.
  • etwas mit JSF-Anwendung? Als ich den Kontextparameter com.sun.faces.enableRestoreView11Compatibility in web.xml hinzufügte, gab es keine ViewExpiredException, aber der Inhalt der zurückgegebenen Seite war nicht korrekt.

Antwort

9
+0

Ich kann es nicht glauben ... HTTP Cookie Manager in Thread-Gruppe hilft. Vielen Dank! – LancerX

+0

Ich habe bereits den HTTP-Cookie-Manager verwendet, aber ich bekomme immer noch das Problem, obwohl ich den extrahierten JSF-Ansichtszustand übergeben habe. Der zweite Link, den Sie zur Verfügung gestellt haben, hat mir jedoch geholfen. Der Abschnitt "Einige Notizen" erwähnt, dass der extrahierte Ansichtszustand als "codiert" übergeben werden muss. Sobald ich es auf encodiert eingestellt habe, werden die J-Tester-Tests mit den JSF-Portlets in WebSphere Portal durchgeführt. Danke vielmals!! –