软件测试 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 进行性能测试。
在 WID 中设计 Human Task 模板
每一个 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 文件。
文章来源于领测软件测试网 https://www.ltesting.net/