我正在使用Rest API
工具测试SOAP UI
。
首先,我点击另一个API,它给了我 jSessionid ,然后在我的实际请求中,我通过名称“Cookie”在请求标头中添加了一个参数并提供它是上面提取的 jsessionid 值。一切都很好。
我想要的是以某种方式动态设置请求标头中的cookie / jessionid,而无需显式/手动执行。
怎么做?
答案 0 :(得分:8)
您可以从UI创建应用程序会话,并使用保存会话的cookie。使用浏览器的开发人员工具从浏览器获取会话cookie详细信息。该图像显示了浏览器中cookie的可用位置:
在soapUI中创建一个header属性,其值与从浏览器获得的值相同并运行请求。该请求将使用保存在cookie中的相同会话ID(JSESSIONID)来运行请求。下图显示了如何将Cookie值添加到标题中。
答案 1 :(得分:3)
您可以使用Groovy脚本轻松操作Cookie。在SoapUI中,Cookie保存在Cookie存储中:
import com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport
def myCookieStore = HttpClientSupport.getHttpClient().getCookieStore()
您可以阅读其中的所有Cookie:
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)
我在较早的博文here中有一些其他信息。