2015-11-26 65 views
-1

我是GROOVY腳本的新手。 我觸發從soapUI的,這基本上不會登錄到數據庫並返回cookie作爲報頭使用GROOVY腳本將Cookie添加到SoapUI中的標頭

enter image description here

我需要Groovy腳本,其可以採取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。

+1

可能的重複[如何從使用Groovy測試步驟的SoapUI響應中獲取Cookie?](http://stackoverflow.com/questions/20640173/how-do-i-get-a-cookie-from -a-soapui-response-using-a-groovy-test-step) – SiKing

+0

它不適用於http://stackoverflow.com/questions/20640173/how-do-i-geta-a- cookie-from-a-soapui-response-using-a-groovy-test-step – Sammy

+0

在你的代碼的哪一點你正在從'myCookieStore'中讀取cookies?!?! – SiKing

回答

0

您正在閱讀請求的標頭,並且不是的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) 

稍後,將此曲奇設置回

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) 

您可以在我的博客上找到additional details

+0

我完全誤解了這個問題......你說得對:''''。 – albciff

+0

不好,它也沒有幫助@SiKing。 – Sammy

+0

@Saptarshi你需要對「它」是什麼以及你正在做什麼*做更多描述。 – SiKing

相關問題