2010-01-29 41 views
26

Tôi muốn kiểm tra các ứng dụng RESTful của mình trực tiếp qua HTTP và tôi đang tìm kiếm các công cụ có thể giúp tôi thực hiện nhiệm vụ đó. Về cơ bản, tôi đang tìm kiếm một trình bao bọc dễ dàng cho các yêu cầu HTTP có thể gửi ví dụ: Các biểu mẫu HTML hoặc các tài nguyên được tuần tự hóa dưới dạng JSON hoặc XML. Nó sẽ là tuyệt vời nếu có một cách để xác minh nếu dịch vụ thực sự là sau hướng dẫn kiến ​​trúc REST (statelessness, URI, đàm phán nội dung, vv), quá.Cách để kiểm tra các dịch vụ RESTful?

Có thể sử dụng nó với JUnit sẽ là một phần thưởng tiện lợi. Bạn có biết về bất kỳ thư viện có thể giúp tôi với những gì tôi muốn làm (và đó là một chút nhiều hơn chỉ là một khách hàng http đơn giản)?

+3

Đó không phải là thực sự là một "đơn vị "kiểm tra nữa. Tôi không nghĩ từ đó có nghĩa gì nữa. –

+1

True ... Tôi vẫn đang suy nghĩ cách kiểm tra đơn vị, thay đổi nó. Sẽ vẫn tốt đẹp để có tích hợp Java cho nó mặc dù (thực sự đơn vị thử nghiệm có thể sẽ kết thúc trong một rắc rối lớn với yêu cầu và phản ứng mocks và tôi bằng cách nào đó muốn tránh điều đó). – Daff

+2

Đừng quên, kiểm tra đơn vị đó không quyết định đơn vị là gì. Dịch vụ an toàn IMHO có thể được xem là đơn vị nếu đơn vị đó bị cô lập đủ - ví dụ: kiểm tra bằng các bài kiểm tra đơn vị cấp độ nhỏ hơn. –

Trả lời

13

Xem nếu rest-client có bất kỳ trợ giúp nào không.

Chỉnh sửa: Hiện tại tôi đang sử dụng Postman - REST Client một plugin google chrome và thật tuyệt vời!

+1

mọi tiện ích mở rộng dựa trên trình duyệt sẽ cho bạn thời gian thử nghiệm api của bạn vì nó sẽ không cho phép bạn tạo môi trường độc lập của trình duyệt lưu trữ, vì vậy bạn không thể thay đổi hầu hết tiêu đề http để kiểm tra nén gzip của mình chẳng hạn –

+0

–1 cho Postman, nó giấu một thực tế là máy chủ trả lại 302 và nó đã làm khác sau đó. – sinedsem

0

Có lẽ Selenium có thể giúp đỡ, nhưng chắc chắn không hoàn toàn.

+0

Tại sao không hoàn toàn? –

+2

Selenium theo như tôi biết không có hỗ trợ trực tiếp cho JSON và XML, nó là tốt cho thử nghiệm cấp trình duyệt - kiểm tra tương tác người dùng và thậm chí hơn, không phải mọi thứ hoạt động (AJAX). Cũng có một điều tôi đặc biệt không thích về Selenium (không hiểu sai tôi thích sử dụng Selenium nói chung) là IDE Selenium, điều này sẽ giúp, tuy nhiên nó chỉ tạo ra nhiều vấn đề hơn bằng cách tạo mã rất crappy (ví dụ: không có JUnit4 hỗ trợ) và hoạt động khác với Server (thử các biến không có bản vá). –

10

Tôi nghĩ rằng REST Assured sẽ giúp bạn rất tốt. Việc gửi yêu cầu và phân tích cú pháp phản hồi XML và JSON rất dễ dàng. Ví dụ. giả sử rằng một yêu cầu GET để "/ xổ số" trả về JSON:

{ 
"lotto":{ 
    "lottoId":5, 
    "winning-numbers":[2,45,34,23,7,5,3], 
    "winners":[{ 
    "winnerId":23, 
    "numbers":[2,45,34,23,3,5] 
    },{ 
    "winnerId":54, 
    "numbers":[52,3,12,11,18,22] 
    }] 
} 
} 

Bạn có thể làm theo yêu cầu và kích hoạt các phản ứng như thế này:

expect().body("lotto.lottoId", equalTo(5)).when().get("/lotto"); 
1

Fiddler là một công cụ thực sự hữu ích, bạn có thể tạo Các yêu cầu HTTP dựa trên XML với một loạt các động từ yêu cầu như GET, POST, PUT, DELETE và vv.

http://www.fiddler2.com/fiddler2/

5

Ngoài ra còn có các Jersey Kiểm tra khung (http://jersey.java.net/nonav/documentation/latest/user-guide.html#test-framework) nhưng như Johan đã đề cập REST khung làm việc thân thiện Tôi cũng đề xuất khuôn khổ này - nó có một số tính năng đẹp như DSL như cú pháp, XPath và xác nhận lược đồ, tải lên tệp dễ dàng và sử dụng Biểu thức Groovy Lambda để tìm kiếm thông qua các cấu trúc JSON được trả về ..

Tôi đã viết hai bài viết ..

Các vấn đề liên quan