Тестирование API - хранение тестовых данных

Привет. Т.к. только начинаю постигать азы тестирования апи, возникают непонятки с хранением тестовых данных.
Вариант с БД сразу отпадает (просто на данный момент невозможно).
Сейчас тело запросов и ожидаемых ответов храню в соответствующих json-файлах. Но с увеличением тестов плодятся и эти json-файлы. Т.е. сейчас имеется следующее:

  • Для ожидаемых ответов есть куча json-файлов
  • И для входных параметров (тело запроса) храню в json-файлах
    Т.к. комбинации входных данных могут быть разные, соответственно, и на выходе json всегда разные и сейчас все они хранятся в отдельных папках, которые я считываю и мапплю в POJO. И далее сравниваю эти 2 объекта POJO: текущий и ожидаемый, считанный с этих самых файлов.
    Вопрос: корректно ли это? И есть ли альтернативные варианты помимо БД? Может быть как-то и продолжить эту темы с хранением json-файлов, но как-то оптимизировать, но пока мыслей нет…
1 лайк

Можно в директории actions делать так

private String authBody(String phone) {
        String body = new JSONObject()
                .put("apps_flyer_id", "")
                .put("geoPosition", new JSONObject()
                     .put("lat", "0")
                     .put("lon", "0"))
                .put("imei", "")
                .put("lang_iso_code", "ua")
                .put("phone", phone)
                .toString();

        return body;
    }

public Response getSkipInformationBy(String phone) {
        Response response =
                given().
                    body(authBody(phone)).
                when().
                    post("/api/v2/auth");

        return response;
    }

и в самом тесте вызывать и заполнять данными

Ну, хранить запросы в json вполне нормальная тема, только я бы их держал в репозитории и скачивал перед запуском тестов.

А вот хранить ответы в json совсем необязательно, что вам мешает в конкретных тестах указать конкретные проверки?

Я храню тестовые данные в конфиге?
https://github.com/pbezpal/itphone/blob/master/src/main/resources/config/tests.properties
Не очень понятно, зачем отдельно хранить файлик с ожидаемыми ответами?

Вообще не понимаю для чего их хранить. А генерировать в тесте никак не получится?

Так проще управлять данными в тесте.например, логин или пароль используется в нескольких разных тестах, удобнее же поменять в одном месте, а не искать по всему коду

Согласен за логопасс, url’ы и по мелочи - в конфиге. Остальное, обычно проще генерировать (вроде того о чем пишет топикстертер - “тело запросов и ожидаемых ответов храню в соответствующих json-файлах”). На мой взгляд, веское основание должно быть для использование такого подхода.

Георгий, можете привести пример, как вы это делаете?

Java - нет. Если только python.