Jmeter с Selenium запускает сценарий последовательно, а не параллельно

#selenium #jmeter #jmeter-5.0

#селен #jметр #jmeter-5.0

Вопрос:

У нас есть фреймворк Junit, в котором мы написали методы с использованием Java / Selenium (которые иногда мы также используем для регрессионного тестирования). Теми же методами мы сопоставляем его с файлом JMX, а затем запускаем Jmeter для проверки наших тестов производительности. все методы имеют аннотацию @Test для обнаружения Jmeter.

Я запускаю Jmeter через командную строку с помощью команды

 jmeter.bat -n -t c:devtest.jmx -Jusers = 3
 

Jmeter запускает 3 браузера, но работа с браузером произойдет только тогда, когда я переведу браузер в фокус, то есть имя пользователя будет введено в браузере 1, если оно в фокусе, аналогично в браузере 2, если оно в фокусе. Если не в фокусе, то этот метод не работает. Как я могу преодолеть эту проблему.

Заранее благодарю.

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

1. Пробовал с помощью JSexecutor, getwindow handle и т. Д., Но ни один из них не решил проблему

Ответ №1:

Для корректных тестов Selenium не должно требоваться, чтобы браузер был в фокусе, иначе выполнение тестов через Selenium Grid или в безголовом режиме будет невозможно.

Итак, я ожидаю, что проблема связана не с JMeter, а скорее с вашим кодом Selenium Java, который полагается на браузер, чтобы быть в фокусе, пожалуйста, просмотрите свой код и убедитесь, что вы используете только Selenium API (или Java API) для любых манипуляций с браузером, включая:

  • заполнение форм
  • загрузка файлов
  • загрузка файлов
  • и т.д.

Например, если вы используете какие-либо функции класса робота — эти классы подлежат рефакторингу.

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

1. Спасибо за быстрый ответ. Да, используя selenium api только для всех операций. Я не использую класс Robot и использовал концепцию threadlocal для экземпляров драйверов Chrome для нескольких пользователей.

Ответ №2:

Вышеупомянутая проблема была решена, как только мы начали запускать Chrome в безголовом режиме. Теперь он работает нормально.