2017-02-14 58 views
0

我加入作爲SOAP客戶端的SoapUI的團隊,並且有產生訪問令牌的認證步驟。每個後續請求都應該使用此令牌填充。如何通過SoapUI中的XPath在XML響應中保存全局屬性?

這意味着我手動將舊的訪問令牌替換爲新的。

起初,我通過File => Preference創建了全球房產,這讓我每天只進行一次編輯,但我喜歡擺脫任何手動步驟。

我不完全理解SoapUI,我們不使用測試套件/案例。

如何創建一個點擊執行請求,通過XPath從響應中提取值並將其保存在全局屬性中的東西?

回答

1

我面臨的問題是缺乏知識如何使用SoapUI。

所以首先我創建了TestSuit下的項目。作爲TestSuit的第一步,我做了SOAP請求。

有可能進入TearDown中腳本TestSuit

def token = context.expand('${SessionCreateRQ#Response#//*:BinarySecurityToken/text()}') 
com.eviware.soapui.model.propertyexpansion.PropertyExpansionUtils.globalProperties.setPropertyValue('sectoken', token) 

或像這樣:

def token = context.expand('${SessionCreateRQ#Response#//*:BinarySecurityToken/text()}') 
com.eviware.soapui.SoapUI.globalProperties.setPropertyValue('sectoken', token) 

但隨後的運行中並不全局變量的變化值,除非我刪除它來自File => Preference對話框。

所以我添加第二個步驟產權轉讓在GUI,我的第一個請求選擇名稱,屬性響應,路徑語言的XPath並輸入表達式:

//*:BinarySecurityToken/text() 

至於目標,我選擇全球作爲屬性我的變量名稱:

enter image description here

現在當我運行TestSuit${#Global#sectoken}充滿了新的價值,並可以在任何SoapUI項目中訪問!

相關問題