JMeter Webservice測試計劃
創建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> |
現在,所有文件都準備好目錄結構看起來會像下面的圖片:
現在,這個應用程序創建一個WAR文件。選擇 project > right click > Export > WAR文件。hello.war 文件保存Tomcat 服務器 webapps文件夾下?,F在啟動Tomcat服務器。在服務器啟動后,你應該能夠訪問web服務可以通過以下網址:
http://localhost:8080/hello/hello
創建JMeter測試計劃
現在,讓我們創建一個測試計劃,測試上面的 web服務。
重命名測試計劃
通過點擊啟動JMeter的窗口 /home/manisha/apache-jmeter-2.9/bin/jmeter.sh. 點擊測試計劃節點上。重命名此測試計劃節點 WebserviceTest.
添加線程組
添加一個線程組,這是所有其他元素,如取樣器,控制器,監聽的占位符。右鍵單擊我們的測試計劃 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
添加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.yiibai.com/"> <soapenv:Header/> <soapenv:Body> <web:getHelloWorldMessage> <arg0>Manisha</arg0> </web:getHelloWorldMessage> </soapenv:Body> </soapenv:Envelope> |
posted on 2013-10-30 13:53 順其自然EVO 閱讀(1622) 評論(0) 編輯 收藏 所屬分類: jmeter and badboy