其實可以用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、最終執行的請求結果如下圖:





