शार्डिंग की जांच करें

जब परीक्षण संग्रह बड़ा होता है या निष्पादन का समय लंबा हो जाता है, तो हम टेस्ट को कई डिवाइसों में बांटने की संभावना: शार्डिंग.

शार्डिंग के लिए ज़रूरी शर्तें हैं का इस्तेमाल करके शार्डिंग की सुविधा का इस्तेमाल किया जा सकता है.

जांच करने वाले ज़्यादातर मुख्य रनर पहले से ही शार्डिंग का इस्तेमाल करते हैं. इसलिए, काम की ज़रूरत है. ये पहले से शार्डिंग का समर्थन करते हैं: इंस्ट्रुमेंटेशन परीक्षण, होस्ट-साइड ड्रिवन टेस्ट, GTest.

व्यापारी/कंपनी/कारोबारी, दो तरह से शार्डिंग का इस्तेमाल करने की सुविधा देते हैं: लोकल और डिस्ट्रिब्यूटेड. दोनों में कुछ समानताएं हैं. इसलिए, इस पेज पर सामान्य प्रॉपर्टी और हर चीज़ के बारे में जानकारी साफ़ तौर पर दी जाती है.

सामान्य प्रॉपर्टी

शार्ड बनाने की दोनों सुविधाएं, जांच करने वाले रनर की प्रॉपर्टी एक जैसी हैं: शार्ड स्वतंत्र और निर्भर होना चाहिए. दोनों शार्डिंग का पहला चरण है ताकि नतीजों की क्रम वाली पूरी सूची बनाई जा सके और फिर उन्हें अलग-अलग कैटगरी में बांटा जा सके अलग-अलग ग्रुप/शार्ड हैं.

शार्डिंग फ़ॉर्म में मुख्य अंतर, उनके परीक्षण करने के तरीके में है. ज़्यादा जानकारी के लिए, नीचे दिए गए सेक्शन देखें.

स्थानीय शार्डिंग

लोकल शार्डिंग का मतलब शार्ड किए गए को निष्पादित करने में शामिल सभी डिवाइस से है शुरू करने की सुविधा एक ही होस्ट से जुड़ी होती है.

प्लान लागू करना

लोकल शार्डिंग एक ही नेटवर्क से जुड़े सभी डिवाइसों का फ़ायदा लेती है उन टेस्ट का एक पूल बनाकर होस्ट करें, जिन्हें पूरा करना ज़रूरी है और हर टेस्ट बिना किसी शुल्क के किए जाने वाले डिवाइस पोलिंग टेस्ट (जैसा कि पिछले टेस्ट से किया जाता है). इससे, आपके डिवाइस को बेहतर तरीके से इस्तेमाल करने में मदद मिलती है. हम इसे यह भी कहते हैं डाइनैमिक शार्डिंग.

विकल्प

--shard-count XX

डिस्ट्रिब्यूटेड शार्डिंग

डिस्ट्रिब्यूटेड शार्डिंग का मतलब उन सभी डिवाइसों से है जो बातचीत शुरू करने वाला व्यक्ति कहीं भी रह सकता है और अलग-अलग शारीरिक गतिविधियों से जुड़ा हो सकता है होस्ट.

प्लान लागू करना

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

इस फ़ॉर्म की मुख्य विशेषता शार्ड हैं, जिन्हें हर स्थिति के बारे में पूरी जानकारी नहीं है और वे स्वतंत्र रूप से विफल हो सकते हैं.

मुख्य कमी यह है कि शार्ड की लंबाई आवश्यक रूप से बस संतुलित नहीं है क्योंकि हम हर शार्ड में हर टेस्ट के रनटाइम का पहले से अनुमान नहीं लगा सकते. डिस्ट्रिब्यूशन इसलिए किया जाता है, ताकि टेस्ट केस की संख्या करीब-करीब बराबर हो शामिल हैं.

विकल्प

--shard-count XX --shard-index XX

टोकन शार्डिंग

टोकन शार्डिंग का इस्तेमाल सिर्फ़ स्थानीय शार्डिंग के साथ किया जा सकता है. यह झंडा है गैर-स्थानीय शार्डिंग उपयोग के मामलों में असंतुलन. कभी-कभी कोई एक डिवाइस शेयर करने के दौरान कुछ ऐसे खास संसाधन होते हैं जो दूसरों के पास नहीं होते, जैसे कि सिम कार्ड. ऐसा हो सकता है कि कुछ जांच सिर्फ़ तब काम करें, जब वह खास संसाधन उपलब्ध हो और अगर ऐसा नहीं होता है, तो वह असफल हो जाएगा.

ऐसे मामलों में, टोकन शार्डिंग हमारा समाधान है. टेस्ट मॉड्यूल ये काम कर सकते हैं यह बताएं कि उन्हें अपने AndroidTest.xml में किस खास संसाधन की ज़रूरत है, और ट्रेड किया गया, जांचों को ऐसे डिवाइस पर रूट करता है जिसमें संसाधन मौजूद है.

एक्सएमएल कॉन्फ़िगरेशन

<option name="config-descriptor:metadata" key="token" value="SIM_CARD" />

टोकन का value, Trefed के प्रॉडक्ट से मेल खाता है TokenProperty और यह TokenProviderHelper.

इससे मॉड्यूल को उन डिवाइसों पर चलाया जा सकता है जो सही तरीके से काम कर सकते हैं अलग-अलग तरीकों से टेस्ट किए जा सकते हैं.

अगर कोई भी डिवाइस जांच नहीं कर सकता, तो क्या होगा?

अगर किसी भी डिवाइस में, टेस्ट मॉड्यूल से मेल खाने वाला संसाधन नहीं है, जांच मॉड्यूल में विफल रहा और उसे छोड़ दिया गया, क्योंकि वह ठीक से एक्ज़ीक्यूट नहीं हो पा रहा है.

उदाहरण के लिए, अगर कोई टेस्ट मॉड्यूल, सिम कार्ड का अनुरोध करता है, लेकिन किसी डिवाइस में सिम कार्ड की जांच के लिए मॉड्यूल काम नहीं कर रहा है.

लागू करना

इस फ़ीचर फ़्लैग को मुख्य ट्रेडेड कमांड लाइन पर पास करें:

--enable-token-sharding