variables - 如何在 JMeter 的 WebDriverSampler 的选择器中循环传递变量?
问题描述
我有一组需要在 JMeter 脚本中循环单击的时隙。
对于时隙 id=1 的第一个时隙,WebDriver Sampler 中的代码是:
// 选择时间段:
wait.until(pkg.ExpectedConditions.presenceOfElementLocated(pkg.By.xpath("//div[@id='timeslot1']")));
var Timeslot = WDS.browser.findElement(pkg.By.xpath("//div[@id='timeslot1']"));
时隙.click();
如何从一组变量而不是特定选择器(“//div[@id='timeslot1']”)中传递一个值?
一组变量如下所示:
//div[@id='timeslot1']
//div[@id='timeslot2']
//div[@id='timeslot3']
//div[@id='timeslot4']
//div[@id='timeslot5']
...
//div[@id='timeslotN']
N - 也是一个变量,应该用时隙执行多少次迭代。
使用传递变量而不是选择器循环执行许多请求的最佳方法是什么?
UPD。 我尝试了以下方法:
1)
wait.until(pkg.ExpectedConditions.presenceOfElementLocated(pkg.By.xpath(WDS.vars.get('//div[@id='timeslot'+N]'))));
var Underwriter_Timeslot = WDS.browser.findElement(pkg.By.xpath(WDS.vars.get('//div[@id='timeslot'+N]')));
(N - 来自 Loop 控制器的外部变量,N 从 1 到 10 顺序发送请求)。
但是,在那种情况下,我有一个错误,即 xpath 为空。
2)
var XPath_Timeslot_Number = WDS.vars.get('//div[@id='timeslot'' + WDS.vars.get('N')]); WDS.vars.put('XPath_Timeslot_Number', XPath_Timeslot_Number); WDS.log.info('XPath_Timeslot_Number 是:' + XPath_Timeslot_Number);
wait.until(pkg.ExpectedConditions.presenceOfElementLocated(pkg.By.xpath("WDS.vars.get('XPath_Timeslot_Number')"))); var Timeslot = WDS.browser.findElement(pkg.By.xpath("WDS.vars.get('XPath_Timeslot_Number')")); 时隙.click();
任何见解,在 xpath 中获取此顺序生成时隙编号的正确选项是什么?
解决方案
从WebDriver Sampler获取JMeter 变量值的简写是:
var myVar = WDS.vars.get('myVar')
其中WDS.vars
代表JMeterVariables类实例,请参阅所有可能函数的文档
因此,您可以执行以下操作:
var i = 0
var n = parseInt(WDS.vars.get('N'))
for (i = 0; i < n; i++) {
WDS.browser.findElement(pkg.By.xpath(WDS.vars.get('some_prefix' + n));
}
推荐阅读
- html - 如何定位元素的左侧、中心和右侧?
- python - Python 3.9 - 使用不同参数调度异步函数的定期调用
- django - Django-filters:显示用于过滤 TextField 的选项列表
- ffmpeg - Computing VMAF Utilizing FFmpeg, Error: Filter libvmaf has an unconnected output
- node.js - 在 WHERE IN 子句中被视为字符串的 NodeJS PostgresSQL 数字数组
- angular - render2依赖注入错误的原因是什么?
- python-3.x - 在 Windows 上运行 rubert 训练时出错
- c++ - 如何创建可以接受 Unix 和 Windows 标头的 C++ API?
- linux - 这两个 vscode 快捷方式的 VIM 等效项是什么?
- python-3.x - 静态变量 Python 的应用