其實可以用jmeter兩種sampler進行webservice的測試:
1、SOAP/XML-RPC Request(但是在jmeter3.2以后版本中已經取消了這個取樣器)
2、HTTP請求
下面分別介紹兩種方式
一、首先需要使用soupUI工具抓取webservice接口的部分需要的信息。
1、新建項目
2、新建成功的項目信息如下圖:
3、選擇要測試的接口,右鍵新建request
4、編輯報文內容,點擊左上角的綠色三角執行按鈕,右側窗口查看接口請求結果
5、可以復制下發送的報文的格式
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://WebXml.com.cn/">
<soap:Header/>
<soap:Body>
<web:getSupportCity>
<!--Optional:-->
<web:byProvinceName>?</web:byProvinceName>
</web:getSupportCity>
</soap:Body>
</soap:Envelope>
二、使用SOAP/XML-RPC Request(但是在jmeter3.2以后版本中已經取消了這個取樣器)形式進行測試,以下隨便放一張圖,因為我用的jmeter版本是3.3,么有SOAP/XML-RPC Request sampler,而是主要用的第二種測試形式。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://WebXml.com.cn/"> <soapenv:Header/> <soapenv:Body> <web:getTVstationString> <web:theAreaID>12</web:theAreaID> </web:getTVstationString> </soapenv:Body> </soapenv:Envelope>
soapaction的地址:為第1行數據和第4行接口的相疊加的內容
1 web="http://WebXml.com.cn/" 4 <web:getTVstationString>
形成地址:http://WebXml.com.cn/getTVstationString
對於公共的webservice接口,可以使用soapUI進行抓取,或者是其他工具去抓取發送報文的格式
三、使用HTTP請求sampler來測試webservice接口
1、建立HTTP請求,如圖,請求內容寫在BODY DATA里,選擇方法為post
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getSupportCity xmlns="http://WebXml.com.cn/"> <byProvinceName>河南</byProvinceName> </getSupportCity> </soap:Body> </soap:Envelope>
2、建立HTTP頭信息,如下
Soapaction地址和第一種方法一致
3、接着建立下一個接口請求,方式同上
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getWeatherbyCityName xmlns="http://WebXml.com.cn/"> <theCityName>${b1}</theCityName> </getWeatherbyCityName> </soap:Body> </soap:Envelope>
4、最終執行的請求結果如下圖:
