#javascript #automated-tests #mocha.js #cypress #mochawesome
#javascript #автоматизированные тесты #mocha.js #cypress #mochawesome
Вопрос:
Наш cypress suite отлично работает локально на каждом компьютере, среде, местоположении. Мы настроили его для работы с конвейером Bitbucket, но есть определенный шаг, который постоянно завершается неудачей из-за выполняемого им вызова API. Этот вызов API выполняется для внешней службы, и мы добавляем параметры в полезную нагрузку, которые динамически создаются с запросом.
Мы подозреваем, что некоторые из этих параметров не созданы правильно при запуске из конвейера (могут быть связаны с местоположением, агентом и т. Д.), Потому что мы получаем «Несанкционированный доступ».
Итак, проблема в том, что у нас нет никакого способа отладить этот вызов API из конвейера, и это единственное место, где он терпит неудачу.
Итак, есть ли у вас какие-либо предложения о том, как сохранить полезную нагрузку XHR на шаге в Cypress?
- Сохраните его в отчете mocha.
- Отправьте его по электронной почте.
- Возможно, добавьте это в журнал.
- Сохраните его как артефакт. Извините, я просто не знаю, как подойти к этому, поскольку я не эксперт ни в конвейерах cypress, ни в bitbucket.
Более конкретно, мне нужно отладить этот вызов:
Комментарии:
1. У меня нет для вас полного ответа, но вам, вероятно, просто нужно написать сценарий узла, чтобы сделать это, а затем вызвать его в своем тесте с помощью cy.task() .
Ответ №1:
Насколько я понимаю, ваш URL-адрес внешнего вызова API известен, верно? Если это так, я бы предложил для целей отладки маршрутизировать этот вызов, а затем отобразить его в журналах выполнения cypress, чтобы вы могли сравнить полезную нагрузку запроса:
cy.route({ method: 'POST', url: `/ps/users`}).as('routedRequest');
...
cy.get('@routedRequest').then((xhr) => {
cy.log(JSON.stringify(xhr.request))
});