J'essaie de créer une automatisation d'essai pour obtenir une API d'obtenir à l'aide de repos-assuré et Java.
Cette API a le corps de réponse suivant: p>
{
"items": [
{
"id": "3185",
"customer_id": "299",
"region": "São Paulo",
"region_id": 1234,
"country_id": "BR",
"street": [
"Av Paulista"
],
"company": "Teste",
"telephone": "(19) 99999-9999",
"postcode": "",
"city": "Valinhos",
"firstname": "N/A",
"lastname": "N/A",
"middlename": null,
"prefix": null,
"suffix": null,
"person_type": "PF",
"document": "43448871703",
"state_registry": null,
"created_at": "2019-07-24 13:03:29"
},
{
"id": "3188",
"customer_id": "299",
"region": "São Paulo",
"region_id": 1234,
"country_id": "BR",
"street": [
"Av Paulista"
],
"company": "Teste",
"telephone": "(19) 99999-9999",
"postcode": "",
"city": "Valinhos",
"firstname": "N/A",
"lastname": "N/A",
"middlename": null,
"prefix": null,
"suffix": null,
"person_type": "PJ",
"document": "84047942000115",
"state_registry": null,
"created_at": "2019-07-24 13:03:30"
}
]
}
4 Réponses :
Jetez un coup d'œil à cet article: https://techeplanet.com / parse-json-array-using-repos-assuré / Vous devez le régler un peu, pour extraire les éléments code> d'abord (votre tableau) à partir d'un objet de réponse de niveau supérieur. P> p>
Vous pouvez le faire facilement en utilisant JSONPATH: $. Éléments [*]. ID code> Cela vous donnera à la fois les identifiants. P>
Cela ne fonctionnera que si vous utilisez Jayway's Json-Path ( Github.com/json-path/jsonpath < / a>) et non de la mise en œuvre JSON-Chemin de Rest-Assuré ( GITUB.COM /REST -ASSURÉE/REST -ASSURÉRÉE/WIKI/... ) que l'OP utilise. Comme spécifié dans la DOCS, Rest-assuré a utilisé Groovy GPath ( groovy-lang.org/processing -xml.html # _gpath ) Syntaxe pour son chemin JSON.
Étant donné que vous utilisez Rest-Assuré, vous pouvez extraire ce que vous voulez directement de la réponse elle-même comme: Jayway's JSONPATH et JSONPATH de RESTRURE utilise des syntaxes différentes p> p>
Vous pouvez essayer ci-dessous le code.
Response response=given().contentType(ContentType.JSON).get("http://localhost:3000/posts");
JsonPath jsonPathEvaluator = response.jsonPath();
String title = jsonPathEvaluator.get("title[2]");
String author=jsonPathEvaluator.get("author[2]");