【发布时间】:2011-09-23 07:27:49
【问题描述】:
我目前正在与 JMeter 合作,以便在发布之前对我们的其中一个系统进行压力测试。通过这个,我需要模拟用户点击呈现给他们的网页上的链接。我决定使用 XPath 后处理器提取这些链接。
这是我的问题:
我有一个看起来像这样的 XPath 表达式:
//div[@data-attrib="foo"]//a//@href
但是我需要为每个线程(用户)提取一个特定的子节点。我想做这样的事情:
//div[@data-attrib="foo"]//a[position()=n]//@href
(n 为当前索引)
我的问题:
有没有办法使这个查询工作,以便我能够为每个线程提取表达式的新索引?
另外,正如我所提到的,我正在使用 JMeter。 JMeter 为 XPath 查询的每个结果节点创建一个变量。但是,它将它们命名为“VarName_n”,并且不将它们存储为传统数组。如果可能的话,有谁知道我如何动态选择这些变量之一?这也可以解决我的问题。
提前致谢:)
编辑:
显然不支持嵌套变量,因此为了动态引用名为“VarName_1”、VarName_2 等的变量,可以使用:
${__BeanShell(vars.get("VarName_${n}"))}
其中“n”是一个整数。因此,如果 n == 1,这将获得名为“VarName_1”的变量的值。
如果“n”整数在单个线程期间发生变化,则 ForEach 控制器专门为此目的而设计。
【问题讨论】: