पायथन की सरलता इसे स्वचालित परीक्षण लिखने के लिए सर्वश्रेष्ठ प्रोग्रामिंग भाषाओं में से एक बनाती है। भाषा आपको अधिक कुशलता से परीक्षण करने में मदद करने के लिए कुछ सॉफ़्टवेयर परीक्षण रूपरेखाएँ प्रदान करती है।

चाहे आप एंड-टू-एंड टेस्ट, लोड और स्ट्रेस टेस्टिंग, या अधिक के लिए हों, ये सबसे अच्छे पायथन-आधारित सॉफ्टवेयर टेस्टिंग फ्रेमवर्क हैं।

1. पाइस्टेस्ट

पाइटेस्ट, पायथन में और पायथन के लिए लिखा गया एक सरल परीक्षण ढांचा है। परीक्षण के लिए आपको इसका उपयोग क्यों करना चाहिए? इसमें एक आसान सीखने की अवस्था है और यह इकाई और एकीकरण परीक्षण के लिए एक गो-टू फ्रेमवर्क है। यह यूनिटटेस्ट से क्लास इनहेरिटेंस को भी सपोर्ट करता है।

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

पाइटेस्ट टेस्ट सूट के कमांड-लाइन निष्पादन का भी समर्थन करता है। यह चलाने जितना आसान है

पाइस्टेस्ट कमांड परीक्षण फ़ोल्डर टर्मिनल से। आपको परीक्षण फ़ाइलों के बारे में परेशान होने की ज़रूरत नहीं है, क्योंकि रूपरेखा स्वचालित रूप से उनका पता लगा लेती है।

हालाँकि, कमांड फ़ाइल घोषणा के साथ भी काम करता है। तो आप Pytest को फ़ाइल नाम के साथ भी आमंत्रित कर सकते हैं:

pytestpatter_tests.py

Pytest के साथ एक परीक्षण फ़ाइल चलाने से मानव-अनुकूल आउटपुट उत्पन्न होता है जो परीक्षण चरणों का पता लगाता है और आपको बताता है कि गलती कहाँ है:

2. नाटककार

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

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

यदि आप कोड रहित जाना चाहते हैं, तो आप परीक्षण कोड को गतिशील रूप से लिखने के लिए प्लेराइट के कोडजेन का उपयोग कर सकते हैं। जब आप DOM के साथ इंटरैक्ट करते हैं तो यह एक भाषा-विशिष्ट परीक्षण फ़ाइल उत्पन्न करता है। इसका चयनकर्ता जनरेटर आपको डोम के निरीक्षण के दर्द के बिना केवल उन पर होवर करके वेब तत्वों को आसानी से चुनने देता है।

नाटककार के पास डिफ़ॉल्ट ऑटो-प्रतीक्षा है। इस प्रकार, यह परीक्षण मामलों को चलाने से पहले DOM के लोड होने के लिए रुक जाता है। लेखन के रूप में, नाटककार ढांचा पायथन के अलावा जावास्क्रिप्ट, टाइपस्क्रिप्ट, जावा और .NET का समर्थन करता है।

3. सेलेनियम

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

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

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

4. रोबोट

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

इसकी ताकत स्वीकृति परीक्षण है - यह सुनिश्चित करने के लिए कि सॉफ्टवेयर निर्दिष्ट मानदंडों को पूरा करता है। परीक्षण से परे, इसमें यूआई कार्यों को स्वचालित करने के लिए सामान्य रोबोटिक स्वचालन उपकरण भी शामिल हैं।

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

5. सही

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

Doctest एक सेट आउटपुट के विरुद्ध एक फ़ंक्शन की जाँच करके काम करता है। यदि आपका अपेक्षित परिणाम गलत है तो यह केवल एक त्रुटि फेंकता है और सही ढंग से गणना किए गए आउटपुट को वापस करता है। Doctest में टेस्ट आउटपुट साफ है। यदि कई इनपुट डेटा पर परीक्षण किया जाता है, उदाहरण के लिए, यह एक विस्तृत विफलता रिपोर्ट देता है, जिसमें कोड विफल रहता है।

Doctest द्वारा प्रलेखित परीक्षण का एक टुकड़ा इस तरह दिखता है, उदाहरण के लिए:

डीईएफ़findFirst(मूलपाठ):
"""
एक तार दिया, वापस करना पहला अक्षर
: परम: डोरी
>>> फाइंडफर्स्ट("इडोवु")
यू
"""
वापस करनामूलपाठ[0]ऊपरी()
अगर __नाम__=="__मुख्य__":
आयात doctest
doctest.testmod()

ऊपर दिया गया प्रलेखित परीक्षण विफल हो जाता है क्योंकि हम उम्मीद करते हैं कि a यू, लेकिन गणना परिणाम है मैं बजाय:

6. इकाई परीक्षण

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

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

उदाहरण के लिए, जब सेलेनियम के साथ जोड़ा जाता है, तो आप इनहेरिट किए गए मुखर कीवर्ड का उपयोग करके किसी घटक के परिणाम के विरुद्ध अपेक्षित आउटपुट की जांच कर सकते हैं। हालाँकि, पाइस्टेस्ट के विपरीत, आप यूनिटेस्ट में अधिक कोड लिखने की संभावना रखते हैं क्योंकि इसका अभिकथन अधिक कठिन-कोडित है।

7. नाक 2

Nose2 कार्यक्षमता में Pytest से निकटता से संबंधित है। हालाँकि, यह अपने मूल गुणों को सबसे अलग ढांचे से प्राप्त करता है। पाइटेस्ट की तरह, आप इसे सेलेनियम या यूनीटेस्ट जैसे अन्य फ्रेमवर्क में लिखे गए टेस्ट केस के लिए टेस्ट रनर के रूप में उपयोग कर सकते हैं।

यह इकाई और एकीकरण परीक्षण दोनों का समर्थन करता है। तो चाहे आप यूआई का परीक्षण करना चाहते हैं या अपने कोड कार्यों की जांच करना चाहते हैं, Nose2 सभी आवश्यक सुविधाएं प्रदान करता है।

यह पैरामिट्रीकृत परीक्षण को भी स्वीकार करता है। इसमें डेकोरेटर के अंदर टेस्ट ब्राउजर और प्लेटफॉर्म जैसे टेस्ट पैरामीटर डालने शामिल हैं। फिर आप कोड बॉडी के भीतर प्रत्येक पैरामीटर तक पहुंच सकते हैं। यह Nose2 को क्लाउड ग्रिड पर समानांतर में क्रॉस-ब्राउज़र परीक्षण चलाने के लिए सबसे अच्छे ढांचे में से एक बनाता है।

अपने प्रोग्राम का परीक्षण करें और गुणवत्ता वाला सॉफ़्टवेयर रिलीज़ करें

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

यद्यपि इकाई परीक्षणों को अपनी विकास भाषा में रखना सबसे अच्छा है, लेकिन यह अधिक भाषा-स्वतंत्र हो सकता है। तदनुसार इनमें से किसी भी पायथन परीक्षण ढांचे का उपयोग करने के लिए स्वतंत्र महसूस करें।