Как удалить запросы в браузере

Обновлено: 21.11.2024

Мы пытаемся протестировать вариант использования, когда инициируется запрос на удаление. Мы издеваемся над этим запросом, используя requestHooks. Тест не вызывает никаких проблем при локальном выполнении. Но когда тест выполняется для BrowserStack, в большинстве случаев он терпит неудачу.

Какое текущее поведение?

Запрос на удаление выполняется тестовым кодом. Это можно увидеть в журналах Hammerhead, а также в сетевых журналах BrowserStack.
В сетевых журналах BrowserStack видно, что запрос OPTIONS имитируется, но на запрос DELETE нет ответа.

Запрос OPTIONS сетевого журнала BrowserStack

Эта проблема возникает в основном в браузере Safari, а не в других протестированных браузерах (Firefox, Edge, Chrome).

Соответствующие журналы Hammerhead

Журналы Hammerhead, локальный запуск

Я отладил код Testcafe во время выполнения и увидел, что обработка запроса DELETE внезапно остановилась в функции fetchProxyRequestBody (request-pipeline/stages.js) без каких-либо сообщений об ошибках.

Какое ожидаемое поведение?

Запрос DELETE должен вернуть ответ.

Что представляет собой ваше веб-приложение и тестовый код TestCafe?

Этапы воспроизведения:

Информация о вашей среде:

  • версия тестового кафе: 1.14.0
  • версия node.js: 14.15.0
  • аргументы командной строки: testcafe "browserstack:safari@14.0:OS X Big Sur" e2e/**/*.e2e-spec.ts -r spec --compiler-options typescript.configPath='./e2e/ tsconfig.json'
  • название и версия браузера: Safari версии 14.0.3
  • платформа и версия: MacOS 11.2.3 (локальная система) / MacOS 10.15.6 (BrowserStack)
  • testcafe-browser-provider-browserstack: 1.13.1

Может ли это быть проблемой с прокси-сервером Hammerhead или это больше связано с подключением к Browserstack? (Мы уже связались со службой поддержки Browserstack).

Текст был успешно обновлен, но возникли следующие ошибки:

бот без ответа прокомментировал 9 мая 2021 г.

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

прокомментировал тилх 11 мая 2021 г. •

Здравствуйте, @miherlosev!
Я обновил описание проблемы примером проекта ("Шаги по воспроизведению").

Отправить запрос на удаление curl

cURL (URL-адрес клиента) — это утилита командной строки для передачи данных на сервер и с сервера. Инструмент позволяет обмениваться данными с веб-сервером или сервером приложений и отправлять запросы методов непосредственно с терминала.

В этом руководстве объясняется, как отправить запрос curl DELETE через пример сервера REST API JSON.

  • Доступ к командной строке/терминалу с правами администратора. установлен и обновлен NPM.
  • Доступ к текстовому редактору.

Примечание. Чтобы установить NodeJS и NPM, следуйте нашим руководствам для ОС:

Синтаксис запроса DELETE Curl

Основной синтаксис для отправки метода запроса DELETE с использованием curl:

В качестве альтернативы используйте сокращенную версию:

Пример запроса DELETE Curl

Пример ниже демонстрирует, как работает запрос curl DELETE. В примере создается поддельный сервер REST API с использованием пакета сервера JSON.

Примечание. Нужен реальный и недорогой сервер для настройки тестовой среды? Ознакомьтесь с инстансами Bare Metal Cloud по цене от 0,10 долларов США в час.

Затем следуйте нашим инструкциям по настройке среды песочницы на BMC. Кроме того, узнайте, как создать балансировщик нагрузки и протестировать подключение с помощью curl.

<р>1. Откройте терминал (CTRL+ALT+T).

<р>2. Выполните следующую команду, чтобы установить библиотеку json-server с помощью диспетчера пакетов NPM:

<р>3. Откройте текстовый редактор и создайте файл database.json. Если вы используете nano, запустите:

<р>4. Добавьте следующие данные:

Этот файл представляет собой фиктивную базу данных людей с уникальными идентификаторами и именами.

<р>5. Сохраните файл и закройте текстовый редактор.

<р>6. Выполните следующую команду, чтобы запустить сервер:

