中间件(middleware)是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。中间件是基础软件的一大类,属于可复用软件的范畴。中间件位于数据库和应用软件中间,为了解决协议转换、通讯、消息传递、事务管理、内存管理等任务而固化的软件,不再需要编程者处理这些问题,只要解决软件的业务逻辑行了。中间件发展与研究在基础软件中晚,没有达到操作系统、数据库管理系统那样的成熟程度,内涵与外延目前都还不是很清晰。

  中间件的分类没有官方的或者的标准,但是比较流行的一种分法是:屏幕转换及仿真中间件、数据库访问中间件、消息中间件、交易中间件、应用服务器中间件、安全中间件,还有三种中间件也是比较常用的,包括曾经比较流行的门户中间件,和近兴起的工作流中间件和企业应用集成中间件(ESB)等。

  消息中间件是中间件中的重要类型。消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。也是说,消息中间件的主要功能是实现消息传输管理、消息管理、队列管理、多种协议支持、JMS支持等,主要的消息中间件产品包括:IBM  的MQ、SUN 的JMS、微软的MSMQ以及国内的,如:东方通、协同等厂商等相应产品等。

  对于消息中间件产品的测试需要根据其主要功能展开,所以测试内容包括:

  消息传输管理

  测试内容包括是否支持跨平台消息传输、支持发送消息过程中屏蔽发送端与接收端的网络故障、支持发送消息过程中屏蔽接收端的异常,如:接收端宕机、系统崩溃等情况,是否支持消息传输过程中的故障诊断与日志记录、支持消息传输过程中的故障恢复、支持消息传输过程中的断点续传功能等。

  消息管理

  测试内容包括是否支持查看发送端和接收段消息队列中的消息、支持发送和接收消息队列中的消息、支持接收端消息队列的全部删除和条件删除、支持发送端消息队列的全部删除和条件删除、支持消息的优先级定义,并根据优先级完成发送和接收的不同策略,是否支持消息生命周期的设置,并根据消息生命周期的设置完成消息的生命周期管理等。

  队列管理

  测试内容包括是否支持消息队列的分类,包括:本地队列、发送队列、远程队列、系统队列、用户队列等。是否支持对消息队列的删除操作、支持清空消息队列的消息,是否支持对队列中消息状态的查看,状态包括:ready、standing、receiving等。

  支持多种传输协议

  测试内容包括是否支持IPV6协议、SSL协议、HTTP协议、HTTPS协议等。

  JMS支持

  测试内容包括是否支持点到点的消息传输、支持发布/订阅的消息传输、支持JMS发送、接收文件、支持JMS组消息的传送、支持JMS非持久消息和持久消息、支持消息定义符合JMS的从0到9的优先级路线级别等。

  在确定了以上测试要点后,可以开始准备相关测试案例,进行测试案例的开发。在实际测试中,执行覆盖所有测试要点的测试案例,以验证消息中间件是否很好的实现了应该具备的所有功能。