#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 в безголовом режиме. Теперь он работает нормально.