开发者

XPath Query in JMeter

开发者 https://www.devze.com 2023-04-07 13:45 出处:网络
I\'m currently working with JMeter in order to stress test one of our systems before release. Through this, I need to simulate users clicking links on the webpage presented to them. I\'ve decided to e

I'm currently working with JMeter in order to stress test one of our systems before release. Through this, I need to simulate users clicking links on the webpage presented to them. I've decided to extract theese links with an XPath Post-Processor.

Here's my problem:

I have an a XPath expression that looks something like this:

//di开发者_StackOverflowv[@data-attrib="foo"]//a//@href

However I need to extract a specific child for each thread (user). I want to do something like this:

//div[@data-attrib="foo"]//a[position()=n]//@href

(n being the current index)

My question:

Is there a way to make this query work, so that I'm able to extract a new index of the expression for each thread?

Also, as I mentioned, I'm using JMeter. JMeter creates a variable for each of the resulting nodes, of an XPath query. However it names them as "VarName_n", and doesn't store them as a traditional array. Does anyone know how I can dynamicaly pick one of theese variables, if possible? This would also solve my problem.

Thanks in advance :)

EDIT:

Nested variables are apparently not supported, so in order to dynamically refer to variables that are named "VarName_1", VarName_2" and so forth, this can be used:

${__BeanShell(vars.get("VarName_${n}"))}

Where "n" is an integer. So if n == 1, this will get the value of the variable named "VarName_1".

If the "n" integer changes during a single thread, the ForEach controller is designed specifically for this purpose.


For the first question -- use:

(//div[@data-attrib="foo"]//a)[position()=$n]/@href 

where $n must be substituted with a specific integer.

Here we also assume that //div[@data-attrib="foo"] selects a single div element.

Do note that the XPath pseudo-operator // typically result in very slow evaluation (a complete sub-tree is searched) and also in other confusing problems ( this is why the brackets are needed in the above expression).

It is recommended to avoid using // whenever the structure of the document is known and a complete, concrete path can be specified.

As for the second question, it is not clear. Please, provide an example.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号