1. 引言
Rational Tester for SOA Quality 是一个用于验证 Web 服务的功能测试工具,该工具支持 Web 服务测试脚本的创建、执行以及测试报告的分析。Rational Tester for SOA Quality 基于 Rational Performance Tester Framework 实现。它继承了 Rational Performance Tester 的许多强大的功能特性,例如零代码测试设计,数据池,自动数据关联以及强大的测试报告框架等等。在阅读本文之前,您需要对 Rational Performance Tester 有基本的了解。
在开始测试之前,先让我们一起来了解一下 Rational Tester for SOA Quality 的主要优势:
在接下来的内容中,我们将利用一个实际的业务流程,向您介绍如何利用 Rational Tester for SOA Quality 进行服务集成测试。
安装测试环境
本文的测试环境使用 IBM® Rational® Performance Tester 7.0.0.2(英文),IBM® Rational® Tester for SOA Quality 7.0.0,WebSphere Process Server 6.0.2, Microsoft® Windows® 2000 Professional SP2。
注意:在安装 IBM® Rational® Tester for SOA Quality 7.0.0 之前,必须保证您的 IBM® Rational® Performance Tester 的版本高于 7.0。
在安装完测试环境之后,您需要下载本文提供的应用程序,将其安装在 WPS 上并启动。
这是一个简单的业务流程,接收两个整数类型的数据作为输入参数,然后调用一个外部的 Web 服务,将两个整数进行相加,将和数作为结果返回。其流程结构如图 1 所示:
图 1. InvokerProcess 业务流程
该流程包括三个活动:
Receive:该活动是整个流程的起点,用于从客户端接收消息并将接收到的数据存储于流程的变量中。在本流程中,该活动接收两个参数 input1, 和 input2 作为输出。BPEL 定义如下表所示。
表 1. Receive 活动定义
<bpws:receive createInstance="yes" name="Receive" operation="operation1"
partnerLink="InvokerProcess" portType="ns0:InvokerProcess" wpc:displayName="Receive"
wpc:id="6">
<wpc:output>
<wpc:parameter name="input1" variable="Input1"/>
<wpc:parameter name="input2" variable="Input2"/>
</wpc:output>
</bpws:receive>
InvokeArithmetic:该活动调用一个外部的 Web 服务,将输入的两个数字进行加法运算,返回和数。BPEL 定义如下表所示。
表 2. InvokeArithmetic 活动定义
<bpws:invoke name="InvokeArithmetic" operation="add"
partnerLink="ArithmeticServiceImpl" portType="ns1:ArithmeticServiceImpl"
wpc:displayName="InvokeArithmetic" wpc:id="8">
<wpc:input>
<wpc:parameter name="num1" variable="Input1"/>
<wpc:parameter name="num2" variable="Input2"/>
</wpc:input>
<wpc:output>
<wpc:parameter name="addReturn" variable="Output1"/>
</wpc:output>
</bpws:invoke>
Reply:该活动是这个流程的终点,返回上一步计算出的和数。BPEL 定义如下表所示。
表 3. Reply 活动定义
<bpws:reply name="Reply" operation="operation1" partnerLink="InvokerProcess"
portType="ns0:InvokerProcess" wpc:displayName="Reply" wpc:id="7">
<wpc:input>
<wpc:parameter name="output1" variable="Output1"/>
</wpc:input>
</bpws:reply>
其中被调用的 Web 服务为 ArithmeticService, 该服务提供加法和减法两种操作。接口定义如下图所示。
图 2. ArithmeticService 接口定义
本文的测试用例是一个非常典型的服务集成的应用,通过业务流程中的 INVOKE 活动调用外部的 Web 服务,Web 服务支持两种操作,加法和减法。本文将创建两个测试分别调用服务的两种操作。接下来,您将跟随我们完成以下主要工作:
现在,一切准备就绪,就让我们一起来体验 Rational Tester for SOA Quality 为我们所带来的愉快体验吧 !
2. 使用 Rational Tester for SOA Quality 进行服务集成测试
Rational Tester for SOA Quality 可以通过业务流程的 BPEL 描述文件自动生成对其调用的 web servcie 的测试脚本。在这一节,您将会通过一个实例的学习,了解测试流程的所有步骤。但在此之前,为了避免您在日后使用时,由于对本工具自身的支持局限不了解,而造成不必要的时间和精力上的浪费。首先,我们将介绍一下该工具对测试的支持局限:
<bpws:invoke name="CalculateOrderNumAndDate" operation="null" partnerLink="null " portType=" wpc:null" wpc:displayName="CalculateOrderNumAndDate" wpc:id="12">
这样的语句是不符合要求的,不能被正确解析。
以上列出的几点约束是在使用过程中,不断提炼总结出来的,我们不能保证它的全面性,但却是会经常碰到的问题。希望能够对您日后的工作有所帮助。
现在,在一切准备工作结束之后,我们便可以进入真正的测试环节。