Сервер запускается локально, отображая следующие две страницы:

<р>7. На новой вкладке терминала отправьте запрос DELETE с помощью curl :

Сеанс сервера в командной строке/терминале показывает запрос DELETE с ответом сервера 200 (успешно).

Попытка удалить несуществующие данные приводит к ответу сервера 404 (не найдено).

Выполнив шаги из этого руководства, вы поймете, как отправить запрос DELETE через командную строку с помощью команды curl.

Когда вы пользуетесь сайтами, приложениями и службами Google, часть ваших действий сохраняется в вашем аккаунте Google. Вы можете найти и удалить это действие в разделе "Мои действия", а также в любой момент можете прекратить сохранение большей части действий.

Удалить все действия

Удалить отдельные действия

Удалить активность по дате или продукту

Автоматическое удаление ваших действий

Вы можете автоматически удалить некоторые действия в своем аккаунте Google.

  1. На компьютере перейдите в свой аккаунт Google.
  2. Слева нажмите Данные и конфиденциальность.
  3. В разделе "Настройки истории" выберите действие или настройку истории, которую вы хотите удалить автоматически.
  4. Нажмите "Автоматическое удаление".
  5. Нажмите кнопку, указывающую, как долго вы хотите сохранять свои действия. ДалееПодтвердите, чтобы сохранить свой выбор.

Примечание. Срок действия некоторых действий может истечь раньше, чем вы выберете.

Удалить активность в других местах

Ваши действия могут быть сохранены в местах, отличных от "Мои действия". Например, если вы включили Историю местоположений, эта активность вместо этого сохраняется в вашей Хронике Карт. Вы можете удалить большую часть своих действий, сохраненных в этих местах.

Удалить другие действия, сохраненные в вашем аккаунте

Удалить активность в браузере

  • Узнайте, как удалить историю браузера и другие данные браузера из Chrome.
  • Если вы используете другой браузер, ознакомьтесь с его инструкциями по удалению этой информации.

Отключить сохранение действий

Вы можете контролировать большую часть информации, отображаемой в разделе "Мои действия".

  1. Перейдите в свой аккаунт Google.
  2. Слева нажмите Данные и конфиденциальность.
  3. В разделе "Настройки истории" выберите действие или историю, которые вы не хотите сохранять.
  4. Выключите параметр "История приложений и веб-поиска" на PauseGot it.

Временно прекратить сохранение активности

Примечание. Если вы входите в свою учетную запись Google в окне приватного просмотра, ваши поисковые действия могут сохраняться в этой учетной записи.

Исправить проблемы

Удаленные действия отображаются в разделе "Мои действия"

  • Убедитесь, что устройство подключено к Интернету. Если вы удалите элементы из раздела «Мои действия» на одном устройстве, они могут по-прежнему отображаться на любых устройствах, находящихся в автономном режиме. Когда устройство подключится к Интернету, элементы будут удалены. .

Как удаляются ваши действия

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

Во-первых, мы стремимся немедленно удалить его из поля зрения, и данные больше не могут использоваться для персонализации вашего взаимодействия с Google.

Затем мы начинаем процесс, предназначенный для безопасного и полного удаления данных из наших систем хранения.

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

Для ограниченных целей, например деловых или юридических требований, Google может хранить определенные типы данных в течение длительного периода времени.

В этой статье мы рассмотрим следующее:

  • Что такое запрос на удаление?
  • Каковы различные коды ответов для запроса на удаление?
  • Как сделать запрос на удаление, используя Rest Assured?

Что такое метод запроса на удаление?

  • Метод Delete запрашивает сервер удалить ресурс, указанный в URI запроса.
  • Удаление ресурса зависит от сервера и удаляется, если предписано удаление. Кроме того, реализация восстановления ресурса также значительна.
  • Есть запрос на удаление связи между ресурсом и соответствующими текущими функциями.
  • Это похоже на команду rm UNIX, где текущая ассоциация ресурса удаляется вместо предыдущих (если они были).
  • Метод запроса на удаление относится к категории идемпотентов документации W3C. Это означает, что после запроса на удаление ресурса повторный запрос того же ресурса даст тот же результат, что и ресурс, который уже был удален.
  • Ответ метода удаления не подлежит кэшированию. Пользователь не может кэшировать ответ сервера для последующего использования. Кэширование запроса на удаление приводит к несоответствиям.

