动手写一个Remoting接口测试工具(附源码下载)
? ? ? 基于.NET開發(fā)分布式系統(tǒng),經(jīng)常用到Remoting技術(shù)。在測試驅(qū)動開發(fā)流行的今天,如果針對分布式系統(tǒng)中的每個Remoting接口的每個方法都要寫詳細的測試腳本,無疑非常浪費時間。所以,我想寫一個能自動測試remoting接口的小工具InterfaceTester。而且,當分布式系統(tǒng)中的某個remoting接口出現(xiàn)bug時,該小工具可以提交需要模擬的數(shù)據(jù),以便在調(diào)試remoting服務(wù)的環(huán)境中,快速定位和解決bug。
InterfaceTester運行起來后的效果如下圖:
? ? ??
1.如何使用
(1)首先,填上要測試的并且是已經(jīng)發(fā)布的Remoting服務(wù)的地址信息。
(2)選取要測試的remoting接口所在的程序集,一般是一個dll。選定程序集后,InterfaceTester會自動搜索該程序集中定義的所有接口,并將其綁定到“接口類型”的下拉列表。
(3)從 “接口類型”的下拉列表中選擇要測試的接口。選定接口后,InterfaceTester會自動搜索該接口中定義的所有方法,并將其綁定到“目標方法”的下拉列表。
(4)從 “目標方法”的下拉列表中選擇要測試的方法,InterfaceTester會根據(jù)該方法所要求的參數(shù),自動生成參數(shù)錄入界面。
(5)在參數(shù)錄入界面上,輸入用于測試的參數(shù)的值,然后,點擊“調(diào)用”按鈕, InterfaceTester便會調(diào)用上述指定地址的remtoing服務(wù)的指定接口的指定方法,如果調(diào)用的方法有返回值,則會在“調(diào)用返回”的panel上顯示該值。如果返回的不是一個簡單類型,而是一個對象,則“調(diào)用返回”的panel上將會以xml的形式顯示這個對象的各個屬性值。
?
2.實現(xiàn)原理
就這個小工具的實現(xiàn)而言,主要用到的技術(shù)就是反射(reflection)。另外,需要注意的就是,根據(jù)參數(shù)的類型,生成錄入界面。具體細節(jié)大家可以參見源碼。目前,InterfaceTester支持的被測試方法的參數(shù)類型是有限制的:
(1)支持簡單的數(shù)據(jù)類型,像string、int、bool等。
(2)支持List<>、I List<>、IDictionary<,>、Dictionary<,>等集合類型。
(3)支持簡單的數(shù)據(jù)結(jié)構(gòu)的class(如像Point、自定義的Entity等)。
?
3.源碼解決方案
下載源碼并用VS打開后,解決方案下有三個項目:InterfaceTester、DemoInterface、DemoService。
(1)InterfaceTester項目是我們本文的主角:用于remoting接口測試的小工具。
(2)DemoInterface和 DemoService則是為了試試小工具而構(gòu)建的一個小demo。 DemoInterface定義了發(fā)布的remoting服務(wù)的接口, DemoService則是發(fā)布的remoting服務(wù)。
在試用時,先啟動 DemoService項目,再啟動InterfaceTester,就可以試試我們的小工具功能了。
?
4.源碼下載
對于這個remoting接口測試小工具,大家如果有什么好的建議,請留言告訴我:)
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhuweisky/p/3727219.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的动手写一个Remoting接口测试工具(附源码下载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DP专辑之最长公共子序列及其变形
- 下一篇: 如何阅读书籍