Loadrunner12中針對WebServices協議的三種腳本開發模式
一、webservices協議簡介
webservices是建立可交互操作的分佈式應用程序的新平臺,它通過一系列的標準和協議來保證程序之間的動態連接。其中最基本的協議包括soap,wsdl,uddi.
1、SOAP(simple object access protocl)
SOAP是消息傳遞協議,它規定了web services之間如何傳遞消息。
SOAP基於xml和xsd,xml是soap的數據編碼方式。
2、WSDL
(web services Description Language)
WSDL是web services的定義語言,和soap一起構成web服務的核心結構單元。
wsdl協議規定了有關webservices描述的標準。
3、UDDI
UDDI是訪問登記的標準,它建立了一個平臺獨立,開放的框架,通過英特網來描述服務,發現業務並整合業務服務。
簡單來說,UDDI用於集中存放和查找wsdl描述文件,起著目錄服務器的作用。
二、webservices協議腳本
我們在性能測試的工作中,難免會遇到webservices協議的接口。
這裡我簡單介紹一下用loadrunner12來開發webservices協議腳本的三種模式,咱們就以天氣預報的網站來為例吧:
1、web_service_call模式
◆ 啟動“virtual user Generator”
新建“web services”虛擬用戶
◆ 選擇上方SOA Tool中的Add Service Call
如下圖:
◆ 彈出New Web Service Call對話框
選擇Service-import service
◆ 輸入要測試的網址
◆ 下面選擇Operation
輸入城市,以及設置獲取返回值參數。
◆ 點擊OK後,得到下面的腳本
◆ 然後做參數化,斷言
◆ 最後保存,設置日誌級別,然後Replay我們的腳本
2、soap_request模式
◆ 打開WeatherWebService網站
◆ 複製上面的代碼,在notepad++中新建一個文件,將代碼粘貼上去,保存到D盤。
然後在loadrunner12中,點擊下圖的import SOAP。
◆ 在對話框中,我們輸入保存的xml文件地址。
輸入URL,URL=http://{Host}+{POST}
參數從上圖所示取,輸入對應的SOAPAction,具體如下圖所示
◆ 點擊OK,生成下面的腳本
◆ 這裡有個難題就是如何做xml斷言?
我們看一下下圖的響應示例:
這裡引入lr_xml_get_values函數來獲取xml的返回值。
XPath query中填入city值的xpath定位的絕對路徑:
/Envelope/Body/getWeatherbyCityNameResponse/getWeatherbyCityNameResult/string[2]
◆ 最後加入事物函數,做斷言
◆ 保存後點擊Replay,得到下面的結果:
3、web_custom_request模式
輸入對應的URL,body裡面輸入SOAP的請求體。
點擊確定,最後生成如下的代碼
後面做腳本強化就行了。
閱讀更多 檸檬班軟件測試 的文章