web services वेब सेवा संचार की स्वचालित परीक्षा




web-services msbuild (4)

मेरे पास एक ऐसा एप्लिकेशन है जो बाहरी वेब सेवा के लिए संदेश भेजता है मैं MSBuild और Cruisecontrol.NET का उपयोग करके इस एप्लिकेशन का निर्माण और नियोजित करता हूं । सीसीएनईटी के निर्माण और एप की तैनाती के रूप में यह NUnit का प्रयोग करके परीक्षण का एक सेट भी चलाता है। मैं अब भी वेब सेवा संचार का परीक्षण करना चाहूंगा

मेरा विचार है कि निर्माण प्रक्रिया के हिस्से के रूप में एक वेब सेवा (बाहरी वेब सेवाओं के आधार पर WSDL) उत्पन्न होनी चाहिए और बिल्ड सर्वर स्थानीय वेब सर्वर पर तैनात किया जाना चाहिए। सभी वेब सेवा को संदेश प्राप्त करना चाहिए और उसे फाइल सिस्टम पर रखना चाहिए ताकि मैं इसे सामान्य एनयूआईएनटी का उपयोग करके उदाहरण के लिए देख सकता हूं। यह विकास को भी आसान बना देगा क्योंकि नए डेवलपर्स को केवल निर्माण स्क्रिप्ट चलाने और ऊपर और चलाना होगा (तीसरी पार्टी सेवा के लिए कनेक्शन सेट अप करने के लिए समय बिताना होगा)।

क्या वहां मौजूद किसी भी मौजूदा उपयोगिताओं में डब्लूएसडीएल पर आधारित एक वेब सेवा आसानी से नकली है? किसी ने एमएसबीइल्ड का उपयोग करके ऐसा कुछ किया है?

क्या इस परिदृश्य को परीक्षण करने के अन्य तरीके हैं?


मैंने अभी http://www.soapui.org/ की तलाश शुरू कर दी है और ऐसा लगता है कि यह वेब सेवाओं के परीक्षण के लिए अच्छी तरह काम करेगा।

इसके अलावा, शायद आपकी वेब सेवा में एक अमूर्त परत जोड़ने पर, प्रत्येक सेवा कॉल सीधे एक परीक्षण योग्य विधि (वेब ​​क्षेत्र के बाहर) को बुलाएंगे? मैंने इस पर एक बड़ी परियोजना पर काम किया है, और यह testability अच्छी तरह से काम कर रहा है


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

उदाहरण के लिए, यदि आपका WS इंटरफ़ेस IService कहा जाता है और इसमें Data GetData() विधि है, तो आप एक नकली बना सकते हैं, जिसे एक बार कॉल करने की विधि की आवश्यकता होती है और एक नया Data ऑब्जेक्ट देता है:

var testService = mockery.NewMock<IService>();
Expect
    .Once
    .On(testService)
    .Method("GetService")
    .WithNoArguments()
    .Will(
        Return.Value(new Data());

परीक्षण के अंत में, mockery.VerifyAllExpectationsHaveBeenMet() कॉल करें। mockery.VerifyAllExpectationsHaveBeenMet() यह आश्वस्त करने के लिए कि GetData विधि को वास्तव में कहा जाता था।

पीएस: "एनएमॉक 2" प्रोजेक्ट को "एनकॉक आरसी 2" के साथ भ्रमित नहीं करते, जिसे स्रोतफोर्ज पर "एनएमके 2" भी कहा जाता है। NMock2-the-project ने NMock को स्थानांतरित कर दिया है।



सामान्य तौर पर, इस तरह की चीजों का परीक्षण करने का एक बहुत अच्छा तरीका है नकली वस्तुओं का उपयोग करना

काम पर, हम वेब सेवा संचार और दूसरी बाहरी निर्भरता जैसी चीजों के परीक्षण के लिए उत्पाद टाइप-मॉक का उपयोग करते हैं। इसमें पैसा खर्च होता है, इसलिए इस कारण यह आपकी आवश्यकताओं के लिए उपयुक्त नहीं हो सकता है, लेकिन मुझे लगता है कि यह शानदार उत्पाद है। मैं आपको व्यक्तिगत अनुभव से बता सकता हूं कि यह एनयूआईएनआईटी और सीसीनेट के साथ बहुत अच्छी तरह से एकीकृत करता है।

यह वास्तव में एक सरल वाक्य रचना है, जहां आप मूल रूप से "जब यह विधि / संपत्ति बुलाती है, मैं चाहता हूं कि आप इसके बदले यह मान वापस कर लें।" नेटवर्क विफलताओं जैसी चीजों का परीक्षण करने के लिए यह बहुत अच्छा है, फ़ाइलें मौजूद नहीं हैं, और ज़ाहिर है, वेब सेवाओं







cruisecontrol.net