Become a JMeter and Continuous Testing Pro

Start Learning

Test Your Website Performance NOW! |

arrowPlease enter a URL with http(s)

JMeter: Using Functions

Further fanciful functionality of JMeter is using functions.  (Say that 5 times fast).

So, what are functions in JMeter?


According to the user manual, JMeter functions are special values that can populate fields of any Sampler or other element in a test tree.  It is very useful tool to make your test plan flexible and maintainable.

Generally, function calls looks like this: ${__functionName(var1,var2,var3)}, where “__functionName” matches the name of function. Parentheses () surround the parameters sent to the function, e.g. ${__time(YMD)}.

The actual parameters vary from function to function. Functions that require no parameters can leave off the parentheses, e.g. ${__threadNum}. Some of the most useful functions in JMeter are: __log(), __BeanShell(), __RandomString().

It is important to note that these functions are case sensitive.

1.__log ()

Create short test-plan as displayed.

JMeter Functions: create a short test plan
In the HTTP Request set “Server name or IP” and “Path”=/changes.html. Run this test plan to confirm that it is working. Now, log part of the URL. In this scenario, use __log() function. Rewrite the “Path” to the following variant - per the screenshot below.  

JMeter Functions: log function
Activate the “Log Viewer” to view results.  

JMeter Functions: Activate log viewer

Execute the test plan again and view the logs.

JMeter Functions: Execute test plan and view logs

Note that “/changes.html” was logged by JMeter and “/changes.html” was logged three times, twice before the ThreadGroup started and the third time – during the execution of the HTTP Request. In addition to the aforementioned functions, __log() has other parameters: log level and string message that can be thrown into the logs. The full syntax is  _log(var1,var2, var3), where:

  • var1 – String to be logged(and returned)
  • var2 – Log level(default INFO) or OUT or ERR
  • var3 – Throwable text(optional)

2.__BeanShell ()

The second interesting function that deserves attention is _BeanShell(). Full syntax is-BeanShell(var1,var2), where:

  • var1 - Expression to evaluate,
  • var2 – Name of variable in which to store the result (optional)

We will use the original example again, but it will be modified for use with _BeanShell(). Bean Shell – is scripting language with Java syntax. It supports objects and the majority of  in use Java features. But unlike Java, it doesn’t need compiling before running, it is executed line by line. And this is widely used in JMeter while solving non-trivial issues. 

For this purpose, a complex URL was used,
Insert to “Server name or IP”. Then add it to the “Path” field.

JMeter Functions: Server name or IP
The only issue with __BeanShell() is that the script concatenates two parts of the URL. After starting test, the following response will be visible in View Results Tree.

JMeter Functions: view results tree
3._RandomString ()

Another useful function is __RandomString(). It can be used to test, for instance, the login form of web-sites with large amounts of invalid users. The HTTP Request below is modified. It it irrelevant that this particular request is invalid. The idea is simply to monitor a scenario to note how __RandomString() works.

JMeter Functions: how randomstring works
Two parameters have been added to the POST request body; user and password.  Both parameters will be generated by __RandomString() with the following syntax:

  1. __RandomString(var1,var2,var3),where:
  • var1 - Random string length
  • var2 - Chars to use for random string generation
  • var3 - Name of variable in which to store the result (optional)

Results post test run? See below (Figure 8).

JMeter Functions: Run randomstring
As expected, the HTTP Request was invalid and therefore it failed. But note that the POST data contains the parameters that were generated by __RandomString ().

4. Functions Helper

Our fourth and final items of the days is....drumroll please......Functions Helper! this is the newest feature of JMeter 2.6!

JMeter Functions: function helper  JMeter 2.6
Simply select the functions you want to use from the drop-down list,  fill in the parameter values and press “Generate”. You will receive results similar to ${__RandomString(123,aldkjfhalskdfalkdfhalkdjfhaldjfhaldsjfhaldjfh,)}. This can be copy/pasted anywhere.

Now to conquer that tongue twister...

arrowPlease enter a URL with http(s)

You might also find these useful:

Interested in writing for our Blog?Send us a pitch!