You should approach with REST Assured one more time. Actually it should perfectly fit your needs. When you run GraphQL service you basically run a REST end-point where you send some query and receive JSON as a response. So nothing prevents you from using REST Assured since you can send whatever as a requests and at the same time it provides good tool set for parsing JSON response. **UPD:** Below you can find my example for your case (Rest Assured + TestNg): @Test public void testGraphQL() throws MalformedURLException { String actual = RestAssured. given() .header(new Header("Content-type", "application/json")) .body("{\"query\":\"{\\n Country(id: \\\"us\\\") {\\n name\\n situation\\n }\\n}\\n \"}") .post(new URL("https://portal.ehri-project.eu/api/graphql")) .jsonPath().getString("data.Country.name"); Assert.assertEquals(actual, "United Sttates"); } With the following output: java.lang.AssertionError: expected [United Sttates] but found [United States] Expected :United Sttates Actual :United States <Click to see difference> **P.S.** - This is the query that you have provided in your comment, however you can omit `\n` with no impact to your test.