位置:首頁 > Java技術 > JMeter教學 > jMeter Webservice測試計劃

jMeter Webservice測試計劃

在本章中,我們將學習如何創建一個測試計劃,測試一個WebService。對於我們的測試目的,我們已經創建了一個簡單的 Web 服務項目,並將其部署在 Tomcat 服務器上本地。

創建WebService項目

要創建一個 Web 服務項目中,我們使用了Eclipse IDE。首先編寫服務端接口 HelloWorld 包下com.yiibai.ws。 HelloWorld.java 的內容如下:

package com.yiibai.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)
public interface HelloWorld{

@WebMethod String getHelloWorldMessage(String string);

}

這個服務有一個的方法 getHelloWorldMessage 需要字符串 參數。

下一步創建實現類 HelloWorldImpl.java 在包 com.yiibai.ws 下。

package com.yiibai.ws;

import javax.jws.WebService;

@WebService(endpointInterface="com.yiibai.ws.HelloWorld")
public class HelloWorldImpl  implements HelloWorld  {
	@Override
	public String getHelloWorldMessage(String myName){
		return("Hello "+myName+" to JAX WS world");
	}

}

作為下一個步驟,讓本地發布此Web服務通過創建端點出版商和公開此服務的服務器上。

publish方法有兩個參數:

  • 端點URL字符串。

  • 實現程序對象 HelloWorld 實現類,在這種情況下,這是作為一個Web服務公開在以上參數中提到的由URL標識的端點。

HelloWorldPublisher.java 內容如下所示:

package com.yiibai.endpoint;

import javax.xml.ws.Endpoint;

import com.yiibai.ws.HelloWorldImpl;

public class HelloWorldPublisher {

	public static void main(String[] args){
		Endpoint.publish("http://localhost:9000/ws/hello", new HelloWorldImpl());
	}
}

接下來修改web.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, 
Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
    <listener>
        <listener-class>
                com.sun.xml.ws.transport.http.servlet.WSServletContextListener
        </listener-class>
    </listener>
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>
        	com.sun.xml.ws.transport.http.servlet.WSServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>120</session-timeout>
    </session-config>
</web-app>

要部署的 web 服務應用程序,我們需要 sun-jaxws.xml 配置文件,這個文件的內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<endpoints
  xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
  version="2.0">
  <endpoint
      name="HelloWorld"
      implementation="com.yiibai.ws.HelloWorldImpl"
      url-pattern="/hello"/>
</endpoints>

現在,所有文件都準備好目錄結構看起來會像下麵的圖片:

Webservice Dir structure

現在,這個應用程序創建一個WAR文件。選擇 project > right click > Export > WAR文件。hello.war 文件保存Tomcat 服務器 webapps文件夾下。現在啟動Tomcat服務器。在服務器啟動後,你應該能夠訪問web服務可以通過以下網址:  

http://localhost:8080/hello/hello

創建JMeter測試計劃

現在,讓我們創建一個測試計劃,測試上麵的 web服務。

重命名測試計劃

通過點擊啟動JMeter的窗口 /home/manisha/apache-jmeter-2.9/bin/jmeter.sh. 點擊測試計劃節點上。重命名此測試計劃節點 WebserviceTest.

WS Test Plan

添加線程組

添加一個線程組,這是所有其他元素,如取樣器,控製器,監聽的占位符。右鍵單擊我們的測試計劃 WebserviceTest(our Test Plan) > Add > Threads(Users) > Thread Group。線程組將添加根據測試計劃(WebserviceTest)的節點。 

接下來,讓我們修改線程組的默認屬性,以滿足我們的測試。改變以下屬性:

Name: webservice user

Number of Threads (Users): 2

Ramp-Up Period: leave the the default value of 0 seconds.

Loop Count:2

WS Test Users

添加SAMPLER-SOAP/XML RPC請求

現在,我們已經定義了用戶,它是時間定義,他們將要執行的任務。我們將添加 SOAP/ XML-RPC 請求元素。點擊鼠標右鍵得到添加菜單,然後選擇 Add > Sampler > SOAP/XML-RPC Request,選擇元素樹中的SOAP/ XML-RPC請求,並在下麵的圖片編輯下列屬性:

這個元素中輸入下列詳細信息:

Name: SOAP/XML-RPC Request

URL: http://localhost:8080/hello/hello?wsdl

Soap/XML-RPC Data: Enter the below contents

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://ws.gitbook.net/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:getHelloWorldMessage>
     <arg0>Manisha</arg0>
         
      </web:getHelloWorldMessage>
   </soapenv:Body>
</soapenv:Envelope>
WS Test request

添加監聽器

需要添加到測試計劃中的最後一個元素是一個監聽器。此元素是負責所有的 HTTP 請求的結果存儲在一個文件中,並呈現出可視化的數據模型。

選擇 webservice 用戶元素,並添加一個查看結果樹監聽器(Add > Listener > View Results Tree).

WS Test request

運行此測試計劃

現在保存的以上測試計劃 test_webservice.jmx。執行本測試計劃使用 Run > Start  選項。

查看輸出

下麵的輸出,可以看到在監聽器中。

WS Test ResultWS Test ResultWS Test Result

可以看到在過去的圖像響應消息 "Hello Manisha to JAX WS world".