t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

rest
database
data
test-data
api
rest-assured
qa
json
Теги: #<Tag:0x00007fb2f6148d08> #<Tag:0x00007fb2f6148bc8> #<Tag:0x00007fb2f6148a88> #<Tag:0x00007fb2f61488a8> #<Tag:0x00007fb2f6148768> #<Tag:0x00007fb2f6148600> #<Tag:0x00007fb2f61484c0> #<Tag:0x00007fb2f6148380>

#1

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

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

(Arina) #2

Можно в директории 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;
    }

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


(Alexandr D.) #3

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

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


(Pavel) #4

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