Есть некий сервис, который отдает JSON. Как можно средствами JUnit/TestNG получить JSON и распарсить его? Гуглил, заблудился в 3 соснах. 2 дня сидел не разобрался.
Ищу что-то простое, типа
res = makeRequest(URL, params);
findValue = res.getInt(1).getText();
Тоже думаю начать использовать Rest Assured, расскажите пожалуйста о каких-нибудь минусах и недостатках? И можно ли как то создавать проекты для импорта в клиенты типа Postman, чтобы нубы могли у себя быстренько все открыть и воспроизвести?
Есть ли версия для C#? Как интегрируется с CI?
Есть ли хелперы для авторизации, окружений разных… Как вы объекты храните, где пишите их? Используете БД или папку с файлами?
JSONObject jsonResponse = new JSONObject(IOUtils.toString(response.getEntity().getContent()))
JSONArray jsonResponse = new JSONArray(IOUtils.toString(response.getEntity().getContent()))
Обращение к полям простое (в случае с array - добавляется цикл по элементам списка):
jsonResponse.get("field")
jsonResponse.getString("field")
или любой другой формат.
Если JSON надо распарсить в объект, то можно использовать JsonDeserializer и той же библиотеки Gson.
Выглядит примерно так.
Класс отвечающий за десериализацию: public class TestDataClientJsonDeserializer implements JsonDeserializer<TestDataClient> { @Override public TestDataClient deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException { JsonObject jsonObject = json.getAsJsonObject(); String clientName = jsonObject.get("name").getAsString(); String clientPass = jsonObject.get("password").getAsString(); String clientAddress = jsonObject.get("address").getAsString(); OperatingSystem clientOperSystem = HelpUtils.parseEnum(OperatingSystem.class,jsonObject.get("arch").getAsString()); TestDataClient client = new TestDataClient(clientName, clientPass, clientAddress, clientOperSystem); client.setGlobalId(jsonObject.get("globalId").getAsString()); client.setClientDesc(jsonObject.get("description").getAsString()); return client; } }