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]");