2012-06-28 7 views
7

Ho sviluppato un server di riposo e l'ho messo in esecuzione in localhost, e sto provando a eseguire test con JMeter, inviando messaggi di richieste e ottiene (dipende dal metodo chiamato).come inviare i parametri application/x-www-form-urlencoded a un RestServer con JMeter?

Ho già inviato al server Rest e ho ottenuto risultati con JMeter in semplici richieste di post, richieste, invio di file con post e invio di un JSON con post.

Ma non so come inviare un oggetto Form-UrlEncoded al server. Il mio server Rest consuma "application/x-www-form-urlencoded" e devo inviare tre parametri String.

Esiste un modo per impostare il MimeType per ogni parametro ed eseguire il test?

sto usando Jmeter 2,7

  • Aggiornamento -

Ho risolto questo disabilitando "uso multipart/form-data per il post, e consentendo "reindirizzare automaticamente" invece" seguo reindirizzamento ".I parametri che inserisco normalmente nella tabella" Invia parametri con la richiesta "con i rispettivi nomi

risposta

2

Hai provato a salvare il test utilizzando BadBoy o JMeter Proxy per vedere cosa invia effettivamente la tua applicazione?

Per vedere cosa succede sotto il cofano puoi usare anche FireBug se stai usando FireFox o Ctrl+Shift+i se sei su Chrome.

8

Per l'invio dei parametri del modulo come application/x-www-form-urlencoded, aggiungere un parametro di intestazione Content-Type con value application/x-www-form-urlencoded.

I seguenti passi è aplicable per Jmeter 2.3.4

  1. aggiungere un'intestazione HTTP manager sotto la http Request.
  2. Aggiungere un nuovo parametro a HTTP Header Manager con nome Content-Type e value application/x-www-form-urlencoded.
  3. Deseleziona "Usa multipart/form-data per HTTP POST" della richiesta HTTP.
  4. Deseleziona "Codifica?" di ogni parametro di richiesta (non necessario).
  5. mantenuto la casella di testo "Content Encode:" della richiesta HTTP come vuota.

    Questo non funzionerà per richiesta PUT. Per la richiesta put aggiungere parametri come parametro path e impostare Content-Type header quindi Jmeter farà da solo.

-1

seguiti passaggi esatti citato vedo ancora un'eccezione sollevata

Codice di risposta: il codice non risposta HTTP: java.nio.charset.IllegalCharsetNameException messaggio di risposta: un messaggio non di risposta HTTP: application/x-www-form-urlencoded

java.nio.charset.IllegalCharsetNameException: application/x-www-form-urlencoded 
    at java.nio.charset.Charset.checkName(Charset.java:315) 
    at java.nio.charset.Charset.lookup2(Charset.java:484) 
    at java.nio.charset.Charset.lookup(Charset.java:464) 
    at java.nio.charset.Charset.forName(Charset.java:528) 
    at org.apache.http.entity.ContentType.create(ContentType.java:210) 
    at org.apache.http.entity.StringEntity.<init>(StringEntity.java:116) 
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sendPostData(HTTPHC4Impl.java:1340) 
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.handleMethod(HTTPHC4Impl.java:592) 
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:409) 
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74) 
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1166) 
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1155) 
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:475) 
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:418) 
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:249) 
    at java.lang.Thread.run(Thread.java:745) 
+0

Funziona dopo l'aggiornamento da JMeter 3.1 a 3.2 –

+0

Questa non è una risposta alla domanda in questione. O prendi questo per chattare o pubblicare una nuova domanda riferendosi a questo. – jdv

+0

È una risposta no –

2

Ecco la soluzione per HTTP POST con i test x-www-form-urlencoded con JMeter. Segui follower come questi. enter image description here

enter image description here

enter image description here

Vai alla discussione di gruppo -> Aggiungi ascoltatore -> Visualizzazioni risultato nella tabella, Visualizzare i risultati Albero. Per vedere il processo di risposta.

0

IllegalCharsetNameException andrà immediatamente solo dopo aver aggiunto il tipo di contenuto richiesto in HTTP Header Manager per la richiesta HTTP.

Spero che questo aiuti.