WDS如何使用其他采样器的变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WDS如何使用其他采样器的变量?相关的知识,希望对你有一定的参考价值。

我有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

示例A代码:

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()
答案

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

您可以在:The WebDriver Sampler: Your Top 10 Questions Answered指南中找到有关WebDriver采样器高级用法的更多信息

以上是关于WDS如何使用其他采样器的变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改片段中的主要活动变量

用于片段着色器的 OpenGL GLSL 绑定采样器

如何使用Android片段管理器传递变量[重复]

jmeter var.putobject 变量在其他 jdbc 请求中使用,但被忽略

测试片段不执行定时器或示例超时

OpenGL均匀采样器2D具有相同的图像