Как проверять и запрашивать исходящие сетевые запросы с помощью Cypress.io? - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь загрузить страницу, а затем я хочу использовать Cypress.io, чтобы проверить сетевые запросы, которые соответствуют https://securepubads.g.doubleclick.net/gampad/ads?*, и просмотреть запрос с конкретным параметром запроса (обычно таких запросов не менее 2 или более ). В Chrome, если я хочу вручную проверить сетевые запросы страницы, я просто перехожу на вкладку Сеть в Chrome Dev Tools и проверяю эти запросы. В другом полу-связанном SO-вопросе ( Проверьте исходящие сетевые вызовы браузера с помощью Cypress.io ) мне сказали, что я могу использовать

cy.route({
   url: '', 
   onRequest: (req) => { 
      // Some code in here
   } 
});

, чтобы автоматизировать это. Однако, когда я настроил этот пример cy.route () с помощью cy.server (), я не вижу ничего внутри выполнения этого обратного вызова. Маршрут к https://securepubads.g.doubleclick.net/gampad/ads?* отмечен галочкой, но я вижу, что один из вызовов https://securepubads.g.doubleclick.net/gampad/ads?* возвращает 400 сервером на вкладке сети Chrome Dev Tools. Я не вижу эту ошибку 400, если я попадаю на страницу нормально.

Кажется, cy.route предназначен для озвучивания запросов и ответов. Мне не нужно заглушать любые запросы или ответы. Я просто хочу видеть и запрашивать сетевые запросы, не изменяя их, как это делают инструменты Chrome dev, но автоматизированные. Поддерживает ли Cypress.io этот вариант использования? Спасибо.

1 Ответ

0 голосов
/ 27 июня 2018

Я смог решить свою проблему после того, как задал вопрос на странице Cypress github.

Согласно документации Cypress, запустите cy.server (), затем вызовите маршрут, но передайте фактический шаблон регулярных выражений в параметр url (который не был задокументирован). Я не знаю, что не так с версией глобуса строки, показанной в документации, но фактический шаблон регулярного выражения вызвал запуск маршрута.

cy.server();

cy.route({
  url: /gampad\/ads\?/,
  onRequest: (req) => {
     debugger;
     // Do checks here.
  }
});
...