Cookies 使用GROOVY脚本将cookie添加到SoapUI中的标头
我对GROOVY脚本相当陌生。 我从soapUI触发一个请求,它基本上登录到数据库并返回cookie作为头的一部分 我需要一个groovy脚本,它可以获取Cookies 使用GROOVY脚本将cookie添加到SoapUI中的标头,cookies,groovy,automation,soapui,Cookies,Groovy,Automation,Soapui,我对GROOVY脚本相当陌生。 我从soapUI触发一个请求,它基本上登录到数据库并返回cookie作为头的一部分 我需要一个groovy脚本,它可以获取cookie(EDEV)[上图中标记为红色]的值,并将该值传递给TestSuite中的所有其他请求 目前我正在使用下面的GROOVY脚本来实现这一点,但无法实现。有人能帮忙吗 import com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport def myCookieStore
cookie(EDEV)
[上图中标记为红色]的值,并将该值传递给TestSuite中的所有其他请求
目前我正在使用下面的GROOVY脚本来实现这一点,但无法实现。有人能帮忙吗
import com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport
def myCookieStore = HttpClientSupport.getHttpClient().getCookieStore()
def val = testRunner.testCase.testSteps['Login'].testRequest.response.getResponseHeaders()
def re = /(EDEV=.*,)/
def matcher = ( val =~ re )
def cookie = matcher[0][0]
def map=[:]
testRunner.testCase.testSteps['Login2'].testRequest.requestHeaders=map
def headers=testRunner.testCase.testSteps['Login2'].testRequest.requestHeaders
headers.put('Cookie', cookie)
testRunner.testCase.testSteps['Login2'].testRequest.requestHeaders=headers
其中,Login
是登录的测试用例,Login2
是需要传递cookie值并将其添加到请求头中的目标测试用例
我已经检查了
http://stackoverflow.com/questions/20640173/how-do-i-get-a-cookie-from-a-soapui-response-using-a-groovy-test-step
我回答了这个问题,并对我的脚本进行了一些编辑,但我仍然无法在下一个请求中看到EDEV cookie。您正在读取请求的标题,而不是cookie
要阅读cookie,请执行以下操作:
import com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport
def myCookieStore = HttpClientSupport.getHttpClient().getCookieStore()
def interestingCookie
myCookies.each {
if(it.name == "EDEV")
interestingCookie = it
}
会话中只有一个cookie存储,因此您必须将cookie存储在某个位置,如属性中:
testCase.testSuite.project.setPropertyValue("interestingCookie", interestingCookie)
稍后,要将此cookie设置回
import org.apache.http.impl.Cookie.BasicClientCookie
import com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport
def myCookieStore = HttpClientSupport.getHttpClient().getCookieStore()
def interestingCookie = testCase.testSuite.project.getPropertyValue("interestingCookie")
def myNewCookie = new BasicClientCookie("EDEV", interestingCookie)
myCookieStore.addCookie(myNewCookie)
您可以在我的博客上找到。可能的重复版本与中给出的解决方案不起作用。您在代码中的什么位置读取myCookieStore中的Cookie?!?!我完全误解了这个问题。。。你说得对。:)。不,这对@SiKing也没有帮助。@saptashi你需要更详细地描述“it”是什么,以及你到底在做什么。