Как тестировать API-интерфейсы в ходе сквозного тестирования в клиентском приложении? - PullRequest
0 голосов
/ 16 января 2019

Мы столкнулись с проблемой в нашем приложении, которая иногда прерывает определенные потоки в нашем приложении из-за отсутствия данных запроса или несоответствия в контракте API.

Мы использовали Nightwatch Js для сквозного тестирования потока.

Итак, моя проблема такова:

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

Итак, будет конфигурация для каждого вызова службы (структура данных запроса, необходимая для этого конкретного вызова службы и такая же для ожидаемого ответа), и когда конец тестирование конечного потока (автоматическое тестирование в браузере) продолжается, каждый указанный сетевой вызов будет проверяться с ранее упомянутой конфигурацией, чтобы определить его успешность или сбой, и причиной является любое несоответствие или отсутствие данных из fronend.

Кроме того, он должен сообщать об этом надлежащим образом в файлах. Было бы здорово, если бы был какой-то способ сделать это в самом Nightwatch или , если есть какая-то основа для этого конкретного варианта использования .

1 Ответ

0 голосов
/ 16 января 2019

Nightwatch как драйвер селена не подходит для тестирования вызовов API. Я бы предложил использовать Frisby.js вместе с Nightwatch. Поскольку это разработано, чтобы быть структурой тестирования API. Вы можете определить ожидаемые запросы и ожидаемые форматы ответов.

frisby.get('http://jsonplaceholder.typicode.com/posts')
      .expect('status', 200)
      .expect('jsonTypes', '*', {
        userId: Joi.number(),
        id: Joi.number(),
        title: Joi.string(),
        body: Joi.string()
      })

...

frisby
  .post('http://api.example.com/files', { title: "foo", body: "bar" })
  .expect('status', 200)

Он поддерживает методы HTTP get, post, put и del.

https://www.frisbyjs.com/nested-tests.html

https://github.com/vlucas/frisby

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...