Gladson Bruno
Gladson Bruno

Reputation: 71

JMeter - I need to pass a parameter called "Cookie" in the request header

I am using apache jmeter 5.2.1 with Java 8 to perform the performance test in a JSF application. I need to send in the header of an HTTP request a parameter called "Cookie" according to the example below: enter image description here

I've tried several things but none work. I have already used the HttpHeaderManager resource but apparently the word "Cookie" is a JMeter reserved word so I can't create a parameter in the Header with the name "Cookie". If I create a parameter in HttpHeaderManager with any name it is appended to the request header, but if I create with the name "Cookie" which is the name I need to use JMeter simply ignore it and do not add it to the request header .

I saw many posts indicating that I used the following code snippet:

CookieManager manager = sampler.getCookieManager();
Cookie cookie = new Cookie("JSESSIONID",vars.get("jSessionId"),"${serveraddress}",false,0);
manager.add(cookie);

I've tested it but it doesn't work either, it returns the following error whenever I try to use it: enter image description here

I also have an Http Cookie Manager but its value is sent in the request body and not in the header.

I also tried to use the Http Autorization Manager as I saw in some posts but it only works when the login is done at a prompt in the browser.

Can someone help me?

Upvotes: 3

Views: 1440

Answers (1)

Dmitri T
Dmitri T

Reputation: 168207

Just add a HTTP Cookie Manager to your Test Plan and it will automatically "manage" cookies for you (the HTTP Request samplers must be in the HTTP Cookie Manager's scope)

You can double check that JMeter sends correct Cookie header using a 3rd-party sniffer tool like Wireshark or Fiddler

If you added the HTTP Cookie Manager but JMeter still doesn't send the JSESSIONID cookie it might be the case there is a problem with the cookie itself, i.e. it doesn't match domain/path or expired or your HTTP Request sampler configuration is not correct.

If you absolutely sure that your application behaves as expected you can configure JMeter to be less restrictive by:

  1. Choosing a more "relaxed" cookie policy, i.e. netscape
  2. Adding the next line to user.properties file:

    CookieManager.check.cookies=false
    
  3. You can also add the next line to log4j2.xml file:

    <Logger name="org.apache.jmeter.protocol.http.control" level="debug" />
    

    this way you will get comprehensive information of the Cookie Manager's behaviour in the jmeter.log file

More information: HTTP Cookie Manager Advanced Usage - A Guide

Upvotes: 3

Related Questions