资源描述
使用Rational Integration Tester测试Web services
本文介绍如何通过Rational Integration Tester(以下简称RIT)来测试Web services,并结合Rational Test Virtualization Server(以下简称RTVS)实现Web services的虚拟化。
一、 准备Web services环境
解压缩到本地目录,双击runcalculatorservice.bat文件,将会启动一个做四则运算的Web services,如下图所示:
在浏览器中打开http://remy:8084/Calculator?wsdl(不同的客户端机器名会自动匹配)查看该Web services的WSDL定义。打开RIT,并新建一个项目。在顶层菜单中 点击Project -> Create New Environment创建一个新的环境Rational(名字任意)。
针对Web services,RIT提供了功能强大的、开箱即用的同步功能用于帮助我们针对被测的Web services自动生成相关的逻辑架构和物理架构。在逻辑试图中点击按钮,选择WSDL作为被同步的资源类型。
点击New -> Change -> URL,在URL栏填入WSDL定义。
确定之后点击Next,选择Create a new Component, 点击Next,选择之前创建的Environment,点击Next。
在Synchronisation option窗口中选择Open Synchronisation View and performance Synchronisation , 该选项表示使用RIT自动的根据WSDL中的相关定义在当前Environment下生成表示该Web services的逻辑架构和物理架构,点击Finish。
RIT会在将同步结果予以显示。如果Status的状态都是In sync,则表示该Web services相关的方法,Http Transportation逻辑组件和物理组件均已生成。
切换到逻辑视图,可以查看该Web services在RIT中的逻辑视图。
切换到物理视图,可以查看该Web services使用的Http Transportation在RIT中的物理视图。
二、 使用RIT测试Web services
切换到Test Factory,我们选择Add方法来进行测试。右键选择Add -> New -> Tests -> Test using MEP,新建一个名称为testAdd的测试。
查看该测试的Test Steps, 可以看到包含了一个Send Request和对应Receive Reply。我们将在这里定义测试消息的详细信息。
双击,在Value1和Value2处分别填入1和2,表示让Web service计算“1+2”并返回测试结果。
双击,在Result处填入3作为结算结果。
右键选择testAdd运行测试,可以看到测试通过。
在测试日志中点击Send Request行,可以查看报文发送的详细信息。点击Receive Reply行,可以查看报文接受的详细信息。
打开testAdd的定义,双击,将Result该为2,并重新运行该测试,可以发现测试失败。通过在日志中点击Send Request和Receive Reply可以查看详细的报文发送和接受日志。
三、 使用RIT定义Web services服务的Stub
在RTVS中我们定义服务的虚拟化有多种方式,最常用的两种是录制和手工配置的方式。后者适用于在被模拟服务应用不存在或者不可用时使用。采用录制的方式我们可以很快的定义出一个Stub用于实现服务的虚拟化。
回到Web services的物理视图,双击,在Client选项卡中填入如下的信息,表示所有从该Http Transportation进过的Http traffic将会被重定向到localhost:3128代理。
在Recording选项卡选择记录模式为External Proxy Sever。
双击C:\Program Files\IBM\RIT-Platform\httptcp\startup.bat,打开RIT提供的httptcp代理程序,
在RIT中切换到Recording Studio视图,选择CalculatorPort进行录制。
点击进行录制。
重新运行测试testAdd,如果测试通过,可以发现在Recording Studio中已经成功捕获报文信息。
选择全部的信息,点击。
选择将录制的结果保存为一个Stub,点击Next。
在Data Storage窗口选择as hard coded values,表示我们将创建一个硬编码的stub。
一直点击Next,在Summary窗口为Stub起一个名称,点击Finish。
可以查看AddStub的定义,在Input和Output选项卡,分别定义了这个stub的入参和出参。
右键选择运行AddStub,如果stub成功启动,则能看到:
关闭之前启动的Web services启动窗口。
关闭之前启动的Web services启动窗口。重新运行testAdd,可以发现即使被测的Web Services不可用,测试仍然可以通过。下图红色方框中的1表示Stub被调用1次
四、 使用RTVS实现Web services的服务虚拟化
Stub定义好了之后,只是为测试人员所用。如果想让团队成员都能使用,则需要将Stub发布到Rational Test Control Panel(以下简称RTCP)。
在发布之前,需要启动Test Agent,双击C:\Program Files\IBM\RIT-Agent\Agent.exe打开。
双击C:\Program Files\IBM\RationalTestControlPanel\bin\startup.bat,启动RTCP。
在Test Factory中选择Publish Stubs。
选择发布到刚在本地启动的RTCP Server,点击Publish。
在浏览器中打开http://localhost:7819/RTCP,登录之后点击VIE,选择default->Rational->View Dashboard。
选择Start stub,
可以在弹出的窗口中配置在哪台装有Agent的机器上启动,启动Stub。
当状态成为Ready时,表示成功启动。
还是保持Web services不可用的状态,在RIT中再次运行testAdd测试用例,如果测试成功通过,查看RTCP,可以发现计数器由0变为1,表示RTCP中发布的服务虚拟化被成功调用。
五、 RIT项目
解压之后用RIT打开。
展开阅读全文