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

测试 Web 服务的最佳工具之一是SOAP UI,但这更适用于功能测试

我也很好地集成了FitNesse测试

JMeter 与 LoadUI 齐头并进。就 web 服务的压力和负载测试而言,类似的东西。

Junit...我从来没有直接应用到webservice本身。

大多数时候,我有一个由 WebService 接口(端口)的实现调用的 Spring 服务,我对它进行了单元测试。

于 2012-10-26T19:29:06.270 回答
0

您应该考虑使用 http-matchers ( https://github.com/valid4j/http-matchers ),它可以让您编写 JUnit 测试,使用常规 hamcrest-matchers(与 JUnit 捆绑)通过标准 JAX 测试您的 Web 服务- RS接口。

于 2016-09-03T19:37:16.123 回答