Jmeter-webservice-test-plan
jMeter-Webサービステスト計画
この章では、WebServiceをテストするためのテスト計画を作成する方法を学びます。 テストのために、単純なWebサービスプロジェクトを作成し、Tomcatサーバーにローカルに展開しました。
Webサービスプロジェクトを作成する
Webサービスプロジェクトを作成するために、Eclipse IDEを使用しました。 まず、サービスエンドポイントインターフェース HelloWorld を com.finddevguides.ws パッケージに記述します。 HelloWorld.javaの内容は次のとおりです-
package com.finddevguides.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);
}
このサービスには、Stringパラメーターをとる getHelloWorldMessage メソッドがあります。
次に、実装クラス HelloWorldImpl.java をパッケージ com.finddevguides.ws の下に作成します。
package com.finddevguides.ws;
import javax.jws.WebService;
@WebService(endpointInterface="com.finddevguides.ws.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
@Override
public String getHelloWorldMessage(String myName) {
return("Hello "+myName+" to JAX WS world");
}
}
ここで、エンドポイントパブリッシャーを作成してこのWebサービスをローカルに公開し、サーバーでサービスを公開します。
公開方法は2つのパラメータを取ります-
- エンドポイントURL文字列。
- 実装オブジェクト(この場合はHelloWorld実装クラス)は、上記のパラメーターで言及したURLで識別されるエンドポイントでWebサービスとして公開されます。
HelloWorldPublisher.javaの内容は次のとおりです-
package com.finddevguides.endpoint;
import javax.xml.ws.Endpoint;
import com.finddevguides.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.finddevguides.ws.HelloWorldImpl"
url-pattern = "/hello"/>
</endpoints>
すべてのファイルの準備ができたので、ディレクトリ構造は次のスクリーンショットに示すようになります-
- 次に、このアプリケーションのWARファイルを作成します。
- プロジェクトを選択→右クリック→エクスポート→WARファイル。
- これをTomcatサーバーの webapps フォルダーの下に hello.war ファイルとして保存します。
- 次に、Tomcatサーバーを起動します。
- サーバーが起動したら、次のURLでWebサービスにアクセスできるはずです-http://localhost:8080/hello/hello
JMeterテスト計画を作成する
次に、上記のWebサービスをテストするためのテスト計画を作成しましょう。
テスト計画の名前を変更する
- /home/manisha/apache-jmeter2.9/bin/jmeter.shをクリックして、JMeterウィンドウを開きます。 * [テスト計画]ノードをクリックします。 * このテスト計画ノードの名前をWebserviceTestに変更します。
スレッドグループを追加
1つのスレッドグループを追加します。これは、サンプラー、コントローラー、リスナーなどの他のすべての要素のプレースホルダーです。
- WebserviceTest(テスト計画)→追加→スレッド(ユーザー)→スレッドグループを右クリックします。 スレッドグループは、テスト計画(WebserviceTest)ノードの下に追加されます。
- 次に、テストに合わせてスレッドグループのデフォルトプロパティを変更します。 次のプロパティが変更されます-
- 名前-webserviceユーザー
- スレッド数(ユーザー) − 2
- ランプアップ期間-デフォルト値の0秒のままにします。
- ループカウント-2
サンプラーの追加-SOAP/XML-RPCリクエスト
ユーザーを定義したので、今度はユーザーが実行するタスクを定義します。
SOAP/XML-RPC Request要素を追加します-
- マウスボタンを右クリックして、[追加]メニューを表示します。
- 追加→サンプラー→SOAP/XML-RPCリクエストを選択します。
- ツリーでSOAP/XML-RPC Request要素を選択します
- 以下の画像のように、次のプロパティを編集します-
- 次の詳細がこの要素に入力されます-
- 名前-SOAP/XML-RPCリクエスト
- URL -http://localhost:8080/hello/hello?wsdl
- 石鹸/XML-RPCデータ-以下の内容を入力してください
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/"
xmlns:web = "http://ws.finddevguides.com/">
<soapenv:Header/>
<soapenv:Body>
<web:getHelloWorldMessage>
<arg0>Manisha</arg0>
</web:getHelloWorldMessage>
</soapenv:Body>
</soapenv:Envelope>
リスナーを追加
テスト計画に追加する必要がある最後の要素はリスナーです。 この要素は、HTTPリクエストのすべての結果をファイルに保存し、データの視覚モデルを提示します。
- webserviceユーザー要素を選択します。
- 「追加」→「リスナー」→「結果ツリーの表示」を選択して、結果ツリーの表示リスナーを追加します。
テスト計画を実行する
ここで、上記のテスト計画を_test_webservice.jmx_として保存します。 [実行]→[開始]オプションを使用して、このテスト計画を実行します。
出力を表示する
次の出力はリスナーで見ることができます。
最後の画像では、応答メッセージ「Hello Manisha to JAX WS world」を見ることができます。