Jmeter WebDriverSampler не работает с Chromedriver без головы - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть несколько тестов с WebDriverSampler в Jmeter, которые корректно работают с chromedriver.Это сценарий селена, который открывает веб-страницу и проверяет, содержит ли она ряд элементов.Все работает правильно, пока я не попробовал использовать опцию безголового драйвера.

В этом случае я получаю исключение «Ожидаемое условие не выполнено: ожидание присутствия элемента, расположенного: By.xpath: ...», как будтоэтот элемент еще не существует для загрузки.Я не знаю, что может произойти, потому что, если я перестану использовать опцию без заголовка, если все будет работать правильно и найду элемент, который действительно существует.

Это пример используемого кода (он работает без опции без головы):

var wait = new support_ui.WebDriverWait(WDS.browser, 30);
var conditions = org.openqa.selenium.support.ui.ExpectedConditions

WDS.sampleResult.sampleStart();
WDS.sampleResult.getLatency();

WDS.browser.get('http://mi-app/');

try{
  wait.until(conditions.presenceOfElementLocated(pkg.By.xpath('/ruta_de elemento_existente')));
  WDS.log.info('OK')
}catch(e){
    WDS.sampleResult.setSuccessful(false);
    WDS.sampleResult.setResponseMessage('Fail');
    WDS.log.error(e.message)
}

try{
  wait.until(conditions.presenceOfElementLocated(pkg.By.xpath('/ruta_de elemento2_existente')));
  WDS.log.info('OK2')
}catch(e){
    WDS.sampleResult.setSuccessful(false);
    WDS.sampleResult.setResponseMessage('Fail2');
    WDS.log.error(e.message)
}

WDS.sampleResult.sampleEnd();

Я надеюсь, что кто-то может помочь мне с этой проблемой, потому что мне нужно использовать опцию безголового.Большое спасибо за ваше время.

1 Ответ

0 голосов
/ 27 февраля 2019
  1. Вы можете напечатать источник страницы в jmeter.log файл , используя следующую функцию:

    WDS.log.info(WDS.browser.getPageSource())
    
  2. Или даже сохраните его в отдельный файл, например:

    org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File('test.html'), WDS.browser.getPageSource())
    
  3. Или сделайте снимок экрана при сбое, например:

    WDS.browser.getScreenshotAs(org.openqa.selenium.OutputType.FILE).renameTo(new java.io.File('test.png'))
    

    Ознакомьтесь с пробоотборником WebDriver: ваши 10 самых популярных вопросов статья для получения дополнительной информации.


Также имейте в виду, что если на компьютере, на котором вы выполняете тесты Selenium, нет графического интерфейса, вы все равно можете нормально запускать браузеры, используя, например, Xvfb в Linuxили под Локальная система учетная запись в Windows

...