Question

I need to query a MYSQL Database for a list of siteIDs and siteURLs. I've specified these names in the JDBC Request's Variable Name field.

Then I created a ForEach Logic Controller to cycle through the siteURLs ${siteURL_1} till the last record from the result as such:

Input Variable Prefix: siteURL
Start Index: 0
End Index: 40
Output Variable Name: newSiteURL

Then I use this in the HTTP Request's Path field as:

${newSiteURL}

This works fine and the HTTP requests are going through.

Now, I want to name the HTTP Requests properly so that they are indexed better. For that, I decided to use the siteID field from the result set.

To do that, I created a counter variable as such:

Start: 1
Increment: 1
Maximum: 40
Reference Name: siteIndex

Now, to get the siteID from the result show in the corresponding HTTP Request, I edited the Name field of the HTTP Request to this:

${siteID_"({siteIndex})"}

But my HTTP Requests in the View Results Tree still end up showing as:

${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
...

And not the actual siteID for the corresponding siteURL in the HTTP Request like:

21231
12315
21654
64574
76876
...
Was it helpful?

Solution

You need to change this bit:

${siteID_"({siteIndex})"}

to

${__V(siteID_${siteIndex})}

Explanation:

As per __V function documentation

For example, if one has variables A1,A2 and N=1:

${A1} - works OK

${A${N}} - does not work (nested variable reference)

${__V(A${N})} - works OK. A${N} becomes A1, and the __V function returns the value of A1

See Using JMeter Functions post series for more examples on how to get things done with useful JMeter Functions.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top