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
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.
Die POST
Anfrage /TourJSF/pages/protected/admin/addTourPage.xhtml
wo. ${jsfViewStete}
ist bestanden in javax.faces.ViewState
Die zweite GET
Anfrage jetzt sehr wichtig, in diesem Fall.
Die Ergebnisse:
Erste GET
. Auf der rechten Seite können wir den Wert von ViewState sehen.
Debug Sampler
die zeigt, dass jsfViewState Wert korrekt ist. Wir können es mit dem vorherigen Bildschirm vergleichen.
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 jedemHTTP Request
? Ich habeHTTP Header Manager
gelöscht, aber nichts geändert.- etwas mit JSF-Anwendung? Als ich den Kontextparameter
com.sun.faces.enableRestoreView11Compatibility
inweb.xml
hinzufügte, gab es keineViewExpiredException
, aber der Inhalt der zurückgegebenen Seite war nicht korrekt.
Ich kann es nicht glauben ... HTTP Cookie Manager in Thread-Gruppe hilft. Vielen Dank! – LancerX
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!! –