3

さまざまなWebサービスで一連のテストを実行するためのアプリケーションを開発しています。これらのWebサービスはjsonを消費および生成し、それぞれにjsonの要求と応答をモデル化するクラスがあります。例えば:

serviceXに対するjsonリクエストが次のような場合:

{
  "name":"Alex",
  "id":"123"
}

serviceXrequest次のようなクラスがあります。

public class serviceXrequest {

   String name;
   String id;

   //Constructor, getters/setters, etc
   ...
}

そのクラスのオブジェクトを開始点として、Webサービスで一連のテストを実行できます。アイデアは、これらのテストを可能な限り一般的にして、要求をモデル化するクラスと応答をモデル化するクラスを作成するだけで、任意のWebサービスで使用できるようにすることです。

そのため、これまでに開発されたすべてのテストメソッドはプレーンJavaオブジェクトで機能します。これは私が欲しいものの例です:

public class WebServiceTest {

    String serviceURL;
    String requestJson;
    String requestClass;
    String responseClass;

    public WebServiceTest() {}

    @Test
    public static void Test1() { ... }

    @Test
    public static void Test2() { ... }

    ....

    @Test
    public static void TestN() { ... }
}

次に、別のクラスから、次のような操作を行ってこれらのテストを呼び出します。

public class LoginTest { //To test the login web service, for example

    public static void main(String[] args) {

        WebServiceTest loginTest = New WebServiceTest();

        loginTest.setServiceURL("172.0.0.1/services/login");
        loginTest.setRequestJson("{"user":"ale","pass":"1234"}");
        ...
        loginTest.runTests();
    }
}

それほど単純ではないことは知っていますが、そこにたどり着く方法について何かアイデアはありますか?前もって感謝します!!

4

3 に答える 3

2

また、 REST-assuredを調べることもできます

于 2012-10-26T21:55:54.213 に答える
0

JUnit テストを記述できるhttp-matchers ( https://github.com/valid4j/http-matchers ) の使用を検討する必要があります。通常の hamcrest-matchers (JUnit にバンドルされている) を使用して、標準の JAX 経由で Web サービスをテストします。 RS インターフェイス。

于 2016-09-03T19:37:16.123 に答える
0

Web サービスをテストするための最良のツールの 1 つはSOAP UIですが、これは機能テスト用です。

同様に、私はFitNesseテストを非常にうまく統合しました

JMeter は LoadUI と密接に連携しており、Web サービスのストレス テストと負荷テストに関しては、まったく同じです。

Junit ... Webサービス自体に直接適用されたことはありません。

ほとんどの場合、WebService インターフェイス (ポート) の実装によって呼び出される Spring サービスがあり、それを単体テストしました。

于 2012-10-26T19:29:06.270 に答える