jMeter - интеграция Selenium - PullRequest
       6

jMeter - интеграция Selenium

0 голосов
/ 31 декабря 2018

У меня уже написан тестовый пример jMeter, есть запросы на вход в систему и некоторые запросы POST к моей таблице.Теперь я хочу измерить время рендеринга страницы (отклик постов).Я хочу использовать Selenium, поэтому я читаю: Запуск сценариев Selenium с JMeter

Проблема в том, что я хочу, чтобы Selenium использовал тот же сеанс (другими словами: чтобы уже войти в систему) каквход в систему уже был обработан jMeter.Как я могу заархивировать это?

Мой TestPlan:

enter image description here

[ОБНОВЛЕНИЕ] @Dmitri T

Спасибо заответ!Я сделал то, что вы предложили, но это все еще не работает.Возможно, я делаю что-то не так, но все же сразу после того, как Selenium открывает браузер, он переходит на страницу входа.Я поместил JSR223 PostProcessor под запросом LOGIN POST, и это мой пробоотборник WebDriver:

var pkg = JavaImporter(org.openqa.selenium);
var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait);
var wait = new support_ui.WebDriverWait(WDS.browser, 5000);

WDS.sampleResult.sampleStart(); 
WDS.sampleResult.getLatency();
WDS.log.info("Sample started");

WDS.browser.get(WDS.parameters);
WDS.log.info("LOGGING INTO: " + (WDS.parameters))

var cookieManager = WDS.vars.getObject('cookieManager')

for (var i=0; i < cookieManager.getCookieCount(); i++) {
    var jmeterCookie = cookieManager.getCookies().get(i)
    var seleniumCookie =  new org.openqa.selenium.Cookie(jmeterCookie.name, jmeterCookie.value, jmeterCookie.domain, jmeterCookie.path, java.util.Date.from(java.   time.Instant.ofEpochMilli(jmeterCookie.expiresMillis)), jmeterCookie.secure)
    WDS.browser.manage().addCookie(seleniumCookie)
}

java.lang.Thread.sleep(5000)

WDS.sampleResult.sampleEnd();

enter image description here

{UPDATE 2}

Хорошо, я думаю, что что-то не так с Cookies во всей группе тем.У меня нет [куки-файлов] по каждому запросу:

enter image description here

1 Ответ

0 голосов
/ 31 декабря 2018

Чтобы пройти «сессию», вам необходимо скопировать все куки из HTTP Cookie Manager JMeter в сеанс Selenium.

Это можно сделать в WebDriver Sampler напрямую следующим образом:

  1. Добавить JSR223 PostProcessor как дочерний элемент запроса, в который сеанс вы хотите скопировать
  2. Поместите следующий код в область «Сценарий»

    vars.putObject('cookieManager', sampler.getCookieManager())
    

    он сохранит текущее состояние диспетчера cookie HTTP в Переменные JMeter

  3. В сэмплере WebDriver вы можете скопировать куки из HTTP Cookie Manager и добавить их в экземпляр WebDriver, используя WDS.browser.manage (). AddCookie () , как показано ниже:

    var cookieManager = WDS.vars.getObject('cookieManager')
    
    for (var i=0; i < cookieManager.getCookieCount(); i++) {
        var jmeterCookie = cookieManager.getCookies().get(i)
        var seleniumCookie =  new org.openqa.selenium.Cookie(jmeterCookie.name, jmeterCookie.value, jmeterCookie.domain, jmeterCookie.path, java.util.Date.from(java.time.Instant.ofEpochMilli(jmeterCookie.expiresMillis)), jmeterCookie.secure)
        WDS.browser.manage().addCookie(seleniumCookie)
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...