Может ли JMeter проводить автоматизированное тестирование, как Selenium? - PullRequest
0 голосов
/ 01 октября 2019

Я все еще новичок в JMeter, и мне поручили работу, которая мне понадобится, чтобы использовать JMeter для выполнения автоматического тестирования. Идея состоит в том, чтобы написать скрипт с использованием JMeter и запустить скрипт для заполнения форм на сайте. Мне было любопытно, может ли JMeter использовать разные данные из базы данных для заполнения формы веб-сайта при каждом его запуске? (Уникальные данные для каждого пользователя)

Я следовал этому руководству (https://www.blazemeter.com/blog/fill-forms-and-submit-with-jmeter-made-easy/)и это успешно, однако, когда я пытаюсь изменить имя параметра (на некоторые другие имена, которые не соответствуют имени поля, найденному в режиме inpect), это все еще работает. Так что мне было интересно, как JMeter знает, куда вставить параметр, даже если у меня есть неправильное имя поля?

Ответы [ 4 ]

1 голос
/ 01 октября 2019

Согласно JMeter Project главная страница:

JMeter не является браузером, он работает на уровне протокола. Что касается веб-сервисов и удаленных сервисов, JMeter выглядит как браузер (точнее, несколько браузеров);однако JMeter не выполняет все действия, поддерживаемые браузерами. В частности, JMeter не выполняет Javascript, найденный на страницах HTML. Он также не отображает HTML-страницы так, как это делает браузер (можно просмотреть ответ в виде HTML и т. Д., Но время не включено ни в какие примеры, и одновременно отображается только один образец в одном потоке).

Браузеры не делают никакой магии, они выполняют HTTP-запросов , ждут ответа и отображают его. JMeter, в свою очередь, может выполнять те же HTTP-запросы, поэтому трафик будет одинаковым, однако он не будет обрабатывать ответ, а скорее измерить время и собрать еще несколько метрик.

Если вы измените имена входов в форме , скорее всего, запрос будет успешным, то есть вы получите HTTP Status Code ниже 400, следовательно, JMeter будетпометьте результат как «зеленый», однако, если вы проверите ответ, используя View Results Tree listener, вы увидите, что форма не заполнена и / или вы все еще на той же странице.

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

0 голосов
/ 01 октября 2019

Это зависит от того, что вы пытаетесь автоматизировать. Если вы планируете автоматизировать вызов API, когда существуют некоторые предварительные условия, такие как получение токенов, куки, идентификаторы сеансов из браузера, то JMeter, вероятно, можно использовать там, где можно использовать существующие возможности JMeter с использованием сценариев BeanShell и другихplugins.

Но если вы планируете использовать полноценную инфраструктуру автоматизации пользовательского интерфейса, JMeter может оказаться не идеальным выбором.

0 голосов
/ 01 октября 2019

Вы можете использовать сэмплер веб-драйвера для запуска селена с помощью метра jmeter. Требуется настроить сэмплер и конфигурацию браузера, которые являются плагином и могут быть загружены с помощью менеджера плагинов.

Для получения дополнительной информации: - https://www.blazemeter.com/blog/jmeter-webdriver-sampler/

Теперь без плагина он работает на уровне протоколаи не на фронтенде, как указано в комментариях выше. Так что, да, это может зависеть от того, на каком слое вы хотите работать. Он может работать во внешнем интерфейсе, как селен, с помощью плагина webdriver и может отправлять форму с различными данными в виде прямого запроса на сервер без использования внешнего интерфейса / GUI.

Надеюсь, это поможет.

0 голосов
/ 01 октября 2019

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

Если вы хотите провести обширное автоматизированное тестирование, JMeter не является идеальным инструментом для этого.

...