<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 什么是 SOA 測試? 實例教程 > 原文: [https://www.guru99.com/learn-soa-testing.html](https://www.guru99.com/learn-soa-testing.html) ### 什么是 SOA 測試? SOA(面向服務的體系結構)測試是對 SOA 架構樣式的測試,其中,應用程序組件設計為通常通過網絡上的通信協議進行通信。 在本教程中,您將學習- * [什么是 SOA?](#1) * [什么是服務?](#2) * [SOA 測試](#3) * [SOA 測試策略](#4) * [SOA 測試方法](#5) * [SOA 測試中的挑戰](#6) * [SOA 測試工具](#7) * [SOA 測試用例](#8) ## 什么是 SOA? SOA 是一種將業務應用程序和流程集成在一起以滿足業務需求的方法。 在軟件工程中,SOA 為業務流程提供了敏捷性和靈活性。 可以將對過程或應用程序的更改定向到特定的組件,而不會影響整個系統。 SOA 中的軟件開發人員可以開發或購買稱為 **SERVICES 的程序塊。** ## 什么是服務? ![Learn SOA Testing](https://img.kancloud.cn/0b/81/0b81ba09257b685333ff093fd0e71fca_619x209.png) * Services can be a functional unit of application or business process, which can be reused or repeated by any other application or process. (例如,在上圖中,Payment Gateway 是可以被任何電子商務站點重用的服務。每當需要付款時,電子商務站點都會調用/請求 Payment Gateway 服務。 網關,將響應發送到電子商務網站) * 服務易于組裝且易于重新配置組件。 * 可以將服務與構建塊進行比較。 他們可以構建所需的任何應用程序。 從應用程序或業務流程中添加和刪除它們很容易。 * 服務更多地由它們執行的業務功能來定義,而不是作為代碼塊來定義。 ### 網頁服務 Web 服務是獨立的應用程序組件,可通過 Web 獲得。 它們可以被發布,找到并可以在網絡上使用。 他們可以通過互聯網進行交流。 ![Learn SOA Testing](https://img.kancloud.cn/dd/ad/ddad124e279cb02b16f79cf51a89f1d5_530x87.png) ![Learn SOA Testing](https://img.kancloud.cn/a1/f4/a1f40490dae2feac59d7b0acb6220f8d_597x340.png) 1. 服務提供商將服務發布到 Internet。 2. 客戶端從 Web 服務注冊表中搜索特定的 Web 服務 3. A URL and the WSDL for the required web service is returned. > >使用 WSDL 和 URL,服務提供者和請求者之間的通信通過 SOAP 消息進行。 < < 4. When a consumer calls a web service, an HTTP connection will be established to the provider. 創建 SOAP 消息以指示提供者調用所需的 Web 服務邏輯。 5. 從提供者收到的響應是 SOAP 消息,它將被嵌入到 HTTP 響應中。 此 HTTP 響應是用戶應用程序可以理解的數據格式。 ### 例 網站和搜索引擎的主頁顯示每日天氣預報。 可以從供應商處購買天氣報告服務并將其集成到頁面中,而不是對整個天氣報告部分進行編碼。 ![Learn SOA Testing](https://img.kancloud.cn/7e/c0/7ec0fcd6813d89b5d2c15d9eb82f4ba9_819x537.png) ## SOA 測試 SOA 包含各種技術。 使用 SOA 構建的應用程序具有松散耦合的各種服務。 ![Learn SOA Testing](https://img.kancloud.cn/16/9b/169b628c76aea95dd7192a777539f258_447x388.png) SOA 測試應集中在 3 個系統層上 ### 服務層 該層由服務,由業務功能派生的系統公開的服務組成。 例如 - 考慮一個健康網站,其中包括 1. 體重追蹤器 2. 血糖追蹤器 3. 血壓追蹤器 跟蹤器顯示各自的數據和輸入日期。 服務層由服務組成,這些服務從數據庫獲取相應的數據, * 體重追蹤器服務 * 血糖追蹤器服務 * 血壓追蹤器服務 * 登錄服務 ### 工藝層 流程層包括流程,服務集合,它們是單個功能的一部分。 這些流程可能是用戶界面的一部分(例如,搜索引擎),也可能是 ETL 工具的一部分(用于從數據庫獲取數據)。 該層的主要重點是用戶界面和流程。 體重跟蹤器的用戶界面及其與數據庫的集成是主要重點。 以下功能將被考慮 1. 添加新數據 2. 編輯現有數據 3. 創建新的跟蹤器 4. 刪除資料 ### 消費者層 該層主要由用戶界面組成。 ![Learn SOA Testing](https://img.kancloud.cn/12/61/1261296f19799718dea6e6c449c43a13_959x606.png) 基于該層,SOA 應用程序的測試分為三個級別。 1. 服務等級 2. 接口級別 3. 端到端級別 * 自上而下的方法用于測試設計。 * 自下而上的方法用于測試執行。 ## SOA 測試策略 **測試計劃方法,** * SOA 測試人員應了解應用程序的完整體系結構。 * 需要將應用程序分解為獨立的服務(服務,該服務具有自己的請求和響應結構,并且不依賴于任何其他服務來形成響應)。 * 需要將應用程序結構重組為三個組件–數據,服務和前端應用程序。 * 所有組件都需要仔細分析,并且應該制定業務方案。 * 業務方案應分為常見方案和特定于應用程序的方案。 * 應該準備一個[可跟蹤性矩陣](/traceability-matrix.html),并且所有測試用例都應跟蹤到業務場景。 **測試執行方法** * 每個服務組件都應進行測試。 * 應該對服務組件進行[集成測試](/integration-testing.html),以驗證通過服務的數據流和數據完整性。 * [應該進行完整模型的系統測試](/system-testing.html)以驗證前端應用程序和數據庫之間的數據流。 * [性能測試](/performance-testing.html)應進行微調和優化性能。 ## SOA 測試方法 **1)業務場景驅動的基于數據的測試,** * 應該分析與系統相關的各個業務方面。 * 方案應基于以下方面的綜合發展: * 應用程序的各種 [Web 服務](/web-services-tutorial.html) * Web 服務和應用程序。 * 數據設置應基于上述方案。 * 應進行數據設置,以涵蓋端到端方案。 **2)存根** * 虛擬接口將被創建以測試服務。 * 通過這些接口可以提供各種輸入,并且可以驗證輸出。 * 當應用程序使用未測試的外部服務(第三方服務)的接口時,可以在集成測試期間創建存根。 **3)回歸測試** * 當存在多個版本時,應在應用程序上進行[回歸測試](/regression-testing.html),以確保系統的穩定性和可用性。 * 將創建一個全面的回歸測試套件,其中涵蓋了構成應用程序重要部分的服務。 * 該測試套件可以在項目的多個版本中重復使用。 **4)服務水平測試** 服務水平測試包括測試組件的功能,安全性,性能和互操作性。 每個服務都需要首先進行獨立測試。 **5)功能測試** 功能測試應該在每個服務上進行 * 確保服務對每個請求做出正確的響應。 * 對于無效數據,錯誤數據等的請求,將接收到正確的錯誤。 * 檢查服務必須在運行時執行的每個操作的每個請求和響應。 * 當服務器,客戶端或網絡級別發生錯誤時,請驗證故障消息。 * 確認收到的回復格式正確。 * 驗證響應中接收到的數據是否與請求的數據相對應。 **6)安全測試** 在 SOA 應用程序的服務級別測試期間,Web 服務的安全性測試是一個重要方面。 這樣可以確保應用程序的安全性。 測試期間需要考慮以下因素: * Web 服務應遵守 WS-Security 測試定義的行業標準。 * 安全措施應該完美無缺。 * 加密文件上的數據和數字簽名 * 認證與授權 * SQL 注入,惡意軟件,XSS,CSRF 和其他漏洞將在 XML 上進行測試。 * 拒絕服務攻擊 **7)性能測試** 由于服務是可重用的,并且多個應用程序可能正在使用同一服務,因此需要對服務進行性能測試。 在測試過程中考慮以下因素: * 8)服務的性能和功能需要在重負載下進行測試。 * 服務性能需要在單獨運行以及與之耦合的應用程序中進行比較。 * 應該執行服務的負載測試 * 驗證響應時間 * 檢查瓶頸 * 驗證 CPU 和內存的利用率 * 預測可擴展性 **9)集成級別測試** * 服務級別測試可確保僅單個服務正常工作,而不能保證耦合組件的正常工作。 * 集成測試主要針對接口進行。 * 此階段涵蓋所有可能的業務場景。 * 在此階段,應再進行一次應用程序的非功能測試。 安全性,合規性和性能測試可確保系統各個方面的可用性和穩定性。 * 應該測試通信和網絡協議,以驗證服務之間數據通信的一致性。 **10)端到端測試** 此階段確保應用程序在功能上和非功能上都確認業務需求。 確保在端到端測試期間測試以下項目 * 集成后所有服務均按預期工作 * 異常處理 * 應用程序的用戶界面 * 正確的數據流經所有組件 * 業務流程 ## SOA 測試中的挑戰 * 缺少服務接口 * 測試過程跨多個系統,因此產生了復雜的數據需求 * 該應用程序是各種易于更改的組件的集合。 回歸測試的需求更加頻繁。 * 由于多層架構,很難隔離缺陷。 * 由于該服務將在不同的接口中使用,因此很難預測負載,因此使性能測試計劃變得麻煩。 * SOA 是異構技術的集合。 測試 SOA 應用程序需要具有不同技能的人員,從而增加了計劃和執行成本。 * 由于該應用程序是多個服務的集成,因此安全測試有其自身的麻煩。 驗證身份驗證和授權非常困難。 ## SOA 測試工具 市場上有許多工具可以幫助測試人員測試 SOA 應用程序。 其中很少列出如下。 **1)SOAP UI** “ SOAP UI”是用于服務和 [API 測試](/api-testing.html)的開源功能測試工具。 * 桌面應用 * 支持多種協議– SOAP,REST,HTTP,JMS,AMF,JDBC * 可以開發,檢查和調用 Web 服務。 * 也可以用于負載測試,[自動化測試](/automation-testing.html)和安全測試 * 存根可以由 MockServices 創建 * Web Service 請求和測試可以通過其 Web Service 客戶端自動生成。 * 具有內置的報告工具 * 由 SmartBear 開發 **2)iTKO LISA** “ LISA”是一個產品套件,可為諸如 SOA 之類的分布式系統提供功能測試解決方案。 * 也可以用于回歸,集成,負載和性能測試。 * 由 iTKO(CA Technologies)開發 * 可用于設計和執行測試。 **3)HP 服務測試** “服務測試”是一種功能測試工具,它支持 UI 和共享服務測試 * 服務的功能和性能測試都可以通過單個腳本完成。 * 與 HP QC 集成。 * 可以管理大量的服務和數據。 * 通過模擬 JEE,AXIS 和 DotNet 客戶端環境來支持互操作性測試。 * 由 HP 開發。 **4)Parasoft SOA 測試** SOA Test 是用于 API 和 API 應用程序測試的測試和分析工具套件。 * 支持 Web 服務,REST,JSON,MQ,JMS,TIBCO,HTTP,XML 技術。 * 可以進行功能,單元,集成,回歸,安全性,互操作性,合規性和性能測試。 * 可以使用 Parasoft Virtualize 創建存根,它比 SOAP UI 智能。 * 由 ParaSoft 開發 ## SOA 測試用例 考慮一個電子商務網站,其中包含以下功能和子功能: ### 訂單處理 ![Learn SOA Testing](https://img.kancloud.cn/81/0f/810f369287d1757f08a675f2c8bbb50c_684x248.png) #### 階段 1 在 SOA 測試的第一階段(即測試策略階段),應用程序分為服務和業務功能。 讓我們考慮以下是應用程序中的服務。 * 創建訂單 * 檢查客戶狀態 * 變更單狀態 * 查看訂單狀態 * 檢查庫存 業務功能與網站的功能相同。 **注意:**測試策略文檔將包含必須測試的服務和功能的列表。 #### 階段 2 測試計劃階段。 為每個級別編寫測試用例。 1. End to End level. The test cases are written for each business use case and flow. 以下是測試案例的示例 * 與活動用戶創建訂單。 * 使用非活動用戶創建訂單。 * 使用具有訂購數量<可用數量的可用產品創建訂單。 * 使用具有訂購數量>可用數量的可用產品創建訂單。 * 創建包含多個項目的訂單 * 完全取消訂單。 * 部分取消訂單。 2. Integration level. Test cases are written for integration of database and user interface. 以下是示例測試案例。 * 用單個項目創建一個新訂單。 驗證是否在數據庫上創建了訂單。 * 用單個項目創建一個新訂單。 驗證為訂單計算的價格正確。 * 用單個項目創建一個新訂單。 驗證可用產品的數量是否少于訂單數量。 * 驗證 UI 上顯示的訂單狀態是否與數據庫上的狀態相同。 * 取消訂單,并驗證該訂單的狀態已在數據庫上修改。 * 對于首次付款,請驗證是否將在 UI 上輸入的付款詳細信息保存在數據庫中。 * 對于退還付款,請驗證 UI 上是否顯示了數據庫上的付款詳細信息。 3. 服務等級。 每個服務都針對所有數據條件進行了測試。 以下是一些示例。 | 沒有。 | 訂單詳細信息 | 訂購條件 | | 1 | 創建訂單。 項目數= 1 | 訂購數量<數據庫中的數量 | | 2 | 創建訂單。 項目數> 1 | 訂單數量<數據庫中的數量。 | | 3 | 創建物料的訂單號= 1 | 訂單數量>數據庫數量 | | 4 | 查看訂單狀態 | 數據庫狀態=活動 | | 5 | Check Order status | 數據庫上的狀態=已發貨 | | 6 | Check Order status | 數據庫狀態=已取消 | | 7 | Check Order status | 訂單 ID =無效 | | 8 | 檢查產品可用性 | 產品數量> 0 | | 9 | Check product availability | 產品數量= 0 | | 10 | Check product availability | 產品編號=無效 | #### 階段 3 –測試執行 測試執行使用自下而上的方法,即先完成服務級別的測試,然后再進行集成級別的測試,最后進行端到端測試。 ##### 1)服務水平 讓我們考慮使用 [Soapui](/soapui-tutorial.html) 工具來測試應用程序。 WSDL 和 URL 被瀏覽到 SOAP 的測試窗口中。 每個服務的請求將顯示在請求窗口中。 通過按照服務級別測試用例修改數據,可以為每個測試用例創建請求。 | **測試用例** | **請求** | **預期響應** | | 創建訂單。 項目數= 1 訂購數量< db 上的數量 | <產品 ID > x2 < /產品 ID > <數量> 2 < /數量> | <訂單 ID > o3251 < /訂單 ID > <消息>成功< /消息> | | 創建訂單號 項>的數量 1 訂單數量<的數量 db | <產品 ID > y1 < /產品 ID > <數量> 1 < /數量> <產品 ID > y2 < / productid > <數量> 3 < /數量> | <orderid>o3251</orderid><message>Successful</message> | | 創建訂單號 的商品數= 1 訂購數量> db 上的數量 | <產品 ID > x23 < /產品 ID > <數量> 200 < /數量> | <訂單 ID >空< /訂單 ID > <消息>不成功< /消息> | | 檢查訂單狀態數據庫上的狀態=有效 | <訂單編號> o9876 < /訂單編號> | <狀態>活動< /活動> <消息>成功< /消息> | | 檢查訂單狀態數據庫上的狀態=已發貨 | <訂單編號> o9656 < /訂單編號> | <狀態>已發貨< /活動> <消息>成功< /消息> | | 檢查訂單狀態訂單 ID =無效 | <訂單編號> y5686 < /訂單編號> | <狀態>空< /有效> <消息>不成功< /消息> | | 檢查產品可用性產品數量> 0 | < productid > d34 < / productid > | <數量> 34 < /數量> <可用>是< /可用> <消息>成功< /消息> | | 檢查產品可用性產品數量= 0 | < productid > y34 < / productid > | <數量> 0 < /數量> <可用>否< /可用> <消息>成功< /消息> | | 檢查產品可用性產品 ID =無效 | < productid > sder < / productid > | <消息>不成功< /消息> | ##### 2)整合度 集成級別測試用例在用戶界面和數據庫上執行。 * 創建包含單個項目的訂單– * 用戶打開網站。 * 去下訂單。 * 選擇有效的產品和數量并保存訂單。 * 將顯示一條消息,指示已成功下訂單。 * 用戶打開數據庫,并檢查訂單的詳細信息是否與網站上輸入的相同。 ##### 3)端到端級別 業務流程和用例在用戶界面上執行。 * 創建包含多個項目的訂單– * 用戶打開一個網站。 * 去下訂單。 * 查詢有效的產品和數量,將其添加到購物車。 * 其他有效產品將添加有效數量并保存訂單。 通過新的付款方式完成付款并下訂單。 * 將顯示一條消息,提示“已成功下訂單”。 * 測試人員應驗證整個流程是否完成而不會歪曲數據。 ### 結論: 通過勾勒出正確的測試策略,資源,工具和法規遵從性,以提供良好的服務,SOA 測試可以交付經過完全,完美測試的應用程序。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看