Весь день я пытаюсь запустить JMeter-тесты моего приложения JSF.
Я знаю ViewState
, но это, казалось, довольно простая проблема. Я подготовил Extractor Extractor:
Reference Name: jsfViewState
Regular expression: id=\"javax.faces.ViewState\" value=\"(.+?)\"
Template $1$
Match No. 1
Следующие пробоотборники создаются с прокси-сервером и записью.
Первый запрос /TourJSF/pages/protected/admin/addTourPage.xhtml
. Это запрос GET
, из которого будет извлекаться ViewState.
Запрос 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-апликацией? Когда я добавил context-param
com.sun.faces.enableRestoreView11Compatibility
вweb.xml
, не былоViewExpiredException
, но содержимое возвращенной страницы было неправильным.