Xebium詳解10-Restful調用方式
Xebium的底層Fitnesse就支持Restful的服務方式,在自帶的用戶指南中已經有具體的命令說明,先大致提一下:
http://host:port/resource?responder&inputs
官方文檔給出的就是以上調用形式,resource就是我們之前在「目錄結構和頁面類型」中提到的腳本本體,重點在於responder(或者可以解釋為針對頁面的操作,這樣就容易理解了),另外「&」後面可以跟命令的輸入參數,可以只是"value"或者"key=value"這種形式。
這裡只選擇一些重點和實用的進行說明:
1. suite和test命令
這2個都是執行測試用的,主要用於其他系統調用Xebium使其後台運行返回執行結果,例如Jenkins的Fitnesse插件調用方式就是運用了suite或者test這個命令。suite執行頁面是TestSuite(測試集),test則是執行TestCase的。
不帶input的執行返回的是html格式結果,如果需要返回其他格式的,如xml格式,用於之後其他系統集成輸出的話,可以用?test&format=xml,那麼結果會以xml格式返回,容易用xpath去解析。
有時,我們的腳本里定義了一些頁面參數,比如:
!define a {test}
從含義上看,把字元串「test」賦給了變數a。但是我們在執行的時候卻希望傳入「game」這個串給a。那麼通過?test&a=game來傳入,多個參數只要用?test&key1=value1&key2=value2這種形式替換掉頁面上賦的默認值。這點在做登錄時很有用,用戶名,密碼都用這種方式傳入,避免了改寫腳本的麻煩。但要注意一點,http這種協議在傳值的時候會有轉義的情況發生,如果你要傳「&」字元進去,還是需要做URL encoding的。
再來說說遠程調試功能吧,要使用遠程調試功能,需要在腳本中添加如下命令行:
!define COMMAND_PATTERN {java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8005 -cp %p %m}
或者!define REMOTE_DEBUG_COMMAND {java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8005 -cp %p %m}
執行時後面跟debug/remote_debug(比如:test?debug),就可以進入遠程調試功能,執行時系統會掛起,本地用intellj或者eclipse中配置遠程調試,加斷點就可以跟進代碼。注意一點,debug適用於用java代碼開發的調試,remote_debug則適用於其他語言開發的Class調試。
2. raw命令
顧名思義,返迴文本形式的原始腳本,頁面不做任何渲染,相當於直接把結構目錄下的content.txt文件內容直接返回給你。
3. stoptest命令
當用test或者suite運行測試時,不願意等待測試完成就想中斷測試執行,那麼用這個命令,其實和用頁面在執行時,stop test這個按鈕的效果相同。
4. shutdown命令
關閉系統,如果系統啟動採用了後台運行模式,那麼關閉執行窗口並不會關係整個系統,這時用/?shutdown就可以了,很方便,遠程就可以關(但別被不法分子利用了)。
多說無益,看手冊你可以發現所有的相關命令。再我看來,Restful方式擴展了Xebium的使用方式,也是作為一個測試服務應該且必須提供的一種服務。用好Restful相當於在任何其他系統中集成了自動化測試模塊。
推薦閱讀: