12
整天我嘗試運行JSF應用程序的JMeter測試。 我知道ViewState
,但它似乎很簡單的問題。我準備正則表達式提取:使用JMeter測試JSF應用程序 - ViewState問題
Reference Name: jsfViewState
Regular expression: id=\"javax.faces.ViewState\" value=\"(.+?)\"
Template $1$
Match No. 1
下采樣與代理和記錄創建。
第一次請求/TourJSF/pages/protected/admin/addTourPage.xhtml
。這是從中提取ViewState的GET
請求。
的POST
請求/TourJSF/pages/protected/admin/addTourPage.xhtml
其中。 ${jsfViewStete}
傳遞到javax.faces.ViewState
第二GET
要求,現在在這種情況下非常重要。
結果:
首先GET
。在右側,我們可以看到ViewState的價值。
Debug Sampler
這表明jsfViewState值是正確的。我們可以將它與之前的屏幕進行比較。
javax.faces.application.ViewExpiredException: viewId:/pages/protected/admin/addTourPage.xhtml - View /pages/protected/admin/addTourPage.xhtml could not be restored.
,我發現這個問題的一些博客和話題,但他們中許多人沒有解決。如果需要,我可以把這些主題的鏈接。我真的很困惑...
問題在哪裏?可能與
jsessionid
?HTTP Header Manager
以每HTTP Request
?我刪除了HTTP Header Manager
,但沒有任何變化。- JSF apllication的東西?當我添加上下文參數
com.sun.faces.enableRestoreView11Compatibility
到web.xml
,沒有ViewExpiredException
但返回的頁面內容不正確。
我不能相信...... HTTP Cookie管理器中的線程組幫助。非常感謝你! – LancerX
我已經使用HTTP Cookie管理器,但即使我一直在傳遞提取的jsf視圖狀態,我仍然遇到問題。但是,您提供的第二個鏈接幫助了我。 「一些筆記」部分提到提取的視圖狀態必須作爲「編碼」傳遞。將其設置爲編碼後,jmeter測試將通過WebSphere Portal上的JSF Portlet進行。非常感謝!! –