基于.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接口测试小工具,大家如果有什么好的建议,请留言告诉我:)

转载于:https://www.cnblogs.com/zhuweisky/p/3727219.html

动手写一个Remoting接口测试工具(附源码下载)相关推荐

  1. C#中实现一个TreeGridView(树形表格)附源码下载

    场景 效果 示例源码下载 https://download.csdn.net/download/badao_liumang_qizhi/11593399 实现 新建一个Winform程序,然后在页面上 ...

  2. 三分钟手写一个迷你jQuery,附源码

    诚然,不管前端技术怎么发展,重心都不会变,就是 操作DOM + 获取数据. 下面的代码演示了如何快速手写一个简单的jQuery: <!DOCTYPE html> <html lang ...

  3. OpenCV2.3的cvCalcHist函数有问题?255级值总为0,索性自己写一个直方图计算函数,附源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 我在写直方图规定化的代码过程中,发现OpenCV ...

  4. 500 行代码写一个俄罗斯方块游戏(附源码)

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 导读:本文我们要制作一个俄罗斯方块游戏. 作者 | 派森学python 来源 | https://segmentfault.com/a/1 ...

  5. JS sojson.vX在线解密工具-附源码

    前言 此文仅用于技术科普,教育与研究用途,请勿用于商业甚至非法用途,否则一切后果自负.若用户利用此文章而受到惩处,本人及本平台对其行为概不负责,亦不承担任何连带责任. 在线工具 Sojson.v4ht ...

  6. 表白弹药库 - 这是我为你写的散文诗(结尾附源码)

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  7. 我搭建了一个随机「毒鸡汤」语录网站附源码下载

    小伙伴们注意:公众号的推送机制不再按照时间前后推送了,微信公众号信息流乱序.君哥建议大家把科技毒瘤君公众号置顶(设为星标⭐),以便第一时间看到推送,非常感谢~,方法如下图: 1 演示效果 ★ 遇到喜欢 ...

  8. cesium 3dtiles 加载本地数据_cesium结合geoserver实现地图空间查询(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  9. geoserver三维_cesium结合geoserver实现地图空间查询(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

最新文章

  1. Eclipse启动之四 : Eclipse核心框架启动(百度空间迁移)
  2. 爬虫:滑动验证解决方法及python实现
  3. java 静态块的作用域_java 学习笔记(一)
  4. robotframework笔记5
  5. stringbuilder删除最后一个字符_Java类-StingBuffer,StringBuilder
  6. 中blur函数_实时渲染中的软阴影技术
  7. 卡巴斯基:揭开“火焰”病毒(Flame)的神秘面纱
  8. Atitit 教育学体系 教育学主要内容多语言,教学论,心理学,体育 高等教育学 职业技术教育学 教育史
  9. 电信光纤友华PT921G,烽火HG220光猫破解关闭自带路由改桥接拨号教程
  10. MSDP RPF检测
  11. 陶哲轩实分析 3.1节 习题试解
  12. 几何公差基础知识之平面度
  13. 音乐计算机在哪里买,[计算器自带音乐在哪里]语音计算器上的音乐有什
  14. JAVA简介及视频教程
  15. 「JavaSE」-流程控制和方法
  16. 华为云存储服务分享文件的方法
  17. 【LeetCode】322. 零钱兑换 结题报告 (C++)
  18. 哔哩哔哩2020校园招聘技术类笔试卷(二)
  19. 数据库分类,市场上常见数据库
  20. 前端页面制作滚动字幕

热门文章

  1. python接收弹幕_闲着没事,尝试一下用Python爬取B站弹幕呀~
  2. nginx 限制上传文件大小
  3. 【SSL】【Apache】 配置 https/ssl
  4. 【sprinb-boot】改造成 spring-cloud 项目
  5. maven 多模块项目:单独构建某个模块
  6. 【SpringBoot】查看运行环境中所有的spring bean
  7. java程序语句的理解,[每日学习笔记][2012.07.10]使用Java理解程序逻辑(六)
  8. php遍历删除目录下文件,PHP遍历删除文件夹已经文件内的所有文件
  9. 三件套都有什么_床上用品三件套、四件套、21件套都各指什么啊?
  10. java程序设计_JAVA基础程序设计之方法