soapUI-property Transfer


1.1.1  Property Transfer

創建或雙擊現有的Property-Transfer TestStep將打開以下窗口:

 

左側的列表顯示了此TestStep中配置的傳輸,添加和管理所需的數量。 選擇傳輸時(如上圖截圖中的“result”),右側的區域允許您根據需要進行配置;

  • 頂部的源區域指定源屬性和可選的XPath用於傳輸
  • 目標區域指定目標屬性和可選的XPath進行傳輸
  • 下面的區域將不同的配置選項設置在傳輸級別上。

底部的傳輸日志顯示窗口打開時的最新執行傳輸及其實際傳輸的值。

可用的配置選項可以大大改變傳輸的內容,並將其各自的定義為:

  • Fail transfer on error -嘗試執行轉移時發生任何錯誤時,轉移步驟將失敗
  • Transfer text content -只會傳送文字內容。 不會保留結構元素
  • Transfer to all -匹配的值將被轉移到所有的目標位置,以防多個匹配
  • Entitize transferred values -這些值將具有某些字符,例如&符號(“&”)替換為相應的字符實體值(“&”)
  • Set null on missing source -如果源資源丟失,目標將設置為null。 這意味着如果目標已經有一個值,它將丟失
  • Ignore empty/missing values -這意味着如果源的匹配值為空或丟失,則它將被忽略,並且目標值保持不變
  • Use XQuery - SoapUI將假定源是XQuery而不是默認的XPath,當嘗試提取源值時
  • Transfer child nodes - SoapUI不會嘗試從匹配的源節點進行任何文本提取,而是選擇匹配節點的子節點,從而保留子樹XML結構

1.1.1.1 Transfer Execution

當在TestCase運行期間執行PropertyTransfer TestStep時,通過選擇傳輸源步驟,屬性和可選XPath/JSONPath表達式指定的屬性來執行屬性傳輸中的每次傳輸,並使用以下命令將其值復制到目標步驟指定的屬性可選的XPath/JSONPath表達式。 如果指定了XPath/JSONPath表達式,soapUI將嘗試用源節點替換目標節點,如果它們的類型相同。 如果沒有(例如,將text()分配給@attribute),soapUI將盡可能復制該值。

源和目標XPath/JSONPath表達式都必須指向其各自屬性中的現有節點,源屬性顯然需要節點,以便可以選擇,目標屬性需要節點才能被找到並覆蓋。

如果由於任何XPath/JSONPath表達式的匹配丟失而導致任何傳輸失敗,則打印錯誤,並且步驟將失敗或繼續,具體取決於該傳輸選擇了“失敗錯誤”選項。 如果TestCase的“Fail on error”選項已按照TestCase Options所述設置,TestCase的執行將被中止。

1.1.1.2 一個例子:將版本號從響應轉移到以下請求

假設我們有一個查詢服務,返回一個隨后要用於刪除的版本號; 屬性轉移非常適用於提取版本號並將其寫入可以由所有所需TestStep引用的屬性。 開始了:

 

 

 

  1. 將查詢請求添加並執行到一個空的TestCase,以便您有一個有效的響應來處理;
  2. 請求后創建Property-Transfer TestStep,並向其中添加屬性傳輸;
  3. 將源屬性配置為“查詢請求的響應”,然后在源屬性工具欄右側選擇“向導”按鈕。 這將打開一個方便的向導,用於選擇要傳輸的所需源節點(在標准soapUI中,您將必須手動創建生成的JSONPath語句)。 
  4. 選擇節點並按OK; soapUI為您生成相應的JSONPath語句;

 

現在,所有的源都設置完成,下一步是配置屬性轉移的目標,即應寫入的位置。 有兩個選擇;

  1. 將其寫入可以由需要使用version_seq的所有后續測試步驟引用的臨時屬性。 如果我們要在幾個地方使用version_seq或者TestSteps,這是最好的解決方案
  2. 將其直接傳輸到應該使用該值的目標TestStep。 如果只想在一個地方使用該值,這將更容易
1.1.1.2.1       寫入臨時屬性

將屬性保存到我們使用名稱“version_seq”定義的測試用例屬性;

 

現在當執行時,version_seq被轉移到指定的TestCase屬性,並且可以稍后在通過標准屬性擴展(或另一個屬性轉移)的任何請求中使用。

1.1.1.2.2       直接寫入所需的目標TestStep

這更直接; 將目標設置為注銷請求,並再次使用JSONPath向導(或JSONPath技術)創建目標JSONPath語句;

 

現在執行此操作時,源目標值將從響應中直接提取並寫入請求消息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM