Проблема времени ожидания в сэмплере JMeter Webdriver - PullRequest
0 голосов
/ 28 декабря 2018

Я использую сэмплер JMeter Webdriver для измерения времени отклика пользовательского интерфейса приложения.Я столкнулся с проблемой с функцией ожидания.Например, страница входа загружается от 10 до 120 секунд.Поэтому у меня есть следующий код для страницы входа в сэмплер Webdriver для проверки загрузки страницы.

var ui=JavaImporter(org.openqa.selenium.support.ui) 
var wait=new support_ui.WebDriverWait(WDS.browser,120)
wait.until(ui.ExpectedConditions.visibilityOfElementLocated(pkg.By.className('logout-btn-hover')))

Проблема заключается в том, что даже после полной загрузки страницы JMeter все еще ожидает выполнения следующего действия.Это время ожидания уменьшится, если я уменьшу 120 секунд. Но иногда приложению также требуется 120 секунд для загрузки, поэтому мне нужно сохранять 120 секунд.

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

1 Ответ

0 голосов
/ 28 декабря 2018
  1. В вашем скрипте есть как минимум 2 ошибки, он должен выглядеть примерно так:

    var ui=JavaImporter(org.openqa.selenium.support.ui) 
    var wait=new ui.WebDriverWait(WDS.browser,120)
    wait.until(ui.ExpectedConditions.visibilityOfElementLocated(org.openqa.selenium.By.className('logout-btn-hover')))
    
  2. Check jmeter.log file для любых подозрительных записей, в частности для чего-то вроде:

    ERROR c.g.j.p.w.s.WebDriverSampler: Expected condition failed: waiting for visibility of element located by By.className: logout-btn-hover (tried for 120 second(s) with 500 milliseconds interval)
    
  3. Дважды проверьте ваш селектор CSS
  4. Рассмотрите возможность рефакторинга вашего кода для поиска кнопки выхода из системы (?) В цикле с подробным ведением журнала для каждого шага.Пример кода:

    var pkg = JavaImporter(org.openqa.selenium)
    
    WDS.sampleResult.sampleStart()
    WDS.browser.get('http://example.com')
    var start = new Date().getTime()
    var attempt = 1
    while (new Date().getTime() - start < 5000) {
        try {
            var logout = WDS.browser.findElement(pkg.By.className('logout-btn-hover'))
            WDS.log.info('Element found')
            break
        }
        catch (err) {
            WDS.log.info('Attempt # ' + attempt + ', Element not found')
            java.lang.Thread.sleep(1000)
            attempt++
        }
    }
    WDS.sampleResult.sampleEnd()
    
    • Пример вывода, когда элемент не найден:

      enter image description here

    • Пример вывода при обнаружении элемента:

      enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...