SoapUI 使用手冊

來源:互聯網
上載者:User

標籤:style   blog   http   java   color   使用   

 一.概述

1.1 soapUI的介紹

由於 Web 服務是被程式調用的, 一般不會提供介面讓終端使用者或測試人員直接使用,在 SoapUI 等工具出現之前,測試人員不得不自己編寫程式來測試它, 這就要求測試人員花費很大的精力瞭解底層的介面,調用關係和詳細的協議,導致他們不能把注意力集中到測試中。 

soapUI是當前比較簡單實用的開源Web Service 測試載入器,提供傳統型應用程式和IDE外掛程式程式兩種使用方式。

soapUI通過SOAP(Simple Object Access Protocol)/HTTP(Hypertext Transfer Protocol)來調用Web Service,從而實現對Web Service 的功能、負載、符合性測試。不僅可以測試基於SOAP的WEB服務,還可以測試基於REST風格的WEB服務。

SoapUI基於Java開發,支援多個平台,開源的,安裝非常簡單。能夠快速構建項目和組織測試案例是該工具的一大特性。讀者可以到 SoapUI的 官方網站下載一個安裝包 ( 本文使用的是 Window 版本 3.0.1),直接安裝即可。在該安裝包中,包括了一個 SoapUI 所需要的 JRE1.6 版本。安裝完畢以後,讀者需要設定 JAVA_HOME 變數指向到相應的 JRE 目錄,同時修改 PATH 變數,將 JRE1.6 的 bin 目錄添加進去。

1.2 soapUI的版本說明

soapUI有普通版本和專業版本。

  • 普通版本

可以實現一般的功能,不需要申請License即可使用。

  • 專業版本
  1. 相對於普通版本有更多更靈活的測試步驟可以添加。
  2. 專業版本需要申請一個免費試用的License才可使用。試用License的有效期間是兩周。License申請很簡單,只需要在”soapUI Pro License”對話方塊中單擊”Apply for Trial ”,然後填上郵箱、姓名和公司名稱,一分鐘左右郵箱中就能收到試用的License.但是,一個郵箱地址只能申請一個License,即兩周的試用期過後,不能再使用之前申請時使用的License再次申請。
  3. 商業的非開源版本

 

1.3 soapUI網站資訊

SoapUI的網站資訊如下:

soapUI的官方網址為:http://www.soapui.org/

soapUI的為http://sourceforge.net/projects/soapui/files/

 

二.安裝

2.1安裝過程

         安裝過程非常簡單,省略。需配置JDK.

 

三.使用

3.1 soapUI基本操作

3.1.1建立工程

1. 啟動soapUI,按右鍵左側導航樹中的Project,選擇New soapUI Project(Ctrl-N)

 

2. 系統彈出”New soapUI Project”對話方塊,如:

我們這裡以“中國電視節目預告Web服務”:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl為例,建立WSDL項目。

輸入項目名稱:ChinaTV

WSDL:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl

 

其中WSDL可以是URL也可以是WSDL的靜態檔案。

預設選上:  

Create sample requests for all operations?(說明:為每個介面建立一個請求的例子)

 

3. 載入

 

 

 

3.1.2  單個服務的請求

SoapUI工具會解析WDSL檔案擷取服務介面,建立請求。,該服務提供8個介面,並根據soap的版本不同提供兩種。

 

點擊展開“getTVstationDataSet”的Soap請求“Request 1”:

 

我們看到的是服務要求Soap訊息,其中”?”問號代表的是入參,將其修改為請求入參值“-1”(本執行個體中,-1代表中央電視),然後點擊表徵圖,獲得請求結果,

 

我們看到返回的soap訊息及其中的資料。

 

 

3.1.3 儲存工程

      儲存後的工程的格式為.xml的格式的檔案,以project名稱+“- soapui-project.xml”命名。

 

         儲存所有工程

                            如果要一次儲存soapUI左側導航樹中的所有工程的話,請直接單擊工具列中的” ”.

         儲存所有工程並退出

                       如果要一次儲存soapUI左側導航樹中的所有工程,並且退出soapUI的話,點擊菜單”File”--“Exit without saving”.

         儲存單個工程

                    要儲存單個工程時,請按右鍵需要儲存的工程的名稱,在捷徑功能表中選擇“Save Project”。如果要另存新檔工程,則選擇“Save Project As”.

 

         工程命名規則:項目名稱-soapui-project.xml

 

