2010-01-29 13 views
26

मैं अपने रीस्टफुल अनुप्रयोगों को सीधे HTTP के माध्यम से जांचना चाहता हूं और मैं ऐसे टूल ढूंढ रहा हूं जो उस कार्य के साथ मेरी मदद कर सकें। असल में मैं HTTP अनुरोधों के लिए एक आसान रैपर ढूंढ रहा हूं जो सबमिट कर सकता है उदा। जेएसओएन या एक्सएमएल के रूप में एचटीएमएल फॉर्म या क्रमबद्ध संसाधन।रीस्टफुल सेवाओं का परीक्षण करने के तरीके?

यह बहुत अच्छा होगा अगर यह सत्यापित करने का कोई तरीका है कि सेवा वास्तव में आरईएसटी वास्तुकला दिशानिर्देशों (स्टेटलेसनेस, यूआरआई, सामग्री वार्ता इत्यादि) का पालन कर रही है या नहीं।

जुनीट के साथ इसका उपयोग करने में सक्षम होना एक सुविधाजनक बोनस होगा। क्या आप किसी भी पुस्तकालय के बारे में जानते हैं जो मुझे मेरी मदद करने में मदद कर सकता है (और यह केवल एक साधारण http क्लाइंट से थोड़ा अधिक है)?

+3

वास्तव में एक "इकाई नहीं है यही कारण है कि के खिलाफ बाकी-आश्वासन ढांचे की सुविधाओं की पड़ताल "अब परीक्षण करें। मुझे नहीं लगता कि शब्द का मतलब अब और कुछ है। –

+1

सच है ... मैं अभी भी इकाई परीक्षण के तरीके को सोच रहा था, इसे बदल दिया। हालांकि इसके लिए जावा एकीकरण होना अभी भी अच्छा होगा (वास्तव में यूनिट परीक्षण संभवतः अनुरोध और प्रतिक्रिया के साथ बड़ी परेशानी में समाप्त हो जाएगा और मैं किसी भी तरह से इससे बचना चाहता हूं)। – Daff

+2

मत भूलना, यूनिट परीक्षण एक यूनिट क्या नहीं निर्देशित करता है। IMHO आराम सेवा को एक इकाई के रूप में देखा जा सकता है यदि यह पर्याप्त है - उदा। छोटे स्तर के यूनिट परीक्षणों द्वारा परीक्षण किया गया। –

उत्तर

13

देखें कि rest-client किसी भी मदद की है।

संपादित करें: वर्तमान में मैं पोस्टमैन का उपयोग कर रहा हूं - REST क्लाइंट एक Google क्रोम प्लगइन और यह कमाल है!

+1

सभी ब्राउज़र आधारित एक्सटेंशन आपको अपने एपीआई का परीक्षण करने में कठोर समय देंगे क्योंकि यह आपको होस्टिंग ब्राउज़र का एक स्वतंत्र वातावरण बनाने की अनुमति नहीं देगा, इसलिए आप अपने जीजीआईपी संपीड़न का परीक्षण करने के लिए अधिकांश http शीर्षलेखों को बदल नहीं सकते हैं उदाहरण के लिए –

+0

-1 पोस्टमैन के लिए, यह इस तथ्य को छुपाता है कि सर्वर 302 लौटा और इसके बाद दूसरा हुआ। – sinedsem

0

शायद सेलेनियम कुछ मदद का हो सकता है, लेकिन निश्चित रूप से पूरी तरह से नहीं।

+0

पूरी तरह से क्यों नहीं? –

+2

सेलेनियम जहां तक ​​मुझे पता है कि JSON और XML के लिए कोई सीधा समर्थन नहीं है, यह ब्राउज़र स्तर परीक्षण के लिए अच्छा है - उपयोगकर्ता इंटरैक्शन परीक्षण और यहां तक ​​कि सबकुछ काम नहीं करता है (AJAX)। एक बात जो मुझे विशेष रूप से सेलेनियम के बारे में पसंद नहीं है (मुझे गलत नहीं लगता है मैं कुल मिलाकर सेलेनियम का उपयोग करना पसंद करता हूं) सेलेनियम आईडीई है, जो मदद करनी चाहिए, हालांकि यह बहुत क्रैपी कोड उत्पन्न करके और अधिक समस्याएं पैदा करता है (उदाहरण के लिए कोई जुनीट 4 नहीं समर्थन) और सर्वर से अलग व्यवहार करता है (पैच के बिना चर को आज़माएं)। –

10

मुझे लगता है कि REST Assured आपको बहुत अच्छी तरह से सुइट करेगा। अनुरोध भेजना और एक्सएमएल और जेएसओएन प्रतिक्रियाओं को पार्स करना बहुत आसान है। जैसे

{ 
"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] 
    }] 
} 
} 

आप अनुरोध कर सकते हैं और इस तरह से प्रतिक्रिया को मान्य कर सकते हैं:: मान लें कि एक GET अनुरोध करने के लिए "/ लोट्टो" JSON रिटर्न जाने

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

फ़िडलर एक बहुत उपयोगी उपकरण है, आप बना सकते हैं जीएमटी, पोस्ट, पुट, डिलीट आदि जैसे विभिन्न अनुरोध क्रियाओं के साथ एक्सएमएल आधारित HTTP अनुरोध।

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

5

वहाँ भी है जर्सी टेस्ट फ्रेमवर्क (http://jersey.java.net/nonav/documentation/latest/user-guide.html#test-framework), लेकिन जोहान के रूप में पहले से ही बाकी उल्लेख किया - संरचित ढांचे मैं इस ढांचे की भी सिफारिश करता हूं - इसमें डीएसएल जैसे सिंटैक्स, एक्सपीएथ और स्कीमा सत्यापन, आसान फ़ाइल अपलोड और ग्रोवी लैम्ब्डा एक्सप्रेशन का उपयोग करके जेएसओएन संरचनाओं के माध्यम से खोजने के लिए कुछ अच्छी उपलब्धियां हैं ..

मैंने लिखा है दो लेख ..

संबंधित मुद्दे