如何在WebDriver Sampler中设置JMeter Vars?


问题内容
// I had previously used a CSS/JQuery extractor to get a URL from a page and add it to JMeter vars - accessing it here
var pageURL = "${valueFromJmeterVars}";

// navigate to that url
WDS.browser.get(pageURL);

// selecting an element
var button = wait.until(pkg.ExpectedConditions.visibilityOfElementLocated(pkg.By.cssSelector(buttonLocator)));

// log desired boolean value to console, so I can confirm is as expected
WDS.log.info('reserveASpotButton:' + reserveASpotButton.isEnabled());

// add my boolean to JMeter vars, so I can access later from beanshell post-processor (where I do my assertions)
vars.put("reserveASpotButtonIsEnabled", reserveASpotButton.isEnabled());

上面的最后一行无效。

我可以成功使用CSS / JQuery Extractor将值添加到JMeter vars …

但是,如何在WebDriver Sampler中执行相同的操作?


问题答案:

您可以从WebDriver Sampler中访问JMeter API类,它已实现为JSR
223标准
,例如,您可以引用JMeter变量(也vars称为如下)

在WebDriver采样器中:

var ctx = org.apache.jmeter.threads.JMeterContextService.getContext()
var vars = ctx.getVariables();

vars.put('foo','bar')

现在,您具有${foo}的值为bar

有关更多WDS采样器的技巧和窍门,请参阅
WebDriver采样器:您的十大问题已回答》
指南。