Selenium jMeter-硒集成

Selenium jMeter-硒集成,selenium,jmeter,integration,Selenium,Jmeter,Integration,我已经编写了jMeter测试用例,它有登录请求和对我的表的一些POST请求。 现在我想测量页面的呈现时间(帖子的响应)。 我想使用Selenium,所以我读到: 问题是,我希望Selenium使用与jMeter已经处理的登录相同的会话(换句话说:已经登录)。 我怎样才能存档 我的测试计划: [更新] @德米特里T 谢谢你的回答!我照你的建议做了,但还是不行。也许我做错了什么,但在Selenium打开浏览器后,它仍然会进入登录页面。我将JSR223后处理器置于登录POST请求下,这是我的Web

我已经编写了jMeter测试用例,它有登录请求和对我的表的一些POST请求。 现在我想测量页面的呈现时间(帖子的响应)。 我想使用Selenium,所以我读到:

问题是,我希望Selenium使用与jMeter已经处理的登录相同的会话(换句话说:已经登录)。 我怎样才能存档

我的测试计划:

[更新] @德米特里T

谢谢你的回答!我照你的建议做了,但还是不行。也许我做错了什么,但在Selenium打开浏览器后,它仍然会进入登录页面。我将JSR223后处理器置于登录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();
var pkg=JavaImporter(org.openqa.selenium);
var support_ui=JavaImporter(org.openqa.selenium.support.ui.WebDriverWait);
var wait=新支持\ ui.WebDriverWait(WDS.browser,5000);
WDS.sampleResult.sampleStart();
WDS.sampleResult.getLatency();
WDS.log.info(“示例已启动”);
WDS.browser.get(WDS.parameters);
WDS.log.info(“登录:”+(WDS.parameters))
var cookieManager=WDS.vars.getObject('cookieManager'))
for(var i=0;i

{更新2}

好的,我认为所有线程组中的cookie都有问题。 我对每个请求[没有cookies]:

为了通过“会话”,您需要将JMeter的所有cookie复制到Selenium会话中

这可以在WebDriver采样器中直接完成,如下所示:

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)
}
  • 添加为要复制的会话请求的子级
  • 将以下代码放入“脚本”区域

    它将HTTP Cookie管理器的当前状态存储到

  • 在WebDriver采样器中,您可以从HTTP Cookie管理器复制Cookie,并使用以下函数将其添加到WebDriver实例:

    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)
    }
    
    var-cookieManager=WDS.vars.getObject('cookieManager'))
    for(var i=0;i