Search code examples
xpathjmeterbeanshell

Jmeter while controller doesn't seem to evaluate variables as numbers


I am writing a jmeter script that keeps loading data until a table reaches a specified size. I have a while loop, in which I have one HTTP Sampler to loads the data, then another HTTP Sampler with an XPath Post-processor to check the table size (they call two different APIs). The reference variable of the XPath Post Processor is currentSize and I have a user defined variable maxSize, but using ${currentSize} < ${maxSize} as the condition for the while loop creates an infinite loop.

Thinking maybe the problem is that the output of XPath is a string, I've tried doing various things in beanshell to coerce it to a number, but I'm a beanshell noob, so I haven't been successful with that either. Can anyone guide me about how to get jmeter to recognize a variable as a number? (Preferably a decimal, but if I have to round to an int, I can live with that.)

Thanks!


Solution

  • I think using __javascript(parseInt()) should suffice for you to check the condition.

    e.g.

    ${__javaScript(parseInt(${time_elapsed_string}) < parseInt(${duration}))}