Можно ли выполнить тест производительности в Karate для автоматизации WebUI?

#karate

#karate

Вопрос:

Я разрабатываю тесты автоматизации WebUI с использованием Karate 0.9.5.RC5, и он работает великолепно. Кто-нибудь знает, как выполнить тестирование производительности в Karate для тестов автоматизации WebUI?

Ответ №1:

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

Вы должны знать об интеграции Gatling для тестирования производительности API. Итак, у нас есть несколько кусочков головоломки.

Так что, возможно, лучше всего использовать гибридную стратегию:

  • определите вызовы API, выполняемые пользовательским интерфейсом, в будущем мы хотели бы автоматически получать их из Chrome network / devtools
  • вручную преобразуйте вызовы API в тесты Karate, обратите внимание, что плагин VS Code имеет возможность импорта из cURL
  • теперь вы можете преобразовать тесты Karate в тест производительности, и для большинства команд этого достаточно
  • при необходимости вы можете добавить несколько вызовов Karate для загрузки HTML и статических ресурсов, чтобы сделать профиль загрузки более реалистичным
  • наконец, может быть возможно запустить тест пользовательского интерфейса Karate параллельно, просто для измерения «реального пользовательского» опыта и измерения времени загрузки HTML / JS и т. Д. На стороне браузера. у нас пока этого нет, но должна быть возможность получить все тайминги страниц и статистику производительности из Chrome
  • потенциально вы могли бы рассмотреть возможность параллельного запуска нескольких экземпляров Chrome с помощью Docker — но опять же, это еще предстоит изучить

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

1. Мой ответ был удален, поэтому добавлен в качестве комментария. @peter-thomas Я разработал POC для тестирования производительности WebUI с использованием пользовательских событий gatling и также работает с экземплярами chrome и Zalenium без головы. * Пожалуйста, просмотрите примеры результатов Gatling * Не могли бы вы, пожалуйста, просмотреть код и предложить лучший подход к реализации PerfManager.java ?

2. @PrashantPatil не уверен, что это дает вам ожидаемые результаты. какова цель теста. для генерации нагрузки? или измерить время загрузки каждой страницы? ваш тест будет включать время, необходимое для правильного запуска Chrome. существует простое решение вашего вопроса perfmanager. просто сделайте это синглтоном java. имеет ли это смысл?

3. @PrashantPatil как вам удастся запустить несколько пользователей, потому что, если один пользователь завершит свой путь, он закроет экземпляр браузера.

4. @Ninja Я использую Zalenium Grid для запуска нескольких пользователей, и каждый сценарий будет иметь свой собственный экземпляр браузера (узел), поэтому они независимы.