五六年前我測試了自己的第一個web服務。該服務是一個更大的系統重寫的一部分。在這一階段,我們用web服務集成了一個遺留主機應用和一個新的web平臺。我們在測試辦公方面的web服務有若干工具: SoapScope ,一個國產的基于瀏覽器的測試工具,我們當中還有一些人直接編寫Java或Ruby代碼進行測試。我還記得,那時候就在想,應該有更容易的測試方式才對。
那時候項目開展有兩個星期了,當時我正在設法獲取幾個可以測試服務的Ruby庫,項目組里面有人向我推薦了 soapUI ,那時候soapUI還很年輕——只有基本功能和性能測試能力,且還沒有專業版。從我第一次使用soapUI開始,它就成為了我測試服務的缺省選擇。
現在,soapUI除了開源版本以外還有商業的專用版。它們提供了對WS、REST及以HTTP為基礎的服務的支持,還有最近宣布的對JMS、AMF及 JDBC的支持。在本文中,我們來看一個對WSDL服務進行功能和性能測試的例子。在將來的文章中我們還將討論負載測試、web服務模擬以及與 JUnit 的集成。對于這些文章中所涉及的例子應用,我們都會考慮Atlassian JIRAsoap web服務。這是一個很好的、非凡的界面,也有一個公開的例子。
創建第一個項目
第一次打開soapUI時,不會有工程加載進來。要想創建新工程的話,右鍵單擊Project圖標然后選擇New soapUI Project,如下圖1所示:
圖1:在soapUI中創建一個新項目。
第一步:在soapUI中創建一個新項目
這會彈出New soapUI Project的對話框,如下圖2所示。輸入項目的名字及所建項目的初始WSDL地址。如果WSDL變了,你可以在后面導入更新—不要以為拿到最后版本才 能開始。在本例中,我會使用自己的JIRAweb服務實現以便可以執行測試。如果你要跟著做的話,可以將你的項目指向Atlassian的例子,該例子可 在此處找到。
圖2: 命名項目并導入初始WSDL。
第二步:命名項目并導入初始WSDL
你會看到幾個復選框,讓你選擇在項目創建過程中由soapUI自動執行的任務。若是想全部都選上,歡迎,不過通常我只會選“為所有的操作創建樣例請求 嗎?(Create sample requests for all operations?)”這個復選框。一旦完成新項目信息的輸入,點擊OK按鈕。
圖3:顯示在項目下面的各種JIRA請求,有一個請求窗口在soapUI主工作區打開。
項目加載完成后,你應該看一看所有不同的請求的細節,這些細節均在圖3中項目底下的WSDL定義中顯示。要想觀看這些請求細節,你可以展開請求并雙擊圖中所示的“Request 1”按鈕。應該就能打開soapUI主工作區的一個窗口。
第三步:顯示在項目下面的各種JIRA請求,在soapUI主工作區打開一個請求窗口
圖4:用綠色箭頭提交一項服務請求。
要想手工提交請求給web服務,只需點擊請求窗口中的綠色箭頭—如圖4所示。
第四步:用綠色箭頭將請求提交給服務。
如果你對這個請求—addVersion請求執行上述動作,在沒有做出任何改變的情況下,你會得到如下表1所示的包含有例外的響應:
表 1:例外:未傳遞合法參數數據。
以下是引用片段:
… <faultcode>soapenv:Server.userException</faultcode> ?????????<faultstring>java.lang.NumberFormatException:?Invalid?boolean</faultstring> … |
這一例外會得到返回,有幾個原因。首先,我們還沒有登錄進去。如果你向下滾動我們項目已有的請求,就會看到有一個登錄請求。其次,請求中所有的數據值上面都有問號,正如下面的列表2所示。在提交任何請求之前,你應該想要輸入測試值到看到出現有問號的那些字域中去。
列表2:缺省情況下,請求的值不會彈出。
以下是引用片段:
… <in0?xsi:type="xsd:string">?</in0> ?????????<in1?xsi:type="xsd:string">?</in1> ?????????<in2?xsi:type="bean:RemoteVersion"?xmlns:bean="http://beans.soap.rpc.jira.atlassian.com"> ????????????<id?xsi:type="xsd:string">?</id> ????????????<name?xsi:type="xsd:string">?</name> ????????????<archived?xsi:type="xsd:boolean">?</archived> ????????????<releaseDate?xsi:type="xsd:dateTime">?</releaseDate> ????????????<released?xsi:type="xsd:boolean">?</released> ????????????<sequence?xsi:type="xsd:long">?</sequence> ?????????</in2> … |
這時候,你可以瀏覽任何的請求;查看不同的請求參數;改變請求并人工運行來看那些響應。總而言之,你應該可以瀏覽web服務并與之交互。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
