SOAPUI中文教程---使用斷言


讓我們來看看使用采樣器的TestSteps(包括request的TestStep)的Assertion功能如何驗證TestStep收到傳入的響應或請求。在我們深入了解可用的斷言之前,讓我們快速概述一下。

斷言用於在執行期間驗證TestStep接收的消息,通常通過將消息(或整個消息)的部分與某些預期值進行比較。任何數量的斷言都可以添加到采樣器TestStep中,每個斷言都會驗證響應內容的一些不同方面。在采樣器TestStep執行后,其所有斷言將應用於接收到的響應,如果任何一個斷言TestStep在TestCase視圖中被標記為失敗,並且相應的FAILED條目顯示在測試執行日志中。

failed-assertion

這里我們可以看到“測試請求 - 登錄”TestStep已經失敗,在底部的TestCase運行日志中還會顯示有關實際斷言失敗的詳細信息; “took 1023 ms”表示“SLA”斷言失敗,即響應太慢。

1. 管理斷言

斷言始終顯示在包含TestSteps編輯器窗口底部的選項卡中。

 

assertion-panel-in-teststep-window

在上面的截圖中,您可以看到添加到SOAP Request TestStep中的3個斷言,並且它們都failed。

在斷言之上的工具欄允許您根據需要添加,配置,刪除,移動和克隆斷言,並且用於斷言的右鍵單擊彈出菜單包含類似的操作(可以在屏幕截圖中看到)。雙擊斷言會彈出其配置對話框(如果可用)。

add-asssertion-dialog

該對話框將包含可用於當前類型采樣器的斷言映射(見下文),按OK將添加斷言並打開其配置對話框。

2. 斷言類別

斷言分為幾個類別,以便於管理。

2.1. Property Content

  • Contains - 在屬性值中搜索字符串是否存在,支持正則表達式。適用於任何。
  • Message Content Assertion - 允許XML消息的復雜內容驗證。適用於包含XML的任何屬性。 
  • Not Contains - 不包含 - 搜索屬性值中不存在字符串,支持正則表達式。適用於任何。
  • XPath Match - 使用XPath表達式從目標屬性中選擇內容,並將結果與​​期望值進行比較。適用於包含XML的任何屬性。
  • XQuery Math - 使用XQuery表達式從目標屬性中選擇內容,並將結果與​​期望值進行比較。適用於包含XML的任何屬性。

2.1.1. Compliance, Status and Standards

  • HTTP Download all resource - 下載所有資源稱為HTML文檔(圖像,腳本等),並驗證它們是否可用。適用於包含HTML的任何屬性。
  • Invalid HTTP Status Codes - 檢查目標TestStep是否收到HTTP結果,狀態碼不在定義的代碼列表中。適用於接收HTTP消息的任何TestStep
  • Not SOAP Fault - validates that the last received message is not a SOAP Fault. Applicable to SOAP TestSteps.
  • Schema Compliance - validates that the last received message is compliant with the associated WSDL or WADL schema definition. Applicable to SOAP and REST TestSteps. The schema definition URL supports Property Expansions (e.g. ${#System#my.wsdl.endpoint}/services/PortType?wsdl ).
  • SOAP Fault - validates that the last received message is a SOAP Fault. Applicable to SOAP TestSteps SOAP Request - validates that the last received request is a valid SOAP Request. Applicable to MockResponse TestSteps only.
  • SOAP Response - validates that the last received response is a valid SOAP Response. Applicable to SOAP TestRequest Steps only.
  • Valid HTTP Status Codes - 檢查目標TestStep是否在定義的代碼列表中收到帶有狀態代碼的HTTP結果。適用於接收HTTP消息的任何TestStep。
  • WS-Addressing Request - validates that the last received request contains valid WS-Addressing Headers. Applicable to MockResponse TestSteps only.
  • WS-Addressing Response - validates that the last received response contains valid WS-Addressing Headers. Applicable to SOAP TestRequest Steps only.
  • WS-Security Status - 驗證最后收到的消息是否包含有效的WS-Security標頭。適用於SOAP TestSteps。

2.1.1.1. Script

  • Script Assertion - 運行自定義腳本來執行任意驗證。僅適用於測試步驟(不能用到屬性)。

2.1.1.2. SLA

  • Response SLA - 驗證最后收到的響應時間是否在定義的限制內。適用於發送請求和接收響應的腳本TestSteps和TestSteps。

2.1.1.3. JMS

  • JMS Status - 驗證該目標步步測試的JMS請求成功執行。適用於要求TestSteps與JMS端點。

2.1.1.4. JDBC

  • JDBC Status - 驗證目標TestStep的JDBC語句是否成功執行。僅適用於JDBC TestSteps。
  • JDBC Timeout - 驗證目標TestStep的JDBC語句是否不會超過指定的持續時間。僅適用於JDBC TestSteps。

2.1.1.5. Security

  • Sensitive Information Exposure - 檢查上一次接收到的消息是否不會公開有關目標系統的敏感信息。適用於REST,SOAP和HTTP TestSteps。

3. Common Assertions

常見的teststep斷言是:

 

  • Contains
  • Not Contains
  • Reponse SLA
  • XPath Match
  • XQuery match
  • Script

3.1. The Contains Assertion

該斷言檢查接收到的響應或請求消息中是否存在某些文本,其配置對話框如下:

 

contains-assertion

  截圖中顯示的示例指定了要驗證的消息的整個內容中的字符串“SessionID”的正則表達式檢查 。 內容支持屬性擴展。

3.2. The Not Contains Assertion

包含斷言的對應物;這個檢查在斷言的消息中不存在指定的內容。配置對話框與上述相同:

 

not-contains-assertion

這里的截圖中的例子只是檢查整個響應中“Error”不存在。

3.3. The Response SLA Assertion

此聲明驗證響應時間在指定的值內,否則斷言將失敗。配置對話框是一個簡單的對話框:

 

response-sla-assertion

屬性擴展支持在指定的值中,允許您通過某些外部機制(如果需要)來控制斷言限制。


免責聲明!

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



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