2017-05-02 101 views
0

因此,我是SoapUI的新手,並且一般使用API​​,但我正在嘗試爲SoapUI(免費版本)中的REST API設置自動測試。SoapUI測試:刪除會話ID引號

我做的第一個調用返回JSON中的會話ID,它放在引號之間,如「會話ID放在這裏」。下一個API調用中需要此鍵,不帶引號。我使用SOAPUI的「Property Transfer Teststep」,除了會話ID周圍的引用標記之外,這很好,導致後續調用會導致錯誤。

任何想法如何刪除引號?我一直在閱讀/ Googling在Xpath和JSONPath,這是我可以在屏幕上使用的一些編碼語言,但我不知道如何使用它來刪除所述的引號。 您的幫助將不勝感激!

全RAW響應:

HTTP/1.1 200 OK緩存控制:無緩存雜注:無緩存內容類型:應用/ JSON; charset = utf-8過期時間:-1服務器:Microsoft-IIS/8.5 X-AspNet-Version:4.0.30319 X-Powered-by-ASP.NET日期:2017年5月2日星期二18:31:48 GMT內容 - 長度:38 「48d45ba2-4549-41be-8b31-e85b3c738a03」

+0

您可以顯示您正在使用的響應嗎?或者如果可能的話一個屏幕截圖 – Rao

+0

來自第一個呼叫的響應: 「c2f21adc-0f3d-4514-ad5f-65a46d4d6da5」 然後,這需要進入下一個呼叫的「SessionID」參數字段,但我需要刪除響應周圍的「...」 。 –

+0

巴特,肯定這不是實際的答案。您需要提供原始響應或至少在相同的結構中。否則很難提供任何幫助。 – Rao

回答

1

你說的那個消息返回爲 「48d45ba2-4549-41be-8b31-e85b3c738a03」。儘管消息表示它是json,但這並不意味着SoapUI會將其解釋爲有效的json。有效的JSON就像在另一個答案中提到的問題一樣,以大括號開頭和結尾。它也應該有一個關鍵和價值對。像這樣:

{ 
    "sessionId":"48d45ba2-4549-41be-8b31-e85b3c738a03" 
} 

在這種情況下,傳輸$.sessionId會產生48d45ba2-4549-41be-8b31-e85b3c738a03(不帶引號),而不是"48d45ba2-4549-41be-8b31-e85b3c738a03"(帶引號)。

在附件中有一個模擬項目。它有一個電話。如果你打開該項目,你必須通過點擊播放啓動模擬,然後你可以執行測試用例。 - https://www.dropbox.com/s/rsgc9q1g45jze5z/StackOverflow_43745255_QuestionQuotationMarks.xml?dl=0。你可以把它保存爲XML,然後你可以用SoapUI打開它。

您會看到一個屬性轉移步驟。它有一個通過的步驟。然後,您可以在沒有任何參數的情況下傳輸該值。它將完整地傳輸消息。包括引號。

第二次轉移是'$'。對於有效的json,這將呈現與沒有任何參數的屬性傳輸相同的結果,因爲'$'代表根。至少我是這麼理解的。

包括你還會發現一個腳本:

response = context.testCase.getTestStepAt(0).testRequest.response.getResponseContent() 
assert response == '"48d45ba2-4549-41be-8b31-e85b3c738a03"' 

stripResponse = response.replace("\"", "") 
assert stripResponse == '48d45ba2-4549-41be-8b31-e85b3c738a03' 

的stripResponse是在引號剝奪的響應。然後可以繼續將該變量分配給所選屬性,或者直接將其注入下一步的標題中。

有時腳本是要走的路。

+0

非常感謝Matthias!我想我可以進一步與這:) –