写手Remoting测试工具
基于.NET开发分布式系统。经经常使用到Remoting技术。在測试驱动开发流行的今天。假设针对分布式系统中的每一个Remoting接口的每一个方法都要写具体的測试脚本,无疑很浪费时间。所以,我想写一个能自己主动測试remoting接口的小工具InterfaceTester。并且。当分布式系统中的某个remoting接口出现bug时。该小工具能够提交须要模拟的数据,以便在调试remoting服务的环境中。高速定位和解决bug。
InterfaceTester执行起来后的效果例如以下图:
1.怎样使用
(1)首先,填上要測试的而且是已经公布的Remoting服务的地址信息。
(2)选取要測试的remoting接口所在的程序集。通常是一个dll。选定程序集后,InterfaceTester会自己主动搜索该程序集中定义的全部接口。并将其绑定到“接口类型”的下拉列表。
(3)从 “接口类型”的下拉列表中选择要測试的接口。选定接口后。InterfaceTester会自己主动搜索该接口中定义的全部方法,并将其绑定到“目标方法”的下拉列表。
(4)从 “目标方法”的下拉列表中选择要測试的方法。InterfaceTester会依据该方法所要求的參数,自己主动生成參数录入界面。
(5)在參数录入界面上,输入用于測试的參数的值,然后,点击“调用”button, 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接口測试小工具,大家假设有什么好的建议。请留言告诉我:)
版权声明:本文博主原创文章,博客,未经同意不得转载。
写手Remoting测试工具的更多相关文章
- 动手写一个Remoting接口测试工具(附源码下载)
基于.NET开发分布式系统,经常用到Remoting技术.在测试驱动开发流行的今天,如果针对分布式系统中的每个Remoting接口的每个方法都要写详细的测试脚本,无疑非常浪费时间.所以,我想写一个能自 ...
- Remoting接口测试工具
动手写一个Remoting接口测试工具 基于.NET开发分布式系统,经常用到Remoting技术.在测试驱动开发流行的今天,如果针对分布式系统中的每个Remoting接口的每个方法都要写详细的测试脚本 ...
- Socket测试工具(客户端、服务端)
Socket是什么? SOCKET用于在两个基于TCP/IP协议的应用程序之间相互通信.最早出现在UNIX系统中,是UNIX系统主要的信息传递方式.在WINDOWS系统中,SOCKET称为WINSOC ...
- Linux系统性能测试工具(二)——内存压力测试工具memtester
本文介绍关于Linux系统(适用于centos/ubuntu等)的内存压力测试工具-memtester.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: ...
- Linux系统性能测试工具(一)——内存带宽测试工具mbw
本文介绍关于Linux系统(适用于centos/ubuntu等)的内存带宽测试工具-mbw.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: 内存综合性能 ...
- 转: 用 Go 写一个轻量级的 ldap 测试工具
前言 这是一个轮子. 作为一个在高校里混的 IT,LDAP 我们其实都蛮熟悉的,因为在高校中使用 LDAP 来做统一认证还蛮普遍的.对于 LDAP 的管理员而言,LDAP 的各种操作自然有产品对应的管 ...
- 利用 Python 写一个颜值测试小工具
我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起.很多人学习p ...
- 开源Web测试工具介绍
HtmlUnitHtmlUnit 是 JUnit 的扩展测试框架之一.HtmlUnit 将返回文档模拟成 HTML,这样您便可以直接处理这些文档了.HtmlUnit 使用例如 table.form 等 ...
- 使用C#winform编写渗透测试工具--Web指纹识别
使用C#winform编写渗透测试工具--web指纹识别 本篇文章主要介绍使用C#winform编写渗透测试工具--Web指纹识别.在渗透测试中,web指纹识别是信息收集关键的一步,通常是使用各种工具 ...
随机推荐
- Linux 环境下 Lua 安装(转)
系统环境:CentOS-6.2-x86_64. Lua 是嵌入式脚本语言,应用场景很广泛. 引自官网:Lua is used in many products and projects around ...
- [Unity3D]脚本中Start()和Awake()的差别
Unity3D刚開始学习的人常常把Awake和Start混淆. 简单说明一下,Awake在MonoBehavior创建后就立马调用,Start将在MonoBehavior创建后在该帧Update之前. ...
- TCP连接建立过程中为什么需要“三次握手”(转)
传输控制协议(Transmission Control Protocol, TCP)是一种面向连接的.可靠的.基于字节流的运输层(Transport layer)通信协议.是专门为了在不可靠的互联网络 ...
- Android开发被添加到桌面快捷方式
Android开发被添加到桌面快捷方式 对于一个希望拥有很多其它用户的应用来说.用户桌面能够说是全部软件的必争之地,假设用户在手机桌面上建立了该软件的快捷方式.用户将会更频繁地使用该软件. 因此,全部 ...
- JDK5什么是新的堵塞队列线程(四)
一. 堵塞队列与普通队列: 队列是一种主要的数据类型,其典型特征是先进先出. 堵塞队列和普通队列的差别在于: 当队列为空时.从队列中获取元素的线程会被堵塞.直到其它的线程往空的队列里插入新的元素: 当 ...
- 【LeetCode】【Python解读】Container with most water
这个问题是芭芭拉在采访中遇到的,不幸的是,的复杂性O(n2)该,太失望了,难怪没有通过面试. Given n non-negative integers a1, a2, ..., an, where ...
- wpf 9张图片的连连看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- 《Javascript权威指南》13号学习笔记:使用日期和时间
一.创Date示例 1.Date类的方法和属性是非常不静,故,申请书Date属性和方法之前.必须创建Date类的实例. var date = new Date(); //以当前日期和时间创建实例. ...
- linux shell 不同进制数据转换(二进制,八进制,十六进制,base64) (转)
shell可以在不调用第3方命令,表示不同进制数据.这里总结以下表示方法.shell 脚本默认数值是由10 进制数处理,除非这个数字某种特殊的标记法或前缀开头. 才可以表示其它进制类型数值.如:以 0 ...
- windows和ubuntu 10.4双启动顺序
改动/boot/grub/grub.cfg文件 /boot/grub/grub.cfg文件,这与旧版本号不同(9.10之前版本号/boot/grub/menu.lst),并且为了安全起见,该文件默觉得 ...