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()); 

Последняя строка выше не работает.Как установить JMeter Vars из WebDriver Sampler?

Я могу успешно использовать CSS/JQuery экстрактор для добавления значений в JMeter вары ...

Но как я могу сделать то же самое внутри WebDriver Sampler?

ответ

3

Вы можете получить доступ к классам JMeter API внутри WebDriver Sampler, он реализован как JSR 223 standard, например, вы можете обратиться JMeter переменных (ака vars следующим образом)

В WebDriver Sampler:

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

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

сейчас у вас есть ${foo} переменная со значением bar

См. The WebDriver Sampler: Your Top 10 Questions Answered руководство для получения дополнительных советов и трюков для отбора проб WDS.

+0

Отлично, спасибо! – postalservice14

1

Я считаю, что вам нужно перенести его на String сначала, как Using Selenium with JMeter's WebDriver Sampler guide JMeter Переменные - это в основном строки, и вы не можете поместить туда boolean.

просто заменить

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

с

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

И он должен работать.

1

Это не сработает, потому что «vars» не определен в WebDriver Sampler, например, в BeanShell Sampler.

0

Существует нет чистого способа сделать это, но это возможно. Вы можете установить заголовки ответа в вашем WebDriver пробоотборника:

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

Затем вы можете использовать regular expression extractor для извлечения данных из заголовков ответа.

Смежные вопросы