2012-09-16 18 views
10

के बीच अंतर मैं django में परीक्षण के बारे में पढ़ रहा हूं। एक चीज जिसे अनुशंसित किया गया था वह कार्यात्मक परीक्षण के लिए django-webtest का उपयोग था। मुझे एक सभ्य लेख here मिला जो सिथनियम में पाइथन का उपयोग करके कार्यात्मक परीक्षण के बारे में सिखाता है। लेकिन लोगों ने डीजेंगो में परीक्षणों के परीक्षण के लिए इयान बिटिंग के वेबटेस्ट के विस्तार djagno-webtest की भी सिफारिश की है। वेबजस्ट के साथ परीक्षण और सेलेनियम के साथ परीक्षण django रूपों के संदर्भ में अलग कैसे है?django-webtest और सेलेनियम

देखने के कार्यात्मक परीक्षण बिंदु से

तो:

कैसे Django-webtest और सेलेनियम कंधे से कंधा मिलाकर चला जाता है?

क्या हमें उनमें से कोई भी होना चाहिए या कोई भी करेगा?

उत्तर

9

सेलेनियम के बारे में जानना महत्वपूर्ण बात यह है कि यह मुख्य रूप से सर्वर-अज्ञेय परीक्षण ढांचे के रूप में बनाया गया है। इससे कोई फर्क नहीं पड़ता कि फ्रंटवर्क बनाने के लिए किस ढांचे या सर्वर-साइड कार्यान्वयन का उपयोग किया जाता है जब तक यह अपेक्षित व्यवहार करता है। साथ ही, जब आप (और जब संभव हो तो ) सेलेनियम में मैन्युअल रूप से परीक्षण लिखें, कई परीक्षणों को उन गतियों के माध्यम से जाने वाले मैक्रोज़ रिकॉर्ड किए जाते हैं जिन्हें स्वचालित रूप से कोड में बदल दिया जाता है।

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

अन्यथा, दोनों औजारों का आम तौर पर एक ही उद्देश्य होता है और उसी प्रकार की चीजों का परीक्षण करने का इरादा होता है। उस ने कहा, मैं दोनों का उपयोग करने के बजाय एक चुनने का सुझाव दूंगा।

21

मुख्य अंतर यह है कि सेलेनियम एक वास्तविक ब्राउज़र चलाता है, जबकि वेबटेस्ट डब्लूएसजीआई को हुक करता है। निम्नलिखित अंतर में यह परिणाम:

  • आप के बाद से वहाँ इसे चलाने के लिए कुछ भी नहीं है, WebTest साथ जे एस कोड का परीक्षण नहीं कर सकता।
  • WebTest बहुत तेजी के बाद से यह WSGI को हुक है, यह भी एक छोटे स्मृति पदचिह्न
  • WebTest वास्तव में एक बंदरगाह पर सर्वर को चलाने के लिए की आवश्यकता नहीं है इसका मतलब तो यह parallize को
  • WebTest जाँच नहीं करता है थोड़ा आसान है विभिन्न समस्याओं है कि वास्तविक ब्राउज़रों के साथ पाए जाते हैं, विशिष्ट ब्राउज़र संस्करण कीड़े (खांसी .. इंटरनेट एक्सप्लोरर .. खांसी ..)

नीचे लाइन की तरह: , WebTest उपयोग करने के लिए जब तक आप चीजों के लिए सेलेनियम का उपयोग करना आवश्यक है पसंद करते हैं WebTest के साथ परीक्षण नहीं किया जा सकता है।