• 动手写一个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,就可以试试我们的小工具功能了。

    4.源码下载

     

      对于这个remoting接口测试小工具,大家如果有什么好的建议,请留言告诉我:)

  • 相关阅读:
    第九章 类的定义属性和方法
    第八章 函数作用域
    第七章 函数基础
    第六章 控制流程
    Http请求
    Django学习之-带参数的路由应用
    Django学习之--Ajax
    第二章:Django项目实例
    第一章:Django简介
    pytest汇总
  • 原文地址:https://www.cnblogs.com/sylone/p/6097091.html
Copyright © 2020-2023  润新知