消息中間件及其測試要點
中間件(middleware)是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。中間件是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。中間件位于數(shù)據(jù)庫和 應(yīng)用軟件中間,為了解決協(xié)議轉(zhuǎn)換、通訊、消息傳遞、事務(wù)管理、內(nèi)存管理等任務(wù)而固化的軟件,不再需要編程者處理這些問題,只要解決軟件的業(yè)務(wù)邏輯就行了。 中間件發(fā)展與研究在基礎(chǔ)軟件中最晚,沒有達(dá)到操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)那樣的成熟程度,內(nèi)涵與外延目前都還不是很清晰。
中間件的分類沒有官方的或者唯一的標(biāo)準(zhǔn),但是比較流行的一種分法是:屏幕轉(zhuǎn)換及仿真中間件、數(shù)據(jù)庫訪問中間件、消息中間件、交易中間件、應(yīng)用服務(wù)器中間件、安全中間件,還有三種中間件也是比較常用的,包括曾經(jīng)比較流行的門戶中間件,和最近興起的工作流中間件和企業(yè)應(yīng)用集成中間件(ESB)等。
消息中間件是中間件中的重要類型。消息中間件利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成。通過提供消息 傳遞和消息排隊模型,它可以在分布式環(huán)境下擴(kuò)展進(jìn)程間的通信。也就是說,消息中間件的主要功能是實現(xiàn)消息傳輸管理、消息管理、隊列管理、多種協(xié)議支持、 JMS支持等,主要的消息中間件產(chǎn)品包括:IBM 的MQ、SUN 的JMS、微軟的MSMQ以及國內(nèi)的,如:東方通、協(xié)同等廠商等相應(yīng)產(chǎn)品等。
對于消息中間件產(chǎn)品的測試需要根據(jù)其主要功能展開,所以測試內(nèi)容包括:
消息傳輸管理
測試內(nèi)容包括是否支持跨平臺消息傳輸、支持發(fā)送消息過程中屏蔽發(fā)送端與接收端的網(wǎng)絡(luò)故障、支持發(fā)送消息過程中屏蔽接收端的異常,如:接收端宕機(jī)、系統(tǒng)崩潰等情況,是否支持消息傳輸過程中的故障診斷與日志記錄、支持消息傳輸過程中的故障恢復(fù)、支持消息傳輸過程中的斷點續(xù)傳功能等。
消息管理
測試內(nèi)容包括是否支持查看發(fā)送端和接收段消息隊列中的消息、支持發(fā)送和接收消息隊列中的消息、支持接收端消息隊列的全部刪除和條件刪除、支持發(fā)送端消息 隊列的全部刪除和條件刪除、支持消息的優(yōu)先級定義,并根據(jù)優(yōu)先級完成發(fā)送和接收的不同策略,是否支持消息生命周期的設(shè)置,并根據(jù)消息生命周期的設(shè)置完成消 息的生命周期管理等。
隊列管理
測試內(nèi)容包括是否支持消息隊列的分類,包括:本地隊列、發(fā)送隊列、遠(yuǎn)程隊列、系統(tǒng)隊列、用戶隊列等。是否支持對消息隊列的刪除操作、支持清空消息隊列的消息,是否支持對隊列中消息狀態(tài)的查看,狀態(tài)包括:ready、standing、receiving等。
支持多種傳輸協(xié)議
測試內(nèi)容包括是否支持IPV6協(xié)議、SSL協(xié)議、HTTP協(xié)議、HTTPS協(xié)議等。
JMS支持
測試內(nèi)容包括是否支持點到點的消息傳輸、支持發(fā)布/訂閱的消息傳輸、支持JMS發(fā)送、接收文件、支持JMS組消息的傳送、支持JMS非持久消息和持久消息、支持消息定義符合JMS的從0到9的優(yōu)先級路線級別等。
在確定了以上測試要點后,就可以開始準(zhǔn)備相關(guān)測試案例,進(jìn)行測試案例的開發(fā)。在實際測試中,執(zhí)行覆蓋所有測試要點的測試案例,以驗證消息中間件是否很好的實現(xiàn)了應(yīng)該具備的所有功能。