Używam gatling do testowania wydajności obciążenia na zupełnie nowym API. Wydaje się dość łatwe i dobrze udokumentowane, ale mam do czynienia z problemem tak proste, jak POST wniosek z Content-Type ustawiony na "application/vnd.api + json" w nagłówku. Wszystko działa dobrze, gdy robi rzeczy GET ale podczas uruchamiania testu POST dostajęTestowanie wydajności Load z Gatling i Content-Type
HTTP response:
status=
415 Unsupported Media Type
headers=
cache-control: [no-cache]
Content-Type: [application/vnd.api+json; charset=utf-8]
Date: [Fri, 08 Sep 2017 12:57:10 GMT]
Server: [nginx]
Vary: [Origin]
x-content-type-options: [nosniff]
x-frame-options: [SAMEORIGIN]
X-Request-Id: [ff993645-8e01-4689-82a8-2f0920e4f2a9]
x-runtime: [0.040662]
x-xss-protection: [1; mode=block]
Content-Length: [218]
Connection: [keep-alive]
body=
{"errors":[{"title":"Unsupported media type","detail":"All requests that create or update must use the 'application/vnd.api+json' Content-Type. This request specified 'application/json'.","code":"415","status":"415"}]}
Oto kod scala używam dla żądania http:
object PostTokenGcm {
val token = exec {
http("TestAPI POST /tokens")
.post("/tokens")
.headers(Map("Authorization" -> testApiToken,
"Content-Type" -> "application/vnd.api+json",
"Accept" -> "application/vnd.api+json"))
.body(StringBody(gcmTokenRequestBody)).asJSON
.check(status.is(201))
.check(bodyString.exists)
}}
Wydaje się, że nie jest ustawienie typu zawartości?
Dziękuję za jakąkolwiek przewagę!
Czy to możliwe, że jest błąd w API? Jeśli zrobisz to samo z narzędziem podobnym do listonosza, czy API je zaakceptuje? – pedromss
Użyłem Postman @pedromss i otrzymuję pożądany 201 Stworzony, bez problemów z ustawieniem Content-Type na application/vnd.api + json – Sofia