Как проверить загруженный файл, проверив сеть в devtools

#javascript #file #networking #download #verify

#javascript #файл #сеть #Скачать #проверить

Вопрос:

Я пишу автоматический тест для своей компании.

Вам нужно нажать кнопку, после чего файл загружается НАПРЯМУЮ, поэтому вы не будете перенаправлены на URL.

Теперь я должен убедиться, что файл загружен правильно. Я проверю это, проверив ответ сети.

Может ли кто-нибудь дать мне код / совет / страницу о том, как проверить ответ сети? Я хочу проверить ответ, который я получаю, когда нажимаю загрузить. Я вижу ответ в devtools / Network. Я хочу проверить конкретный файл.

Прошу прощения, если это вопрос новичка, я новичок в мире testautomation, но мне это действительно нравится до сих пор 🙂

Большое вам всем спасибо!

Stackoverflow, ответа не найдено

Кода пока нет

Комментарии:

1. как насчет 200 OK ?

2. Как мне убедиться, что в ответе xxx 200 ОК? Прошу прощения за вопрос новичка, но я не могу найти правильный код для работы.

3. Я немного запутался. Вы проверяете ответ на вкладке Сеть визуально или с помощью какого-либо инструмента (автоматизированного)? Если это первое, то на вкладке Сеть вы также можете увидеть список файлов и коды состояния pasteboard.co/I7n2bpv.png Нажав на каждый отдельный файл, вы получите более подробную информацию.

Ответ №1:

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

Исходя из этого предположения, это все еще зависит от того, что вы используете для загрузки файла.

Если вы используете xhr, ответ заключается в простом добавлении if(xhr.status === 200){ /*validation complete*/} в ваш xhr.onload обработчик. Это просто проверяет, соответствует ли код состояния 200 ok.

Если вы используете jquery, вы можете проверить код состояния внутри $.ajax настроек. Там вы можете добавить statusCode: { 200:function(){/*validation complete*/}} внутри объекта настроек.

Ответ №2:

  cy.request('URL').then((response) => {
    cy.expect(response.status).to.eq(200)
  

это помогло мне!