科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Rational for SOA Quality简化服务集成

Rational for SOA Quality简化服务集成

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍了如何使用Rational Tester for SOA Quality 对业务流程中调用的Web服务进行集成测试。

作者:李旭 来源:论坛整理 2007年11月17日

关键字: Rational SOA 服务

  • 评论
  • 分享微博
  • 分享邮件
本文介绍了如何使用Rational Tester for SOA Quality 对业务流程中调用的Web服务进行集成测试。通过阅读本文,您将了解如何从一个 BPEL 描述文件出发生成针对 Web 服务的集成测试脚本,如何编辑测试脚本,如何创建和使用数据池,以及如何分析 Web 服务测试结果。

  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 的主要优势:

  • 零代码 (code-free) 测试设计通过提供良好的用户界面,使得用户无需编写任何代码便可以自动创建、编排、修改并执行测试。这里,测试的概念是指对 Web 服务的若干操作进行调用并验证返回结果。用户可以设置或验证 Web 服务的各种信息,包括 HTTP header, cookies 以及 SOAP 消息。
  • 简化无图形界面 (GUI-less) 服务的测试通过自动产生 Web 服务的客户端,该工具大大简化了对无图形化用户接口的服务测试。
  • 简化服务集成测试从业务流程(由 WS-BPEL 定义)中自动产生对其调用的 Web 服务的测试。使得用户可以迅速地对复杂的业务流程进行测试并能够确保测试的最大覆盖率。
  • 支持多种服务标准支持 SOAP, HTTP, JMS, WS-Security 以及 UDDI。
  • 自动数据关联和数据驱动测试在记录测试的过程中,工具能够自动检测到输入数据从而进行数据驱动测试。提供表格式数据编辑器,用户可以创建定制的数据集在测试回放 (playback) 过程中将其自动插入测试脚本。

  在接下来的内容中,我们将利用一个实际的业务流程,向您介绍如何利用 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 业务流程

  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 接口定义

  ArithmeticService 接口定义

  本文的测试用例是一个非常典型的服务集成的应用,通过业务流程中的 INVOKE 活动调用外部的 Web 服务,Web 服务支持两种操作,加法和减法。本文将创建两个测试分别调用服务的两种操作。接下来,您将跟随我们完成以下主要工作:

  1. 生成测试,调用 add 方法
  2. 编辑测试,使用数据池、自动数据关联、验证点、IF-THEN 逻辑等功能
  3. 创建调度,循环多次运行测试
  4. 执行测试并分析测试报告,重点分析功能测试报告

  现在,一切准备就绪,就让我们一起来体验 Rational Tester for SOA Quality 为我们所带来的愉快体验吧 !

  2. 使用 Rational Tester for SOA Quality 进行服务集成测试

  Rational Tester for SOA Quality 可以通过业务流程的 BPEL 描述文件自动生成对其调用的 web servcie 的测试脚本。在这一节,您将会通过一个实例的学习,了解测试流程的所有步骤。但在此之前,为了避免您在日后使用时,由于对本工具自身的支持局限不了解,而造成不必要的时间和精力上的浪费。首先,我们将介绍一下该工具对测试的支持局限:

  • 在 BPEL 文件中,必须将业务流程依赖的所有 WSDL 文件通过 import 语句声明。
  • 在 BPEL 文件中,必须保证 import 语句的正确性,其中的 location 属性不能包含相对路径,如 ../../name.wsdl。
  • INVOKE 在 BPEL 文件中,INVOKE 语句中不允许有值为 null 的属性出现,如
<bpws:invoke name="CalculateOrderNumAndDate" operation="null"
 partnerLink="null
" portType="
wpc:null"
  wpc:displayName="CalculateOrderNumAndDate" wpc:id="12">

  这样的语句是不符合要求的,不能被正确解析。

  • 支持通过业务流程中的 INVOKE 活动产生对其调用的 Web 服务的测试,不支持 RECEIVE 活动和 REPLY 活动。
  • 在 WSDL 文件中,必须保证 soap operation 元素中包含 soapAction 属性,如

  以上列出的几点约束是在使用过程中,不断提炼总结出来的,我们不能保证它的全面性,但却是会经常碰到的问题。希望能够对您日后的工作有所帮助。

  现在,在一切准备工作结束之后,我们便可以进入真正的测试环节。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章