David
David

Reputation: 1107

Add Session ID to each JMeter HTTP request

For my JMeter test, I would like all threads in the test to use one shared session id. The session id is known before I start the test job. How do I specify a specific JSessionId for my JMeter test?

I've tried appending a JSessionId parameter in the HTTP Cookie Manager (under user-defined cookies), in the HTTP Request Defaults (under send parameters with the request), and I tried adding a 'HTTP URL Re-writing Modifier' from the Pre-Processor tab under the Recording Controller. None of these have worked. Which step is the best way to set a fixed session id for my JMeter test?

Upvotes: 3

Views: 23807

Answers (2)

Poorvaja Deshmukh
Poorvaja Deshmukh

Reputation: 129

You need to add jp@gc-JSON Path Extractor in HTTP request, the particular HTTP request which is generating session id in its response data . If response is like:

{"sessionId":"f5b06970-f00f-4b44-89c8-305738e19cba","loginDate":1483599209337} 

In JSON path extractor add:

  1. Variable name - session (variable in which session id will be stored)
  2. JSON Expression - $.sessionId (this will vary according to the JSON response)
  3. Default Value - NOT_FOUND

Now the next step is to use this variable named "session". You can use it in your HTTP request for which you need to pass session id under HTTP header manager as x-auth-token = ${session}

Upvotes: 2

Oliver Lloyd
Oliver Lloyd

Reputation: 5004

You were correct when you tried to use the HTTP Cookie Manager, this should do what you need.

Probably, it didn't work for one of two reasons:

You either have the Cookie Manager in the wrong place. To affect all requests it should be at the root of the Test Plan or Thread Group.

Or, more likely, you didn't specify all the required values properly when you added the User Defined Cookie. This can be tricky to get working; have you made sure you're not using 'http://' in the domain field?

Upvotes: 2

Related Questions