RO29 – 使用服务测试器

来源:互联网 发布:华硕黄静 知乎 编辑:程序博客网 时间:2024/06/05 18:14
 
RO29 – 使用服务测试器
本文快速的介绍RemObjects的服务测试器,一个同时支持RemObjects SDK.NETDelphi版本的适用工具
服务测试器可以将你的RemObjects SDK服务置于高负载的环境下做压力测试,例如测试不同的通讯通道对服务执行和网络负担的影响.也可以生成测试报表,保存重用测试环境,或将测试嵌入到QA.
运行服务测试器
可以直接在IDE (Visual StudioDelphi) 中点击 "RemObjects SDK | Service Tester" 菜单或开始菜单中启动服务测试器:
启动后出现如下图界面:
注意: Visual Studio中包含其他的选项.选择File | Add Item菜单项向项目中加入新的.roTest 文件. 第一次打开(在解决方案管理器中双击)时弹出向导;以后则直接弹出这个测试的服务测试器.
服务测试器提供了"Create a new Test" 向导引导你创建一个新的测试.为了更好的让你理解测试器的工作原理本文建立一个复杂的测试项目.一旦你熟悉了这些步骤就能很方便的使用向导了.
定义连接
服务测试器使用预连接与你的服务对话.由于需要与服务交互,所以连接包含通道和消息组件.
在工具栏点击"Server Connections"按钮(Alt+C)创建新连接. 弹出服务连接对话框(Server Connections dialog):
点击ADD按钮增加新的连接. 新连接显示在列表中后可以重命名,在下拉列表中选择通道和消息格式.我们将之命名为"Local MegaDemo". 由于我们要测试本机的MegaDemo 服务应用程序, 选择 BinMessage WinInetHttpChannel:
如图,很多你用过的通道都可以在这里选择(包含新的Super通道).
选择通道和消息后可以在右边的窗口中看到它们的属性.
现在我们只修改TargetURL属性, 连接到MegaDemoURL "http://localhost:8099/bin",.
这时可以运行MegaDemo 服务并激活其HTTPTCP选项.运行MegaDemo 服务后点击Test按钮看连接是否成功.如果一切顺利,你将会看到弹出的"Library NewLibrary retrieved successfully"对话框.
如果发生错误,检查是否运行并激活服务,并在检查一下通道和消息属性.
点击OK按钮关闭服务连接对话框.你将在工具栏中看到选中的"Local MegaDemo" 连接:
开始测试
现在万事俱备,我们开始与服务通讯.首先,点击工具栏的Load RODL按钮(Alt+L). 将引发服务测试器连接到服务,取得RODL文件并编译其接口.你将在服务测试器的底部消息面板中看到详细信息:
完成这个步骤后,服务测试器激活设置标签,打开服务名称下拉框. 选择Mega Demo中定义的唯一的服务 NewService,然后打开操作下拉框,选择 Sum.
Sum函数的参数列表将自动填充好 (本例中是两个整数参数AB).输入测试参数:
点击Run Once运行测试服务器. 服务测试器将向服务端发送调用,服务端执行Sum方法并将运行结果返回:
可见我们的调用成功了.现在我们对服务做压力测试,看如何处理高负载请求的情况. 在参数列表上方,可以看到一些编辑框和复选框,从中可以设置压力测试参数. 首先, 可以确定对这个服务同时运行多少个线程. 这里我们输入10. 下一步,设置每个线程向服务端发送多少个请求. 由于Sum方法执行得非常快,并且我们又是在本地测试,所以应该设置一个较大的数量,这里我们输入1000.
点击 Run Test (Alt+R)按钮, 服务测试器将启动10个后台线程,每个线程都连续的向服务端发送1000Sum方法的调用.服务测试器同时激活测试状态页面, 从中可看到实时的测试进度,包括每个线程请求的完成百分比, 和一些说明测试吞吐量的图表:
测试完成后,可以在报表子页面中得到一个完整的测试报表.
复杂类型
除了像整数和String等简单类型外,服务测试器也可以测试接收和返回复杂类型(结构体或二进制数组)的服务方法.
看是如何做的,返回到设置(Setting)标签选择EchoPerson操作. 参数列表将重新填充为EchoPerson函数的参数列表, 其中包含两个"TPerson"类型.
如果你选择了aPerson参数,可以看到右边的对象查看器(Object Inspector)列表,可以在这里编辑每个TPerson参数的成员:
点击Run Once按钮或运行完整测试,你可以在查看器中看到输出参数anotherPerson的成员值.
同样还可以查看数组(测试TestStringArray方法)或二进制类型(测试EchoBinary方法):
附加特性
最后我们强调一下服务测试器的一下附加特性.
首先可以在.roTest文件中保存测试设置,稍候重用. 这样可以为你的服务创建一系列的同类型测试,例如,结合QA和回归测试创建广泛的测试组和.
也可以在.roTestResult文件中保存测试结果,以后可以在资源管理器中双击文件查看.这样可以比较前后两次的测试结果,例如发现新引入的瓶颈或确认执行的改进情况等.
如果你使用了RemObjects 调试服务(DebugServer), 通过点击工具栏中的调试按钮或使用带/debug开关的命令行参数启动服务测试器,可以在测试到调试服务过程使用附加的调试日志.. 另外,这将为应用程序的调试服务记录所有的信息包(压缩的以及未被压缩的).
如果你使用服务测试器测试Data Abstract 服务应用程序,底部的Data Grid标签可以查看包含在二进制类型中接收的Data Abstract数据集合.
 
原创粉丝点击