3.1.4  刪除工程

                如果要刪除某個工程,右鍵工程名稱,選擇“Remove”

     

3.1.5 匯入工程

如果要匯入之前儲存過但已經從soapUI的工程導覽列中刪除的工程。選擇菜單”File”—“Import Porject”.

 

3.2  soapUITestSuite功能

3.2.1 構建測試案例

選擇項目“ChinaTV”並右鍵,選擇“New TestSuite”,構建一個測試套件,如:

 

然後,在請求getTVstationDatsSet的”Request 1”右鍵,選擇“Add  To TestCase”,建立TestCase並將服務要求加入到TestCase中:

 

這樣我們就擁有了第一個測試案例:如

 

因為上述過程中已經設定了服務要求入參,所以這裡我們雙擊TestCase1點擊可以直接運行,

 

我們看到了“綠條”,這表示運行通過。

 

3.2.2 增加檢查點

,開啟服務要求getTVstationDataSet――Request 1 ,點擊,添加檢查點:

 

檢查點有多種類型,這裡我們選擇“Contains”,並輸入檢查點“中央電視台”:

 

我們運行服務要求getTVstationDataSet――Request 1,

 

可以看到檢查點是有效:Contains-VALID.

 

3.2.3組織測試步驟

將getAreaDataSet(獲得支援的省市、地區和分類電視列表)、

getTVstationDataSet(通過省市ID或分類電視ID獲得電視台列表)、

getTVchannelDataSet(通過電視台ID得該電視台頻道列表)、

getTVprogramDataSet(通過頻道ID獲得該頻道節目列表)依次加入到TestCase1的測試步驟中去,然後組織測試步驟擷取“CCTV-1”的節目列表。

 

測試步驟:

  1. 擷取“中央電視”的分類ID”-1”
  2. 擷取“中央電視”類別中的“中央電視台”ID:“39”
  3. 擷取“中央電視台”的頻道“CCTV-1”ID:”606”
  4. 擷取“CCTV-1”頻繁的節目列表

 

我們需要將服務要求getAreaDataSet結果中的“中央電視”ID“-1”作為服務要求getTVstationDataSet入參,右鍵點擊getAreaDataSet-Request 1,選擇Insert Step――Property Transfer

 

這個Property Transfer用於兩個服務要求間的互動,我們將其命名為:“AreaTransferStation”

 

Source中我們選擇getAreaDataSet-Request 1Response,Target中我們選擇getTVstationDataSet-Request 1Request,並通過指令碼選擇服務要求getAreaDataSet返回結果Soap訊息中節點(AreaList[4])中(areaID[1])的值傳遞給服務要求getTVstationDataSet作為入參(theAreaID[1])的值。

 

來自:

 

同樣的操作步驟,我們組織好其他幾個服務要求間的互動,就組織完成一個完整的測試步驟,最後我們運行TestCase,看到全部的運行結果:

 

 

備忘:

AreaTransferStation

declare namespace diffgr="urn:schemas-microsoft-com:xml-diffgram-v1";

//diffgr:diffgram/Area/AreaList[4]/areaID[1]

 

declare namespace web="http://WebXml.com.cn/";

//web:getTVstationDataSet/web:theAreaID[1]

 

StationTransferChannel

declare namespace diffgr="urn:schemas-microsoft-com:xml-diffgram-v1";

//diffgr:diffgram/Station/TvStation[1]/tvStationID[1]

 

declare namespace web="http://WebXml.com.cn/";

//web:getTVchannelDataSet/web:theTVstationID[1]

 

ChannelTransferProgram

declare namespace diffgr="urn:schemas-microsoft-com:xml-diffgram-v1";

//diffgr:diffgram/Channe/TvChanne[1]/tvChannelID[1]

 

