Я пишу набор тестов, который включает пинг API с различной полезной нагрузкой. Ниже приведен пример полезной нагрузки (пример):
{
"param_1" : "value_1",
"param_2" : "value_2",
"param_3" : "value_3",
"param_4" : "value_4",
"param_5" : "value_5",
"location" : {
"region" : "EU"
},
"additional_params" : {
"availability" : "high",
"volume" : "low"
}
}
У меня есть вышеуказанная полезная нагрузка, записанная в файле json
, и набор тестов выполняет следующее:
- Чтение
json
файл и создание компонента для полезной нагрузки - Отправка
POST
запроса - Утверждение ответа
Теперь мне нужно протестировать один и тот же API с различными комбинациями значений, например, регион США, низкая доступность, низкий объем и т. д. c. В запросе много других параметров, но меняются только вышеперечисленные. Чтобы проверить это, я могу сделать следующее:
- Создать файл
json
с каждым сценарием - Создать только один файл
json
, десериализовать его и сохранить комбинации в другом файл, подобный этому:
[
{
"location": {
"region": "US"
},
"additional_params" : {
"availability" : "high",
"volume" : "high"
}
},
{
"location": {
"region": "EU"
},
"additional_params" : {
"availability" : "low",
"volume" : "low"
}
}
]
Затем я могу прочитать этот файл, обновлять базовый объект каждый раз перед отправкой запроса.
Проблема с первым подходом заключается в том, что я буду в конечном итоге с большим количеством файлов с 90% дублирующимся контентом. Для второго подхода предоставляет ли Джексон API для десериализации базового объекта и применяет изменения, как я упоминал выше?