2012-10-04 14 views
12

Tutto il giorno provo a eseguire i test JMeter della mia applicazione JSF. Sono a conoscenza di ViewState, ma sembrava essere un problema abbastanza semplice. Ho preparato Regular Expression Extractor:Test dell'applicazione JSF con JMeter - Problema ViewState

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

Regular Exp Extractor

I seguenti campionatori sono creati con delega e la registrazione.

Prima richiesta /TourJSF/pages/protected/admin/addTourPage.xhtml. Questa è la richiesta GET da cui verrà estratto ViewState.

First GET

Il POST richiesta /TourJSF/pages/protected/admin/addTourPage.xhtml dove. ${jsfViewStete} è passato attraverso javax.faces.ViewState

jsfViewState passed

Il secondo GET richiesta, ora molto importante in questo caso.

Second GET

I risultati:

First GET. Sulla destra possiamo vedere il valore di ViewState.

first GET result

Debug Sampler che dimostra che il valore jsfViewState sia corretto. Possiamo confrontarlo con la schermata precedente.

Debug Sampler

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

ho trovato alcuni blog e argomenti su questo problema, ma molti di loro erano irrisolto. Se è necessario, posso mettere link a questi argomenti. Sono davvero confuso ...

Dove è il problema? Forse qualcosa con

  • jsessionid?
  • HTTP Header Manager in ogni HTTP Request? Ho cancellato HTTP Header Manager ma non è cambiato nulla.
  • qualcosa con l'applicazione JSF? Quando ho aggiunto context-param in web.xml, non c'era ViewExpiredException ma il contenuto della pagina restituita non era corretto.

risposta

9
+0

io non ci posso credere ... HTTP Cookie Manager nel Gruppo Discussione aiuta. Grazie mille! – LancerX

+0

Ho già utilizzato il gestore dei cookie HTTP, ma ho ancora il problema anche se ho passato lo stato di visualizzazione jsf estratto. Tuttavia, il secondo link che mi hai fornito mi ha aiutato. La sezione "Alcune note" menziona che lo stato di visualizzazione estratto deve essere passato come "codificato". Una volta impostato su encoded, i test jmeter stanno eseguendo con i portlet JSF su WebSphere Portal. Molte grazie!! –