paint-brush
टेस्ट रनटाइम को मापना: अपने टेस्ट सूट के प्रदर्शन को कैसे अनुकूलित करेंद्वारा@launchable
7,485 रीडिंग
7,485 रीडिंग

टेस्ट रनटाइम को मापना: अपने टेस्ट सूट के प्रदर्शन को कैसे अनुकूलित करें

द्वारा Launchable6m2023/07/25
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

समझें कि परीक्षण रनटाइम को मापने से आपके विकास चक्रों में तेजी लाने में मदद मिल सकती है और माप को पूरा करने के इष्टतम तरीके क्या हैं।
featured image - टेस्ट रनटाइम को मापना: अपने टेस्ट सूट के प्रदर्शन को कैसे अनुकूलित करें
Launchable HackerNoon profile picture

मैनुअल और एआई-पावर्ड टेस्ट रनटाइम दृष्टिकोण का उपयोग आप आज से शुरू कर सकते हैं

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


प्रगति को आगे बढ़ाने के लिए विकास टीमों को अपने परीक्षणों में तेजी लाने में सक्षम होने की आवश्यकता है, लेकिन यह इतना आसान नहीं है।


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

परीक्षण रनटाइम को मापने के लिए पारंपरिक दृष्टिकोण

परीक्षण रनटाइम मापने के कई तरीके हैं, जो लगभग किसी की भी आवश्यकता के अनुरूप पर्याप्त हैं। हालाँकि, इसका मतलब यह नहीं है कि वे सर्वोत्तम दृष्टिकोण हैं। आइए कुछ सबसे सामान्य तरीकों के बारे में बात करें जिनके बारे में आपने सुना होगा:


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


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


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

पायथन में लॉग उदाहरण का विश्लेषण

जब आपका परीक्षण ढांचा लॉग उत्पन्न करता है, तो आप परीक्षण प्रारंभ समय और परीक्षण पूरा होने का समय जैसी आवश्यक जानकारी निकालने के लिए उन्हें पार्स कर सकते हैं।


 import re def parse_logs(log_file): with open(log_file, 'r') as f: logs = f.readlines() test_start_time = None test_end_time = None for line in logs: if 'Test started' in line: test_start_time = extract_timestamp(line) elif 'Test completed' in line: test_end_time = extract_timestamp(line) if test_start_time and test_end_time: test_runtime = test_end_time - test_start_time print(f"Test runtime: {test_runtime}") def extract_timestamp(log_line): # Regular expression to extract timestamp (assuming format: [YYYY-MM-DD HH:MM:SS]) timestamp_pattern = r'\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\]' match = re.search(timestamp_pattern, log_line) if match: timestamp = match.group(1) return convert_to_datetime(timestamp) return None def convert_to_datetime(timestamp): from datetime import datetime datetime_format = "%Y-%m-%d %H:%M:%S" return datetime.strptime(timestamp, datetime_format) # Usage parse_logs('test_logs.txt')


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

पायथन के साथ टाइमस्टैम्प उदाहरण

दूसरा तरीका यह है कि टाइमस्टैम्प को सीधे अपने परीक्षण कोड में रिकॉर्ड किया जाए। नीचे दिए गए उदाहरण में, run_test फ़ंक्शन परीक्षण तर्क निष्पादित करने से पहले time.time() का उपयोग करके प्रारंभ समय को रिकॉर्ड करता है।


परीक्षण पूरा होने के बाद, यह अंतिम समय से प्रारंभ समय घटाकर रनटाइम की गणना करता है, जिसे time.time() का उपयोग करके भी प्राप्त किया जाता है।


परिणाम कुछ ही सेकंड में परीक्षण रनटाइम के रूप में मुद्रित हो जाता है।


 import time def run_test(): start_time = time.time() # Test logic goes here # ... end_time = time.time() test_runtime = end_time - start_time print(f"Test runtime: {test_runtime} seconds") # Usage run_test()


आपके दृष्टिकोण के बावजूद, इन तरीकों में कुछ कमियाँ होती हैं। इन विधियों से पूर्णतः सटीक परिणाम प्राप्त करना कठिन है, चाहे वह मानवीय त्रुटि की संभावना हो या बाहरी कारकों की।


साथ ही, इनमें से कई आपके परीक्षण के अनुरूप नहीं हो सकते। इसका मतलब है कि आपको मापने का अधिक सटीक तरीका खोजने की आवश्यकता है।

वैसे भी मुझे टेस्ट रनटाइम क्यों मापना चाहिए?

हम कैसे के बारे में लगातार चर्चा करते रहे हैं, लेकिन क्यों के बारे में क्या? आपके परीक्षण महत्वपूर्ण हैं, लेकिन परीक्षण पाइपलाइन डिलीवरी में बाधा बन सकती है।


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

समानांतरीकरण अनुकूलन

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

संसाधनों का आवंटन

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

परीक्षण प्राथमिकता

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

निरंतर सुधार

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


यह, बदले में, विकास प्रक्रिया की समग्र चपलता में सुधार करता है और अधिक बार पुनरावृत्तियों की अनुमति देता है।

लॉन्चेबल के साथ ट्रैकिंग टेस्ट रनटाइम और क्रिटिकल KPI को स्वचालित करें

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

लॉन्च करने योग्य माप रनटाइम का परीक्षण कैसे करता है?

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


और एक बार जब हम अंदर आ जाते हैं, तो हम कई बिल्डों में परीक्षण रनटाइम को निर्बाध रूप से माप सकते हैं, जिससे आपको केवल रनटाइम से परे आपके परीक्षणों में महत्वपूर्ण अंतर्दृष्टि मिलती है।

पूर्ण परीक्षण सूट स्वास्थ्य के लिए रनटाइम से परे गहन परीक्षण अंतर्दृष्टि

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


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


  • परीक्षण सत्र की अवधि को ट्रैक करें: आपके परीक्षण सूट को कई सत्रों में चलाने में लगने वाले समय को मापें। हमारी ट्रैकिंग सुविधा उन परीक्षणों को उजागर करती है जो अपेक्षित अवधि से अधिक हैं, जिससे आपको किसी भी प्रदर्शन समस्या को पहचानने और हल करने में मदद मिलती है।


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


  • परीक्षण सत्र विफलता अनुपात की पहचान करें: पिनपॉइंट परीक्षण जो अक्सर विफल होते हैं और परीक्षण या वर्तमान निर्माण के साथ संभावित मुद्दों की जांच करते हैं। अपनी परीक्षण प्रक्रिया की स्थिरता के बारे में बहुमूल्य जानकारी प्राप्त करें और समग्र गुणवत्ता में सुधार के लिए सोच-समझकर निर्णय लें।


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


अपने परीक्षणों के भीतर सुइट पैटर्न और रुझानों का परीक्षण करने के लिए आवश्यक सभी जानकारी प्राप्त करें, जिससे आप अपने परीक्षणों को अनुकूलित करने के लिए सूचित, डेटा-संचालित निर्णय ले सकें। और ऐसा करके, आप अपनी समग्र परीक्षण प्रक्रिया को सुव्यवस्थित कर सकते हैं।