Давайте теперь посмотрим код ответа запроса на удаление.

Каковы различные коды ответов для запроса на удаление?

При отправке запроса на удаление сервер отвечает некоторыми кодами ответа, которые обозначают действие, выполняемое методом удаления. Рассмотрим следующий код для того же-

Теперь, когда мы познакомились с основами метода Delete, мы увидим, как мы можем отправить запрос на удаление с помощью режима «Будьте уверены», но перед этим давайте рассмотрим простой запрос на удаление с использованием пользовательского интерфейса Swagger. URL-адрес для запроса:

По URL-адресу появится экран, как показано ниже:

Теперь вам нужно выбрать первый пункт "Удалить" в разделе BookStore на этой странице.

Примечание. Мы отключили идентификатор пользователя, чтобы предотвратить создание пустой базы данных. В практическом применении вам необходимо передать требуемые значения на сервер.

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

Во введении мы определили метод удаления как то, что может удалить ресурс. Напоминаем, что здесь вы можете связать "ресурс" с записью о питомце. Общий термин «ресурс» обозначает различные ресурсы в различных запросах. Теперь, когда мы увидели, как мы можем удалить ресурс вручную с помощью swagger, мы попробуем автоматизировать запрос на удаление с помощью Rest Assured.

Как сделать запрос на удаление, используя Rest Assured?

Теперь мы увидим, как мы можем удалить ресурс с сервера, используя resure sure. Для этого мы будем использовать API BookStore, которые мы использовали в наших предыдущих примерах. Мы будем автоматизировать следующий вариант использования:

  1. Получение списка книг, доступных для пользователя, с помощью Get User Data API.
  2. Удалите книгу, соответствующую определенному ISBN, и проверьте код ответа с помощью API удаления книги.
  3. Убедитесь, что выполнение API из шага 1 обновляет список книг и не отображает удаленную книгу.

Теперь давайте посмотрим код для приведенного выше варианта использования с использованием Rest Assured.

Обзор кода

Давайте рассмотрим приведенный выше код и посмотрим, чего мы пытались здесь добиться. Обратите внимание, что первый метод, то есть getUserData(), представляет собой простой метод GET, в котором мы пытаемся получить пользовательские данные, соответствующие userId. Вы можете обратиться к нашей статье Rest API с использованием Rest Assured, чтобы понять код, если вы еще не ознакомились с ним. Кроме того, вы заметите поле авторизации. Для этого конкретного руководства по методу запроса на удаление вам не нужно об этом беспокоиться. Однако, если вы хотите узнать об авторизации и OAuth 2.0, вы можете обратиться к другим нашим руководствам. В этом руководстве по методу удаления мы рассмотрим код, написанный для метода deleteBook() здесь.

Сначала мы настраиваем запрос с базовым URI. Затем мы добавляем заголовок (s), который также включает токен авторизации, используя интерфейс RequestSpecification.

Затем сохраните объект Response, используя объект RequestSpecification. Здесь мы передаем тело JSON нашего запроса вместе с URL-адресом конечной точки для метода Delete. Ответ сохраняется в переменной.

Наконец, мы просто печатаем код состояния ответа и используем TestNG Assert для его проверки.Поскольку в нашем случае ожидаемым кодом ответа является 204, наш тест будет использовать его в качестве ожидаемого параметра.

После выполнения кода вы увидите, что сначала выполняется метод getUserData, а затем метод deleteBook. И затем снова запускается метод getUserData. Это связано с тем, что мы использовали @BeforeTest и @AfterTest для метода getUserData. Консоль покажет вам результат, как показано ниже:

И вот! Вы успешно удалили запись из пользовательских данных с помощью API удаления. Теперь вы можете попробовать различные методы API, используя Rest Assured, и укрепить свои концепции. В следующем посте мы увидим, как Basic Auth справляется с Rest Assured.

Примечание. Видеоруководство по запросу на удаление доступно по адресу Запрос на удаление в Rest Assured

.

Читайте также: