2012-06-28 5 views
7

Opracowałem serwer odpoczynku i uruchomiłem go w localhost, a ja próbuję wykonywać testy za pomocą JMeter, wysyłając żądania i posty (zależy od metody wywołania).jak wysłać kody aplikacji/x-www-urlencoded do RestServer za pomocą JMeter?

Już wysyłam do serwera Rest i otrzymuję wynik z JMeter w prostych żądaniach post, otrzymuję żądania, wysyłam pliki z postem i wysyłam Json z postem.

Ale nie wiem, jak wysłać obiekt Form-UrlEncoded do serwera. Serwer My Rest zużywa "application/x-www-form-urlencoded" i muszę wysłać trzy parametry String.

Występuje w jakiś sposób, aby ustawić MimeType dla każdego parametru i wykonać test?

Używam JMeter 2,7

  • Aktualizacja -

Rozwiązałem to przez wyłączenie "korzystanie multipart/form-data na stanowisku oraz umożliwienie "przekierować automatycznie" zamiast" follow przekierowanie”. parametry kładę zwykle w tabeli«Wyślij parametry z żądaniem»ze sobą odpowiednimi nazwami.

Odpowiedz

2

czy próbowałeś zapisać test używając BadBoy lub JMeter Proxy, aby zobaczyć, co faktycznie wysyła aplikacja?

Aby zobaczyć, co dzieje się pod maską, możesz także użyć FireBug, jeśli używasz FireFox lub Ctrl+Shift+i, jeśli używasz Chrome.

8

Aby przesłać parametry formularza jako application/x-www-form-urlencoded, dodaj parametr nagłówkowy Content-Type z wartością application/x-www-form-urlencoded.

Poniższe kroki obowiązują dla jmeter 2.3.4

  1. Dodawanie nagłówka HTTP Menedżer pod żądania HTTP.
  2. Dodaj nowy parametr do nagłówka HTTP Header Manager o nazwie Content-Type i value application/x-www-form-urlencoded.
  3. Odznacz pole "Użyj danych wielostronicowych/danych formularza dla HTTP POST" żądania HTTP.
  4. Odznacz "Kodować?" każdego parametru żądania (nie jest to konieczne).
  5. pozostawił pole "Treść Encode:" w żądaniu HTTP jako puste.

    To nie zadziała dla żądania PUT. Dla zlecenia put dodaj parametry jako parametr ścieżki i ustaw nagłówek Content-Type, a następnie Jmeter wykona samodzielnie.

-1

następnie dokładne etapy wymienione i jeszcze zobaczyć wyjątek wyrzucane

Kod odpowiedzi: NON kod odpowiedzi http: java.nio.charset.IllegalCharsetNameException wiadomość Response: komunikat dla odpowiedzi 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

To działa po uaktualnieniu z JMeter 3.1 do 3.2 –

+0

To nie jest odpowiedź na pytanie. Możesz to zrobić, aby porozmawiać na czacie lub zadać nowe pytanie dotyczące tego. – jdv

+0

To odpowiedź, nie jest to –

2

Oto rozwiązanie dla HTTP POST z testów x-www-form-urlencoded z JMeter. Po prostu podoba ci się to. enter image description here

enter image description here

enter image description here

idź do Thread Group -> Dodaj słuchacza -> Widoki wynik w tabeli, zobacz wynik Drzewo. Aby zobaczyć proces odpowiadania.

0

IllegalCharsetNameException nastąpi natychmiast po dodaniu wymaganego typu zawartości w menedżerze nagłówków HTTP dla żądania HTTP.

Mam nadzieję, że to pomoże.

Powiązane problemy