qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

动手写一个Remoting接口测试工具

 基于.NET开发分布式系统,经常用到Remoting技术。在测试驱动开发流行的今天,如果针对分布式系统中的每个Remoting接口的每个方法都要写详细的测试脚本,无疑非常浪费时间。所以,我想写一个能自动测试remoting接口的小工具InterfaceTester。而且,当分布式系统中的某个remoting接口出现bug时,该小工具可以提交需要模拟的数据,以便在调试remoting服务的环境中,快速定位和解决bug。
  InterfaceTester运行起来后的效果如下图:
  1.如何使用
  (1)首先,填上要测试的并且是已经发布的Remoting服务的地址信息。
  (2)选取要测试的remoting接口所在的程序集,一般是一个dll。选定程序集后,InterfaceTester会自动搜索该程序集中定义的所有接口,并将其绑定到“接口类型”的下拉列表。
  (3)从 “接口类型”的下拉列表中选择要测试的接口。选定接口后,InterfaceTester会自动搜索该接口中定义的所有方法,并将其绑定到“目标方法”的下拉列表。
  (4)从 “目标方法”的下拉列表中选择要测试的方法,InterfaceTester会根据该方法所要求的参数,自动生成参数录入界面。
  (5)在参数录入界面上,输入用于测试的参数的值,然后,点击“调用”按钮, InterfaceTester便会调用上述指定地址的remtoing服务的指定接口的指定方法,如果调用的方法有返回值,则会在“调用返回”的panel上显示该值。如果返回的不是一个简单类型,而是一个对象,则“调用返回”的panel上将会以xml的形式显示这个对象的各个属性值。
  2.实现原理
  就这个小工具的实现而言,主要用到的技术就是反射(reflection)。另外,需要注意的就是,根据参数的类型,生成录入界面。具体细节大家可以参见源码。目前,InterfaceTester支持的被测试方法的参数类型是有限制的:
  (1)支持简单的数据类型,像string、int、bool等。
  (2)支持List<>、I List<>、IDictionary<,>、Dictionary<,>等集合类型。
  (3)支持简单的数据结构的class(如像Point、自定义的Entity等)。
  3.源码解决方案
  下载源码并用VS打开后,解决方案下有三个项目:InterfaceTester、DemoInterface、DemoService。
  (1)InterfaceTester项目是我们本文的主角:用于remoting接口测试的小工具。
  (2)DemoInterface和 DemoService则是为了试试小工具而构建的一个小demo。 DemoInterface定义了发布的remoting服务的接口, DemoService则是发布的remoting服务。
  在试用时,先启动 DemoService项目,再启动InterfaceTester,就可以试试我们的小工具功能了。

posted on 2014-05-23 10:08 顺其自然EVO 阅读(235) 评论(0)  编辑  收藏 所属分类: 测试学习专栏


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