Конфигурация веб-драйвера селена с помощью xorg-x11-server-Xvfb

Мы разработали скрипт веб-драйвера selenium с junit + java, используя eclipse в окне 7. Все скрипты работают, как и ожидалось, теперь мы используем этот скрипт для нагрузочного тестирования с использованием Jmeter. Тем не менее, во время работы системы сценариев откройте несколько браузеров (200) на основе пользовательского потока, и это приведет к зависанию системы, есть ли способ справиться с этим или мы можем запустить сценарий, не открывая браузер. Я столкнулся с инструментом xvfb, но не смог подключить java API для этого инструмента к плагину в eclipse.

Мы также пытались использовать HtmlUnitDriver, но, поскольку он не поддерживает javascript, поэтому тест не проходит, мы также пробовали HtmlUnit и обнаружили то же самое.

Примечание: мы написали скрипт веб-драйвера для поддержки отображения элемента (автозаполнение, изображение) на экране.

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


person Karim Narsindani    schedule 12.03.2014    source источник


Ответы (1)


Во-первых, не интегрируйте selenium-скрипты с JMeter для нагрузочного тестирования! Это не лучший подход из-за очевидных последствий, о которых вы упомянули в своем посте. Я следовал аналогичному подходу в начале, когда я был новичком в JMeter и селене, но сильно пострадал, когда дело дошло до запуска нагрузочных тестов, которые порождали слишком много экземпляров браузера, которые убивали ОС.

Вы можете выбрать HtmlUnitDriver или любые безголовые инструменты тестирования браузера с JMeter, но, тем не менее, они будут запускать браузер внутри памяти. Более того, если ваше приложение интенсивно использует Javascript, это не поможет.

Поэтому я бы посоветовал вам записать сеанс просмотра с помощью JMeter Proxy и изменить сценарий (набор запросов) в соответствии с вашими потребностями и воспроизвести их. только запросы с количеством потоков.

На более высоком уровне вы должны делать следующее:

  1. Добавьте план тестирования JMeter, прослушиватели, группу потоков и настройте прокси-сервер JMeter и запишите сеанс просмотра, когда вы вводите что-то в текстовое поле автозаполнения и получаете определенные результаты.
  2. Остановите свой прокси и просмотрите все запросы, поступающие в вашу группу потоков.

  3. #P3# <блочная цитата> #P4# #P5#
  4. Таким образом, в вашем плане тестирования вы будете передавать одно слово на каждый поток Jmeter. Вы можете передать слова в запрос из CSV-файла, используя параметризацию jmeter.

Это будет гораздо более эффективный способ нагрузочного тестирования вместо использования селена с JMeter. Я задал аналогичный вопрос. Вы можете ознакомиться с ответами.

person Abhijeet Vaikar    schedule 12.03.2014
comment
Я согласен с вами, однако даже я пытался использовать jmeter для нагрузочного тестирования, но мы должны выбрать опцию из раскрывающегося списка автозаполнения, и это создает проблемы при запуске скрипта jmeter. Я пробовал и искал в сети, но не нашел решения, поэтому я получаю селен. Кроме того, я новичок в jmeter, не знаю, как использовать его регулярное выражение или установить параметр для публикации данных. У вас есть ссылка, по которой я могу получить дополнительную информацию об использовании jmeter с примером, или у вас есть пример сценария jmeter для выбора опции из раскрывающегося списка автоматического завершения. - person Karim Narsindani; 12.03.2014
comment
Действие по нажатию опции в раскрывающемся списке автозаполнения включает запрос сервера, верно? - person Abhijeet Vaikar; 12.03.2014
comment
Да, это так... В нашем приложении мы выбираем опцию из раскрывающегося списка автозаполнения, а затем система загружает другие элементы на странице. Я попытался отправить значение в параметре, например «elementid» с веб-страницы, и установить его в jmeter со значением, но это не сработало... - person Karim Narsindani; 12.03.2014
comment
Если мой ответ поможет, подумайте о том, чтобы проголосовать за него или принять его. - person Abhijeet Vaikar; 12.03.2014
comment
Что ж, я попробовал детали, предоставленные вами, однако это немного помогло мне двигаться вперед. Проблема, с которой я столкнулся в jmeter, заключается в том, что после выбора опции из автозаполнения он создает динамический номер заказа, скажем, «123456», этот номер шифруется, скажем, «rtDRc48D», и добавляется к URL-адресу. Теперь сценарий, который я записал, имеет зашифрованное значение на основе числа во время записи сценария, и теперь, когда я запускаю этот перекодированный сценарий, он не получает новое зашифрованное значение и продолжает работать в том же порядке, что и пользователь. Есть ли способ получить это зашифрованное значение в сценарии jmeter? - person Karim Narsindani; 12.03.2014