2
// 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 中做同样的事情呢?

4

4 回答 4

4

您可以从 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 采样器:您回答的 10 大问题指南。

于 2015-04-07T11:00:13.350 回答
1

它不起作用,因为 WebDriver Sampler 中没有定义“vars”,例如 BeanShell Sampler。

于 2014-03-04T09:56:36.537 回答
1

我相信你需要先将它转换为字符串,根据使用 Selenium 和 JMeter 的 WebDriver 采样器指南JMeter 变量基本上是字符串,你不能把布尔值放在那里。

只需更换

vars.put("reserveASpotButtonIsEnabled", reserveASpotButton.isEnabled());

vars.put("reserveASpotButtonIsEnabled", reserveASpotButton.isEnabled().toString());

它应该工作。

于 2013-11-09T16:36:25.957 回答
0

没有一种干净的方法可以做到这一点,但这是可能的。您可以在 WebDriver 采样器中设置响应标头:

WDS.sampleResult.setResponseHeaders(reserveASpotButton.isEnabled())

然后,您可以使用正则表达式提取器从响应标头中提取数据。

于 2015-03-26T18:27:55.177 回答