在rest web服务的SOAP UI请求中将cookie作为请求头发送

在rest web服务的SOAP UI请求中将cookie作为请求头发送,rest,cookies,session-cookies,soapui,jsessionid,Rest,Cookies,Session Cookies,Soapui,Jsessionid,我正在使用soapui工具测试restapi 首先,我点击了另一个API,该API为我提供了jSessionid,然后在我的实际请求中,我向请求头添加了一个名为“Cookie”的参数,并为其提供上述提取的jSessionid值。一切都很顺利 我想要的是以某种方式在请求头中动态地设置cookie/jessionid,而无需显式地/手动地进行设置 如何做到这一点?您可以使用Groovy脚本轻松地操作Cookie。在SoapUI中,Cookie保存在Cookie存储中: import com.eviw

我正在使用
soapui
工具测试
restapi

首先,我点击了另一个API,该API为我提供了jSessionid,然后在我的实际请求中,我向请求头添加了一个名为“Cookie”的参数,并为其提供上述提取的jSessionid值。一切都很顺利

我想要的是以某种方式在请求头中动态地设置cookie/jessionid,而无需显式地/手动地进行设置


如何做到这一点?

您可以使用Groovy脚本轻松地操作Cookie。在SoapUI中,Cookie保存在Cookie存储中:

import com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport
def myCookieStore = HttpClientSupport.getHttpClient().getCookieStore()
您可以阅读其中的所有Cookies:

def myCookies = myCookieStore.getCookies()
def interestingCookie
myCookies.each {
    if(it.name == "JSESSIONID")
        interestingCookie = it
}
要在另一个请求中创建新Cookie,请执行以下操作:

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)

我在一篇较旧的博客文章中有一些附加信息。

您可以从UI创建应用程序会话,并使用cookies保存会话。使用浏览器的开发人员工具从浏览器获取会话cookie详细信息。此图显示浏览器中cookie的可用位置:


在soapUI中,使用从浏览器获得的相同值创建标题属性并运行请求。请求将使用保存在cookie中的相同会话id(JSESSIONID)来运行请求。下图显示了如何将cookie值添加到标头。

OP知道如何执行此操作。问题是如何使这一过程自动化。