2012-10-26 61 views
3

我正在開發一個應用程序,以在各種Web服務上執行一系列測試。這些Web服務消耗和生成json,並且爲他們每個人提供一個類來建模json請求和響應。例如:使用JUnit測試Web服務

如果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

你有沒有考慮過使用JMeter而不是JUnit? JMeter使Web服務測試變得非常簡單。不確定你是否會對JUnit有任何集成依賴,但我知道JMeter使得你需要簡單。 – Jim

回答

0

一個最好的工具來測試您的Web服務是SOAP UI,但這更多的功能測試

除了我很好地集成FitNesse測試

JMeter的齊頭並進與LoadUI ..kind在Web服務的壓力和負載測試方面也是如此。

Junit ...我從來沒有用過直接應用到webservice本身。

大多數時候我有一個WebService接口(Port)實現調用的Spring服務,我測試了這個接口。