स्वचालन आधुनिक सॉफ्टवेयर विकास और परीक्षण का एक महत्वपूर्ण हिस्सा है। यह समय बचाता है, मैन्युअल त्रुटियों को कम करता है, और प्रक्रियाओं में स्थिरता सुनिश्चित करता है। पाइटेस्ट फ्रेमवर्क पायथन में कार्यों को स्वचालित करने के लिए सबसे लोकप्रिय और शक्तिशाली उपकरणों में से एक है, खासकर परीक्षण में। यह हल्का है, उपयोग में आसान है, और स्वचालन प्रक्रिया को सरल बनाने के लिए कई प्लगइन्स और अंतर्निहित सुविधाएँ प्रदान करता है।
इस लेख में, हम पाइटेस्ट फ्रेमवर्क का उपयोग करके कार्यों को स्वचालित करने के सर्वोत्तम तरीकों का पता लगाएंगे। हम तीन व्यावहारिक उदाहरणों से गुजरेंगे, जो प्रदर्शित करेंगे कि पाइटेस्ट विभिन्न प्रकार के कार्यों को प्रभावी ढंग से कैसे स्वचालित कर सकता है।
पाइटेस्ट क्यों?
उदाहरणों पर गौर करने से पहले, आइए चर्चा करें कि कार्य स्वचालन के लिए पाइटेस्ट एक बढ़िया विकल्प क्यों है:
सरलता: पाइटेस्ट में एक सरल और संक्षिप्त वाक्यविन्यास है, जिससे परीक्षण मामलों को लिखना और पढ़ना आसान हो जाता है।
विस्तारशीलता: प्लगइन्स और हुक की एक विस्तृत श्रृंखला के साथ, पाइटेस्ट को विभिन्न परीक्षण आवश्यकताओं का समर्थन करने के लिए बढ़ाया जा सकता है।
फिक्स्चर: पाइटेस्ट फिक्स्चर प्रदान करता है, जो परीक्षणों के लिए पूर्व शर्त या स्थिति स्थापित करने, पुन: प्रयोज्यता को बढ़ाने के लिए एक शक्तिशाली सुविधा है।
एकीकरण: पाइटेस्ट सीआई/सीडी प्लेटफॉर्म सहित अन्य उपकरणों के साथ अच्छी तरह से एकीकृत होता है, जो एंड-टू-एंड ऑटोमेशन को सक्षम बनाता है।
उदाहरण 1: पाइटेस्ट के साथ एपीआई परीक्षण को स्वचालित करना
एपीआई कई अनुप्रयोगों की रीढ़ हैं, और उनकी विश्वसनीयता सुनिश्चित करना महत्वपूर्ण है। पाइटेस्ट, अनुरोध लाइब्रेरी के साथ, एपीआई परीक्षण को स्वचालित करना आसान बनाता है।
चरण 1: आवश्यक पुस्तकालय स्थापित करें
सबसे पहले, सुनिश्चित करें कि आपके पास पाइटेस्ट और अनुरोध लाइब्रेरी स्थापित है:
पाइप इंस्टॉल पाइटेस्ट अनुरोध
चरण 2: टेस्ट स्क्रिप्ट लिखें
आइए JSONPlacefolder जैसे सार्वजनिक API के लिए एक सरल GET अनुरोध को स्वचालित करें, जो परीक्षण के लिए एक नकली ऑनलाइन REST API है।
`आयात अनुरोध
पाइटेस्ट आयात करें
BASE_URL = "https://jsonplacefolder.typicode.com"
@pytest.fixture
def api_client():
# यह फिक्सचर एपीआई अनुरोध करने के लिए एक सत्र ऑब्जेक्ट प्रदान करता है
सत्र = अनुरोध.सत्र()
उपज सत्र
सत्र.बंद करें()
def test_get_posts(api_client):
# पोस्ट लाने के लिए GET अनुरोध भेजें
प्रतिक्रिया = api_client.get(f"{BASE_URL}/posts")
# दावे
ज़ोरदार प्रतिक्रिया.status_code == 200
assert len(response.json()) > 0, "कोई पोस्ट नहीं मिला"`
स्पष्टीकरण:
फिक्सचर (api_client): यह फिक्स्चर HTTP अनुरोध करने के लिए एक पुन: प्रयोज्य सत्र सेट करता है, यह सुनिश्चित करते हुए कि हमें हर बार एक नया सत्र बनाने की आवश्यकता नहीं है।
परीक्षण फ़ंक्शन (test_get_posts): यह फ़ंक्शन /posts एंडपॉइंट पर एक GET अनुरोध भेजता है और सत्यापित करता है कि:
स्थिति कोड 200 है, जो सफलता का संकेत देता है।
प्रतिक्रिया में कम से कम एक पोस्ट शामिल है।
चरण 3: परीक्षण चलाएँ
परीक्षण निष्पादित करने के लिए, निम्न आदेश चलाएँ:
दे घुमा के
कोड कॉपी करें
पाइटेस्ट -v test_api.py
यह क्यों काम करता है
परीक्षण संक्षिप्त और पुन: प्रयोज्य है, सेटअप और टियरडाउन को संभालने के लिए पाइटेस्ट के फिक्स्चर का लाभ उठाता है।
पाइटेस्ट का आउटपुट दिखाता है कि कौन से परीक्षण सफल हुए या विफल, जिससे समय के साथ एपीआई विश्वसनीयता को ट्रैक करना आसान हो जाता है।
उदाहरण 2: पाइटेस्ट और सेलेनियम के साथ वेब यूआई परीक्षण को स्वचालित करना
वेब यूआई परीक्षण यह सुनिश्चित करता है कि किसी एप्लिकेशन का फ्रंटएंड अपेक्षा के अनुरूप व्यवहार करता है। इन कार्यों को कुशलतापूर्वक स्वचालित करने के लिए पाइटेस्ट को सेलेनियम के साथ जोड़ा जा सकता है।
चरण 1: आवश्यक पुस्तकालय स्थापित करें
पाइटेस्ट, सेलेनियम और वेबड्राइवर मैनेजर स्थापित करें:
पाइप इंस्टॉल पाइटेस्ट सेलेनियम वेबड्राइवर-मैनेजर
चरण 2: टेस्ट स्क्रिप्ट लिखें
यहां बताया गया है कि आप एक साधारण वेब यूआई परीक्षण को कैसे स्वचालित कर सकते हैं जो Google पर खोज फ़ंक्शन को सत्यापित करता है:
`आयात पाइटेस्ट
सेलेनियम आयात वेबड्राइवर से
selenium.webdriver.common.से आयात द्वारा
selenium.webdriver.common.keys से कुंजी आयात करें
webdriver_manager.chrome से ChromeDriverManager आयात करें
@pytest.fixture
डीईएफ़ ब्राउज़र():
# Chrome वेबड्राइवर सेट करें
ड्राइवर = वेबड्राइवर.क्रोम(क्रोमड्राइवरमैनेजर().इंस्टॉल())
उपज चालक
ड्राइवर.छोड़ें()
def test_google_search(ब्राउज़र):
# Google पर नेविगेट करें
ब्राउज़र.गेट("https://www.google.com")`{% एंड्रॉ %}
# Find the search box and enter a query search_box = browser.find_element(By.NAME, "q") search_box.send_keys("Pytest Automation") search_box.send_keys(Keys.RETURN) # Assert that results are shown results = browser.find_elements(By.CSS_SELECTOR, "div.g") assert len(results) > 0, "No search results found"
स्पष्टीकरण:
फिक्स्चर (ब्राउज़र): यह फिक्सचर वेबड्राइवर-मैनेजर का उपयोग करके क्रोम वेबड्राइवर इंस्टेंस सेट करता है और यह सुनिश्चित करता है कि यह प्रत्येक परीक्षण के बाद ठीक से बंद हो।
परीक्षण फ़ंक्शन (test_google_search): यह फ़ंक्शन:
Google का मुखपृष्ठ खोलता है।
"पाइटेस्ट ऑटोमेशन" की खोज करता है।
दावा करता है कि खोज कम से कम एक परिणाम लौटाती है।
चरण 3: परीक्षण चलाएँ
इसके साथ परीक्षण निष्पादित करें:
{% raw %}pytest -v test_ui.py
यह क्यों काम करता है
पाइटेस्ट का फिक्स्चर ब्राउज़र इंस्टेंस को प्रबंधित करता है, जिससे परीक्षण सेटअप और टियरडाउन साफ और कुशल हो जाता है।
सेलेनियम का उपयोग करते हुए, स्क्रिप्ट एक वास्तविक उपयोगकर्ता की तरह वेब पेज के साथ इंटरैक्ट करती है, जिससे यह सुनिश्चित होता है कि यूआई अपेक्षित रूप से कार्य करता है।
उदाहरण 3: पाइटेस्ट और पांडा के साथ डेटा सत्यापन को स्वचालित करना
डेटा इंजीनियरिंग, एनालिटिक्स और ईटीएल प्रक्रियाओं में डेटा सत्यापन महत्वपूर्ण है। पाइटेस्ट पांडा लाइब्रेरी का उपयोग करके डेटा सत्यापन कार्यों को स्वचालित कर सकता है।
चरण 1: आवश्यक पुस्तकालय स्थापित करें
सुनिश्चित करें कि पाइटेस्ट और पांडा स्थापित हैं:
पाइप इंस्टाल पाइटेस्ट पांडा
चरण 2: टेस्ट स्क्रिप्ट लिखें
आइए एक कार्य को स्वचालित करें जहां हम सत्यापित करते हैं कि डेटासेट कुछ शर्तों को पूरा करता है (उदाहरण के लिए, कोई शून्य मान नहीं, सही डेटा प्रकार इत्यादि)।
`आयात पाइटेस्ट
पांडा को पीडी के रूप में आयात करें
@pytest.fixture
def नमूना_डेटा():
# एक नमूना डेटाफ़्रेम बनाएं
डेटा = {
"नाम": ["ऐलिस", "बॉब", "चार्ली", "डेविड"],
"आयु": [25, 30, 35, 40],
"ईमेल": ["[email protected]", "[email protected]", कोई नहीं, "[email protected]"]
}
डीएफ = पीडी.डेटाफ़्रेम(डेटा)
वापसी डीएफ
def test_data_not_null(sample_data):
# जांचें कि क्या डेटाफ़्रेम में कोई शून्य मान हैं
assertsample_data.isnull().sum().sum() == 0, "डेटा में शून्य मान हैं"
def test_age_column_type(sample_data):
# सत्यापित करें कि 'आयु' कॉलम पूर्णांक प्रकार का है
एस्टर सैंपल_डेटा['आयु'].dtype == 'int64', "आयु स्तंभ पूर्णांक प्रकार का नहीं है"`
स्पष्टीकरण:
फिक्स्चर (नमूना_डेटा): यह फिक्स्चर एक नमूना डेटाफ़्रेम सेट करता है, एक डेटासेट का अनुकरण करता है जिसे कई परीक्षणों में पुन: उपयोग किया जा सकता है।
परीक्षण फ़ंक्शन (test_data_not_null): यह परीक्षण जांच करता है कि डेटाफ़्रेम में कोई शून्य मान हैं या नहीं और यदि कोई पाया जाता है तो विफल हो जाता है।
परीक्षण फ़ंक्शन (test_age_column_type): यह परीक्षण सत्यापित करता है कि आयु स्तंभ पूर्णांक प्रकार का है, जो डेटा स्थिरता सुनिश्चित करता है।
चरण 3: परीक्षण चलाएँ
इसके साथ परीक्षण निष्पादित करें:
pytest -v test_data.py
यह क्यों काम करता है
पाइटेस्ट का लचीलापन डेटा-केंद्रित परीक्षणों की अनुमति देता है, जिससे यह सुनिश्चित होता है कि डेटासेट अपेक्षित मानदंडों को पूरा करते हैं।
यह फिक्स्चर कोड की नकल किए बिना परीक्षण डेटा को सेट अप और संशोधित करना आसान बनाता है।
पाइटेस्ट के साथ कार्यों को स्वचालित करने के लिए सर्वोत्तम अभ्यास
सेटअप और टियरडाउन के लिए फिक्स्चर का उपयोग करें: फिक्स्चर सेटअप और टियरडाउन को कुशलतापूर्वक प्रबंधित करने में मदद करते हैं, जिससे आपके परीक्षण मॉड्यूलर और पुन: प्रयोज्य बन जाते हैं।
लीवरेज प्लगइन्स: आपके स्वचालन प्रयासों को बढ़ाने के लिए पाइस्टेस्ट के पास विभिन्न प्रकार के प्लगइन्स हैं (उदाहरण के लिए, HTML रिपोर्ट के लिए pytest-html, समानांतर निष्पादन के लिए pytest-xdist)।
पैरामीटराइज़ परीक्षण: डेटा या इनपुट के कई सेटों का परीक्षण करने के लिए @pytest.mark.parametrize का उपयोग करें, जिससे कोड दोहराव कम हो जाए।
सीआई/सीडी पाइपलाइनों के साथ एकीकृत करें: निरंतर परीक्षण के लिए जेनकिंस या गिटहब एक्शन जैसे सीआई/सीडी टूल के साथ पाइटेस्ट परीक्षणों को एकीकृत करें।
निष्कर्ष
पाइटेस्ट एपीआई और वेब यूआई परीक्षण से लेकर डेटा सत्यापन तक विभिन्न प्रकार के कार्यों को स्वचालित करने के लिए एक शक्तिशाली उपकरण है। इसकी सादगी, लचीलेपन और व्यापक प्लगइन समर्थन के साथ मिलकर, इसे डेवलपर्स और क्यूए इंजीनियरों के लिए एक उत्कृष्ट विकल्प बनाती है। पाइटेस्ट की सुविधाओं जैसे फिक्स्चर, पैरामीटराइजेशन और सीआई/सीडी पाइपलाइनों के साथ एकीकरण का लाभ उठाकर, आप मजबूत, रखरखाव योग्य और स्केलेबल स्वचालन ढांचे का निर्माण कर सकते हैं।
यदि आप अपने वर्कफ़्लो को स्वचालित करना चाहते हैं या अपनी परीक्षण प्रक्रिया को बढ़ाना चाहते हैं, तो पाइटेस्ट एक बेहतरीन प्रारंभिक बिंदु है। शुभ परीक्षण!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3