Sending cookie as request header in SOAP UI reques

2020-02-05 02:35发布

I am testing a Rest API using SOAP UI tool.

First, I hit another API which gave me the jSessionid and then in my actual request I added a parameter to the request header by the name "Cookie" and provide it the above extracted jsessionid value. Everything worked fine.

What I want is to somehow dynamically set the cookie/jessionid in request header without explicitly/manually doing it.

How can it be done?

2条回答
三岁会撩人
2楼-- · 2020-02-05 03:20

You can create a application session from the UI and use cookies that save the session. Get the session cookie details from the browser using the developer tools of the browser. The image shows where the cookies are available in the browser :Getting cookie header parameter

In soapUI create a header attribute with the same value you obtained from the browser and run the request. The request will use the same session id(JSESSIONID) that is saved in the cookie to run the request. The below images shows how to add the cookie value to the header.Adding cookie value o request header

查看更多
来,给爷笑一个
3楼-- · 2020-02-05 03:22

You can easily manipulate Cookies using Groovy scripting. In SoapUI, Cookies are kept in the Cookie store:

import com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport
def myCookieStore = HttpClientSupport.getHttpClient().getCookieStore()

You can read all the Cookies in there:

def myCookies = myCookieStore.getCookies()
def interestingCookie
myCookies.each {
    if(it.name == "JSESSIONID")
        interestingCookie = it
}

To create a new Cookie in another request:

import org.apache.http.impl.Cookie.BasicClientCookie
def myNewCookie = new BasicClientCookie("cookie_name", "cookie_value")
myNewCookie.version = 1
myNewCookie.domain = "qa.test"
myCookieStore.addCookie(myNewCookie)

I have some additional information in an older blog post here.

查看更多
登录 后发表回答