"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्वचालित परीक्षण के लिए पायथन का शटिल मॉड्यूल

स्वचालित परीक्षण के लिए पायथन का शटिल मॉड्यूल

2024-08-27 को प्रकाशित
ब्राउज़ करें:868

Python

परिचय

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

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

यह सुनिश्चित करने के लिए कि प्रत्येक परीक्षण सही वातावरण के साथ शुरू होता है, हमें एक सुसंगत और पृथक परीक्षण वातावरण बनाते हुए, सेटअप प्रक्रिया को स्वचालित करने की आवश्यकता है।

शटिल से शुरुआत करना

श्यूटिल मॉड्यूल पायथन स्टैंडर्ड लाइब्रेरी का हिस्सा है, इसलिए हमें कुछ भी अतिरिक्त इंस्टॉल करने की आवश्यकता नहीं है। बस इसे अपनी स्क्रिप्ट की शुरुआत में आयात करें।

# Import shell utility module
import shutil

आवश्यक फ़ाइल प्रतिलिपि विधियाँ

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

  1. shutil.copy()
  2. shutil.copy2()
  3. shutil.copyfile()
  4. shutil.copyfileobj()

1. शटिल.कॉपी() विधि

shutil.copy(source, destination, *, follow_symlinks=True)

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

  • यदि follow_symlinks=True, तो गंतव्य उस फ़ाइल की एक प्रति होगी जिसे स्रोत में प्रतीकात्मक लिंक इंगित करता है। पैरामीटर follow_symlinks का डिफ़ॉल्ट मान सत्य है।

  • यदि follow_symlinks=False, गंतव्य एक प्रतीकात्मक लिंक के रूप में बनाया जाएगा।

# Import shell utility module
import shutil

#  Copy the content of source_file.txt to destination_file.txt
shutil.copy('source_file.txt', 'destination_file.txt')

2.shutil.copy2() विधि

shutil.copy2(source, destination, *, follow_symlinks=True)

shutil.copy2() विधि फ़ाइल के सभी मेटाडेटा को संरक्षित करने की अतिरिक्त कार्यक्षमता प्रदान करती है। अन्य विशेषताएँshutil.copy() विधि के समान ही हैं। गंतव्य फ़ाइल या निर्देशिका दोनों को निर्दिष्ट कर सकता है। यदि गंतव्य एक निर्देशिका है, तो फ़ाइल को स्रोत फ़ाइल नाम के समान नाम से कॉपी किया जाएगा।

# Import shell utility module
import shutil

#  Copy the content of source_file.txt to destination_file.txt
shutil.copy2('source_file.txt', 'destination_file.txt')

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

3.shutil.copyfile() विधि

shutil.copyfile(source, destination, *, follow_symlinks=True)

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

# Import shell utility module
import shutil

#  Copy the content of source_file.txt to destination_file.txt
shutil.copyfile('source_file.txt', 'destination_file.txt')

4.shutil.copyfileobj() विधि

shutil.copyfileobj(fsrc, fdst, length)

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

# Import shell utility module
import shutil

# Create file objects
source_file_object = open("../hello.txt", "r")
destination_file_object = open("CopyFile/copyFalseSrcPath.txt", "w")

# Copy the content of the file object to another file object
shutil.copyfileobj(source_file_object, destination_file_object)

सामान्य गलतियों को रोकना:

  • स्रोत और गंतव्य शटिल.कॉपी(), श्यूटिल.कॉपी2() और श्यूटिल.कॉपीफ़ाइल() में समान पथ निर्दिष्ट नहीं कर सकते। यदि स्रोत और गंतव्य समान फ़ाइल पथ निर्दिष्ट करते हैं तो अपवाद "SameFileError" उठाया जाएगा। यह त्रुटिshutil.copyfileobj() में नहीं उठाई गई है क्योंकि यदि यह पहले से मौजूद है तो यह गंतव्य फ़ाइल को अधिलेखित कर देती है।
  • यदि स्रोत किसी ऐसी फ़ाइल के लिए पथ निर्दिष्ट करता है जो मौजूद नहीं है, तो एक त्रुटि "FileNotFound" सामने आएगी।

निष्कर्ष

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

  • श्यूटिल.कॉपी: अनुमतियों सहित बुनियादी फ़ाइल प्रतिलिपि के लिए बढ़िया।
  • श्यूटिल.कॉपी2: टाइमस्टैम्प सहित अधिकांश मेटाडेटा के साथ फ़ाइलों की प्रतिलिपि बनाने के लिए आदर्श।
  • श्यूटिल.कॉपीफ़ाइल: मेटाडेटा के बिना तेज़, सरल सामग्री-प्रतिलिपि के लिए सर्वोत्तम।
  • shutil.copyfileobj: फ़ाइल जैसी वस्तुओं के बीच सटीक प्रतिलिपि बनाने में सक्षम बनाता है।

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

  1. shutil.mkdirs(): पुनरावर्ती रूप से निर्देशिकाएँ बनाता है। फ़ाइलों के परीक्षण या व्यवस्थित करने के लिए आवश्यक निर्देशिका संरचनाओं को स्थापित करने के लिए उपयोगी।
  2. shutil.copytree(): संपूर्ण निर्देशिका ट्री की पुनरावर्ती प्रतिलिपि बनाता है। परीक्षण या परिनियोजन के लिए वातावरण बनाने या बैकअप करने के लिए सभी फ़ाइलों और उप-निर्देशिकाओं सहित जटिल निर्देशिका संरचनाओं की नकल करने के लिए आदर्श।
  3. shutil.rmtree(): एक निर्देशिका ट्री को पुनरावर्ती रूप से हटाता है। परीक्षण के बाद सफाई करने या अस्थायी निर्देशिकाओं और उनकी सामग्री को पूरी तरह से हटाने के लिए आवश्यक है।
  4. shutil.move(): किसी फ़ाइल या निर्देशिका को किसी अन्य स्थान पर ले जाता है। संगठन या परिनियोजन प्रक्रिया को सुविधाजनक बनाते हुए, फ़ाइल सिस्टम के भीतर फ़ाइलों या निर्देशिकाओं को कुशलतापूर्वक स्थानांतरित करता है।
  5. shutil.make_archive(): किसी निर्देशिका और उसकी सामग्री का एक संग्रह (जैसे AIP या TAR) बनाता है। वितरण या बैकअप उद्देश्यों के लिए पैकेजिंग निर्देशिकाओं के लिए उपयोगी।

अधिक उपयोगिता फ़ंक्शन और विस्तृत विवरण आधिकारिक दस्तावेज़ में पाए जा सकते हैं।

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

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

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/janbaritech/pythons-shutil-module-for-automated-testing-413n?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3