我正在开发一个应用程序来对各种Web服务执行一系列测试。这些Web服务使用和生成json,对于每个Web服务,我们都有一个类来模拟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();
}
}
我知道这不是那么简单,但有关如何到达那里的任何想法? 在此先感谢!!
答案 0 :(得分:2)
您也可以查看REST-assured
答案 1 :(得分:0)
测试您的网络服务的最佳工具之一是SOAP UI,但这更适用于功能测试
我也很好地整合了FitNesse次测试
JMeter与LoadUI ...在Web服务的压力和负载测试方面具有相同的功能。
Junit ...我从未直接应用于Web服务本身。
大多数时候,我通过WebService接口(端口)的实现调用了一个Spring服务,并且我单元测试了一个。
答案 2 :(得分:0)
你应该考虑使用http-matcher(https://github.com/valid4j/http-matchers)让你编写JUnit-tests,使用常规的hamcrest-matcher(与JUnit捆绑在一起)通过标准的JAX-RS接口测试你的web服务。