本文以實例講解web services接口測試操作,內容包括:腳本生成、參數化和接口與接口間的取值關聯操作。
網站“http://www.webxml.com.cn/zh_cn/web_services.aspx”有很多開放的接口可供大家練習。
這次我們以“中文<->英文雙向翻譯WEB服務”接口為實例講解web services接口測試:
1.1 生成腳本
1) 選擇Web Services協議

2) 添加服務調用:打開Manage Services添加WSDL

3) 調用接口:打開Add Service Call在Operation下拉框,我們可以看到根據WSDL文件加載了6個接口方法,這時我們選擇中"Translator"接口方法。

下面是Translator的解析:
輸入參數:wordKey = 單詞; 返回數據:DataSet。(包括全部數據三個DataTable)
如下圖所示,我們用soapUI執行Translator方法輸入參數值“services”后返回的結果

4) 輸入參數:回到Web Service Call窗口,“Input Arguments”下就是該方法的參數,如下圖所示,Translator下有一個參數"wordKey",這時我們選中"wordKey"在Value中輸入參數值“services”

5) 點擊“OK”后就生成了web_service_call,如下圖所示,運行返回一組數據。(日志中有中文亂碼,暫時不懂解決)

1.2 參數化
web services的參數化很簡單,還是回到web service call窗口,直接選擇參數進行參數化即可,如下圖所示:

生成腳本如下:
1.3 接口間的參數關聯
接口測試時,難免會出來接口之間參數傳遞,下面來說說接口間的參數關聯。
以“400個國內外主要城市天氣預報Web服務”接口為實例 |
| Endpoint: http://ws.webxml.com.cn/WebServices/WeatherWebService.asmx |
| Disco: http://ws.webxml.com.cn/WebServices/WeatherWebService.asmx?disco |
| WSDL: http://ws.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl |
如下圖所示,我們先添加了兩個接口方法getSupportProvince和getSupportCity,在getSupportCity方法中我們暫時不參數化,而是先直接給“byProvinceName”賦了一個值“廣東”。下面我們就通過修改腳本從getSupportProvince結果中取值給byProvinceName。

打開“Tree”視圖 > 選擇“getSupportProvince_101”> 打開“SnapShot”標簽頁 > 點擊“Response”獲取getSupportProvince的結果列,如下圖所示:

找到是“廣東”的返回值后,右鍵選擇“save value in parameter..”

彈出XML parameter Properties窗口,如下圖所示,這次關聯是以XPath路徑查找返回值的。這時我們輸入參數名稱“ParamValue_Province”即可。

點擊“OK”,腳本中就生成了關聯函數lr_xml_get_values,如下圖所示,生成並調用ParamValue_Province

運行,查看ParamValue_Province的取值,如下圖所示為“廣東”

如何取一組關聯數據:
如果要取得所有省份就把
1) “FastQuery”改為“Query”;
2) Xpath: “/Envelope/Body/getSupportProvinceResponse/getSupportProvinceResult/string”;
3) 增加屬性"SelectAll=yes"。

如下圖,輸出了ParamValue_Province數組,我們取了第24個賦值到下一個方法

