тестирование JSF Spring приложения AJAX-запроса с использованием Jmeter - PullRequest
2 голосов
/ 10 августа 2011

Я использую j meter для проверки того, сколько времени требуется от нажатия кнопки a4j на стороне клиента до ответа сервера.

Для этого я открыл HTTP-запрос с помощью fiddler и искал:

  1. ajax-запрос расшифровал его и вставил в значения в заголовке http?
  2. что еще я должен вставить, чтобы отправить запрос? идентификатор сессии ? как вставить его в заголовок http?

Я запускаю его на той же машине, где запускаю Tomcat, и вижу в своем регистраторе Eclipse, что я вхожу на нужную страницу, но нажатие кнопки не нажимается, может кто-нибудь помочь мне, пожалуйста.

Это регистратор, который я получаю в Eclipse:

2011-08-17 09:52:32,673 ERROR [_ErrorPageWriter] An exception occurred
javax.faces.FacesException: javax.crypto.BadPaddingException: Given final block not properly padded
    at org.apache.myfaces.shared_impl.util.StateUtils.symmetric(StateUtils.java:456)
    at org.apache.myfaces.shared_impl.util.StateUtils.symmetric(StateUtils.java:494)
    at org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:294)
    at org.apache.myfaces.shared_impl.util.StateUtils.reconstruct(StateUtils.java:243)
    at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getSavedState(HtmlResponseStateManager.java:187)
    at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getTreeStructureToRestore(HtmlResponseStateManager.java:151)
    at org.ajax4jsf.application.AjaxStateManager.restoreLogicalViewId(AjaxStateManager.java:564)
    at org.ajax4jsf.application.AjaxStateManager.restoreStateFromSession(AjaxStateManager.java:495)
    at org.ajax4jsf.application.AjaxStateManager.restoreView(AjaxStateManager.java:444)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.restoreView(JspViewHandlerImpl.java:515)
    at org.ajax4jsf.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:107)
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:85)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:151)
    at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:103)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.coral.project.web.context.ExecutionContextFilter.doFilter(ExecutionContextFilter.java:75)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    at com.sun.crypto.provider.DESCipher.engineDoFinal(DashoA13*..)
    at javax.crypto.Cipher.doFinal(DashoA13*..)
    at org.apache.myfaces.shared_impl.util.StateUtils.symmetric(StateUtils.java:452)
    ... 40 more

РЕДАКТИРОВАТЬ: Я думаю, что это может быть полезно для понимания моей проблемы:

enter image description here

1 Ответ

1 голос
/ 11 августа 2011

Если вы не уверены, что ваш AJAX-вызов требует успеха, проще всего использовать HTTP-прокси и записать действие. Это даст вам все параметры, которые передаются на сервер, а также их значения во время записи.

Затем, где это уместно, вы делаете значения параметров динамическими (хороший пример этого - sessionID).

Как записать :

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...