Jmeter-webservice-test-plan

提供:Dev Guides
移動先:案内検索

jMeter-Webサービステスト計画

この章では、WebServiceをテストするためのテスト計画を作成する方法を学びます。 テストのために、単純なWebサービスプロジェクトを作成し、Tomcatサーバーにローカルに展開しました。

Webサービスプロジェクトを作成する

Webサービスプロジェクトを作成するために、Eclipse IDEを使用しました。 まず、サービスエンドポイントインターフェース HelloWorldcom.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>

すべてのファイルの準備ができたので、ディレクトリ構造は次のスクリーンショットに示すようになります-

WebService Dir構造

  • 次に、このアプリケーションの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に変更します。

WSテスト計画

スレッドグループを追加

1つのスレッドグループを追加します。これは、サンプラー、コントローラー、リスナーなどの他のすべての要素のプレースホルダーです。

  • WebserviceTest(テスト計画)→追加→スレッド(ユーザー)→スレッドグループを右クリックします。 スレッドグループは、テスト計画(WebserviceTest)ノードの下に追加されます。
  • 次に、テストに合わせてスレッドグループのデフォルトプロパティを変更します。 次のプロパティが変更されます-
  • 名前-webserviceユーザー
  • スレッド数(ユーザー) − 2
  • ランプアップ期間-デフォルト値の0秒のままにします。
  • ループカウント-2

WSテストユーザー

サンプラーの追加-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>

WSテスト要求

リスナーを追加

テスト計画に追加する必要がある最後の要素はリスナーです。 この要素は、HTTPリクエストのすべての結果をファイルに保存し、データの視覚モデルを提示します。

  • webserviceユーザー要素を選択します。
  • 「追加」→「リスナー」→「結果ツリーの表示」を選択して、結果ツリーの表示リスナーを追加します。

WSテスト要求

テスト計画を実行する

ここで、上記のテスト計画を_test_webservice.jmx_として保存します。 [実行]→[開始]オプションを使用して、このテスト計画を実行します。

出力を表示する

次の出力はリスナーで見ることができます。

WSサンプル結果

WS結果リクエスト

WS応答データ

最後の画像では、応答メッセージ「Hello Manisha to JAX WS world」を見ることができます。