declare namespace web="http://WebXml.com.cn/";

//web:getTVprogramDateSet/web:theTVchannelID[1],web:theDate[1]

 

3.3 soapUI類比伺服器

soapUI類比伺服器端時,是供其他介面調用的,並能給調用它的介面提供所需要的結果。

sopaUI類比伺服器主要是MockService功能,因此,如果要類比伺服器端,在建立工程時,在“New soapUI Project”對話方塊中一定要選擇“Create MockService”。

3.4 soapUI類比用戶端

soapUI類比用戶端,即作為soapUI作為訊息發送方,將請求訊息發送到地址欄中的地址,並接收響應結果。

soapUI類比用戶端主要是”Request”功能,因此,在建立工程時,在“New soapUI Project”對話方塊中一定要選擇”Create Requests”項。

 

四.其它功能介紹

4.1 web service效能測試

soapUI可以通過測試套中的測試案例做負載測試,用以檢查Web Service效能。

 

1.按右鍵要執行效能測試的測試案例,例如:“Test Case1”,

 

 

2.在捷徑功能表中選擇“New LoadTest”,如紅色框。系統顯示對話方塊:

 

3.在“New LoadTest”中輸入負載測試的名稱。也可以保持預設值。

4.單擊“確定”。右側介面顯示建立的負載測試介面,如:

 

圖中說明:

Threads:並發線程數

Strategy:並發策略,請選擇“Simple”

Test Delay:請求間的時延。

Limit:已耗用時間限制。

 

5.為了使soapUI能夠統計出成功的請求數和失敗的請求數,需要給負載測試增加斷言。如添加檢查點,添加Not SOAP Fault等。

6.單擊“LoadTest”介面的工具列中的“”為負載測試設定參數選項。如:

 

7.單擊工具列中的“”運行負載測試。

運行結果,需要關注的參數包括:

l  cnt:發送的總請求數

l  tps:每秒的請求數

l  err:錯誤請求數

 

4.2 設定抓包工具

在soapUI上設定抓包工具TcpMon前,先在本地安裝好TcpMon工具。

TCPMon相當於一個中轉站,他可以設定接收的連接埠,目標的連接埠;

功能:可以攔截客戶和服務之間的HTTP請求和HTTP相應資訊,並查看;TCPMon是apache下的一個項目,:http://ws.apache.org/commons/tcpmon/download.cgi。

 

1.選擇“File”—Preferences.系統會彈出以下介面:

 

2.在導航樹中選擇“Tools”,介面右側顯示“Tools”項目的設定參數。

3.單擊右側的“Apache TcpMon”後的“Browser”,選擇安裝好的TcpMon工具的安裝目錄。

4.單擊OK。

5.選擇“Tools”-“Launch TcpMon”啟動抓包工具。

 

4.3 抓包工具使用介紹

抓包流程:

TcpMon工具在抓包過程中扮演的是一個代理的角色訊息流程程如下:

l  訊息發送方先將請求訊息發送給TcpMon

l  TcpMon接到請求訊息後再轉寄給目標主機。

l  目標主機接到請求訊息後,將響應訊息返回給TcpMon.

l  TcpMon接到響應訊息後,再將響應轉寄給發送方主機。

 

1.在功能表列選擇“Tools”—“Launch TcpMon”,如:

 

2.設定好監聽連接埠和目標主機的IP地址、連接埠號碼。

3.單擊“Add”.

一般來說用戶端想要請求web服務,則必須要將連接埠號碼設成9876,但是如果有了TCPMon,則用戶端可以將連接埠號碼設定成8080. 這樣TCPMon就可以監聽8080連接埠,接收到HTTP請求後顯示在介面上,然後再把請求發送到9876連接埠,並再次監聽9876連接埠發回的HTTP響應,並顯示在介面上;

 

4.如果要停止抓包,請單擊“Stop”.

 

五.可使用的WebService地址

1.中央電視台節目WebService

http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl

2.天氣預報WebService

http://www.webservicex.net/WeatherForecast.asmx?wsdl

3.查詢手機歸屬地WebService

http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl

                                                                                                      

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.