Проверка исходящих звонков через браузер с помощью Cypress.io - PullRequest
0 голосов
/ 12 июня 2018

На нашем сайте у нас есть вызовы Omniture, которые срабатывают, когда кто-то нажимает на ссылку или предпринимает какое-либо действие.В Chrome DevTools на вкладке сети вы можете видеть, что сетевой запрос запускается.

Есть ли у Cypress.io способ перехватывать исходящие сетевые запросы, чтобы мы могли проверять / анализировать URL-адреса?Эквивалентом этого будет что-то вроде прокси Browsermob для настроек webdriver.Я хочу использовать Cypress.io, чтобы сказать ему, чтобы он щелкал по ссылке, но затем я хочу проверить исходящий сетевой запрос через браузер.

Ответы [ 2 ]

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

Вы должны иметь возможность использовать cy.route для ожидания и подтверждения сетевых запросов:

cy.route({
  url:'*omniture.com*',
  method: 'POST',
  onRequest: (xhr) => {
    expect(xhr.request.body).to.eql('somebody')
  }
})

Если вышеописанное не работает, возможно, это связано с тем, чтомодуль использует fetch , который пока не имеет встроенной поддержки.Однако вы можете просто сделать omniture откат к XHR, добавив к вашему cy.visit():

cy.visit('example.com', {
  onBeforeLoad: (win) => {
    win.fetch = null
  }
})

..

или (как вы упомянули)вы можете шпионить за глобальным omniture напрямую

. Вы можете использовать cy.spy() до spy глобального объекта на вашем сайте, вот пример:

cy.visit('example.com')
cy.window().should('have.property', 'omnitureRequest').then(win=>{
  cy.spy(win, 'omnitureRequest')
})

(should() будет ожидать присутствия объекта, прежде чем пытаться шпионить за ним, так как тег omniture <script> может загрузить asynchronously

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

Мы нашли решение нашей проблемы с Omniture.URL-адрес запроса хранится в свойстве Omniture объекта, прикрепленного к объекту окна браузера.Используя cy.window (), мы можем получить объект окна и получить доступ к этому свойству и использовать модуль узла (querystring) для анализа строки запроса.

Нам не удалось найти какой-либо собственный способ в Cypress.io для проверки сетевых запросов.

...