WDS Как использовать переменные из другого сэмплера? - PullRequest
0 голосов
/ 30 августа 2018

У меня есть Sampler, где я переключаюсь на дочернее окно, но мне нужно сохранить дескриптор для главного окна, чтобы иметь возможность переключиться на него в другом примере: Просьба посмотреть скриншоты

Сэмплер с сохраненной ручкой для главного окна: enter image description here

Как я могу вызвать его в следующем сэмплере?

enter image description here

WDS.browser.switchTo (). DefaultContent () вызывает ошибку:

ERROR c.g.j.p.w.s.WebDriverSampler: no such window: window was already closed

Пример кода:

WDS.sampleResult.sampleStart()
var handles = WDS.browser.getWindowHandles()
var mainWindow = WDS.browser.getWindowHandle()
while (handles.size()!=2){
    handles = WDS.browser.getWindowHandles()
    WDS.log.info(handles.size())
}
var iterator = handles.iterator()
var counter = 1;
while (iterator.hasNext())
{
   var handle = iterator.next()
   WDS.browser.switchTo().window(handle)
   WDS.log.info('Window ' + counter + ' title = ' + WDS.browser.getTitle())
   counter++;

}
WDS.sampleResult.sampleEnd()

Образец кода B:

WDS.sampleResult.sampleStart()
var timeunit = java.util.concurrent.TimeUnit 
WDS.browser.manage().timeouts().pageLoadTimeout(30, timeunit.SECONDS)
var pkg = JavaImporter(org.openqa.selenium, org.openqa.selenium.support.ui)
var timeunit = java.util.concurrent.TimeUnit 
var wait = new pkg.WebDriverWait(WDS.browser, 3000)
var ssn = ("078-05-"+WDS.args[0])

//WDS.browser.switchTo().defaultContent()
WDS.browser.switchTo().window(variable mainWindow from SwitchToWorkFlowWindow sampler)

WDS.sampleResult.sampleEnd()

1 Ответ

0 голосов
/ 03 сентября 2018

Существует сокращение WDS.vars, которое в основном является экземпляром класса JMeterVariables , поэтому вы можете использовать его для передачи данных из одного сэмплера в другой, например:

  1. В первом сэмплере:

    var foo = 'bar'
    WDS.vars.put('foo', foo)
    
  2. Во втором сэмплере:

    var foo = WDS.vars.get('foo')
    WDS.log.info('Foo value is: ' + foo)
    

    JMeter WebDriver Pass Variables between requests

Дополнительную информацию о расширенном использовании сэмплера WebDriver можно найти в: Сэмплере WebDriver: ответы на ваши 10 вопросов руководство

...