I'm new using JMeter and I have this case:
Test Plan
Test Group1
Http Request 1
Json Extractor1
BeanShell Assertion1
Http Request 2
Http Request 3
And I want to use the response of HTTP req 1(extracted in JSON extractor) in both HTTP request 2 and 3. For request 2 is working fine I just use ${response} and works fine but when I try to user the same variable in request 3 is like is empty is not showing anything.
So I tried to put the BeanShell Assertion and do a var.set or even a set property, but is still not working. It is like the var or property is being set, and I can see them in HTTP req 2 but in HTTP req 3 they are empty.
Is there another way to set the variable or the response of the request 1 to be use in any other requests of the same thread?
Thanks
You need to amend your test design and make the JSON Extractor a child of the Http Request 1
Test Plan
HTTP Request 1
HTTP Request 2
HTTP Request 3
If you have JSON Extractor at the same level as HTTP Requests 1-3 it's being executed after every of them so it tries to extract the value from HTTP Request 2 response, doesn't find it and the variable gets empty or default value.
The same applies to the Beanshell Assertion.
More information: JMeter Scoping Rules
With regards to using Beanshell in general it's not very recommended, since JMeter 3.1 you should be using JSR223 Test Elements and Groovy language