軟件測試 SOA 中基于 Human Task 的服務(上) soa構架
隨著 SOA 技術的不斷發展 , 為保證 SOA 服務的質量 ,SOA 測試也越來越重要。Human Task 作為一個需要人工干預的服務在 SOA 中被廣泛使用。本文針對調用 Human Task 的 SOA 服務為 SOA 測試工程師提供了測試準備,環境部署,測試執行等一整套的測試工作。
隨著 SOA 的普及,越來越多的應用程序使用 SOA 技術構建?!胺铡笔?SOA 的關鍵,一般來說,服務提供者為程序,但在某些領域(如業務流程管理)中卻存在著一些例外,很多活動需要參與人員借助自身的專業知識和經驗,才能做出判斷,這類活動包括異常情況的人工處理、各種請求的審批等。IBM WID/WPS 中的 Human Task 技術,提供了一種將人工活動封裝為 SOA 服務的途徑,它使用和普通服務一樣的接口描述語言來定義服務接口,使得人工活動作為一種特殊的服務平滑的集成到 SOA 架構中。
鑒于 Human Task 的特殊性和復雜性(特別是涉及到用戶、角色和權限等安全概念),使用了 Human Task 的 SOA 服務在其開發和測試的過程中具有很多的獨特之處,本文從測試的角度,詳細的描述了測試此類服務的完整過程,從而保證開發的服務在功能上和性能上均能滿足業務場景的復雜需求。
本文從內容上可以分為兩個部分:第一部分描述測試環境的搭建,包括使用 WID 進行 Human Task 模板設計,啟用 WPS 全局安全,并配置 LDAP 來管理 Human Task 用戶,以及部署 Human Task 模板和待測試服務到 WPS 等;第二部分主要關注服務的測試,使用 SOA Testing Framework 對 SOA 服務進行功能測試,使用 RPT(Rational Performance Tester) Extension for SOA Quality 進行性能測試。
每一個 Human Task 實例都需要根據預先設計好的 Human Task 模板來創建。在這里,我們使用 WID 創建模板,指定模板的類型、名字和名字空間等基本屬性,同時映射用戶角色到具體的用戶或組。詳細步驟如下:
1. 打開 WID Business Integration view,創建 Module,填入 Module 名字。
2. 創建 Human Task,選擇任何一種 Human Task 類型(以 Pure Human Task 為例)。
3. 通過 Properties 來設定 Human Task 的基本屬性,包括 Task 優先級,是否允許自動 Claim 等。
4. 通過 Originator Settings/Receiver Settings 來映射角色到 LDAP 用戶或組,可能的角色包括 Potential Instance Creator,Administrator,Potential Owner, Editor 和 Reader,這樣可以確保有權限的用戶才允許做相應的操作。
圖一設定用戶
這里我們以 Potential Owner 為例,Potential Owner 表示哪些用戶可以聲明相應的任務,被聲明的任務將只能由該用戶(或管理員)處理。如圖一所示,我們指定 taskGroup 這個組里面的所有用戶都可以聲明使用當前模板創建的任務。同時也可以看到,對于用戶和組的管理,WID/WPS 支持 LDAP,User Registry 和 System,這里選擇 LDAP 來管理用戶。
Note:如果 Verb 使用 Group 選項,既映射某個角色到一個指定的組時,需要使用組的全名,如 cn=taskGroup,dc=groups,dc=cbs。
5. 將此 Human Task 拷貝到 Assembly Diagram 中,導出工程為 ear 文件。