OmniLab ATS एक टेस्टिंग टूल है. Android डेवलपर और टेस्ट इंजीनियर इसका इस्तेमाल, स्टैंडर्ड Android टेस्ट सुइट चलाने के लिए यूज़र इंटरफ़ेस (यूआई) को लागू करने के लिए कर सकते हैं. जैसे, Android Compatibility Test Suite (CTS). यह टूल, Trade Federation (TF) और Google Mobly जैसे अलग-अलग टेस्ट फ़्रेमवर्क के लिए वेब इंटरफ़ेस के तौर पर काम करता है. इससे, कम से कम सेटअप के साथ टेस्ट डिवाइसों के सेट पर सीटीएस और मल्टी-डिवाइस टेस्ट चलाए जा सकते हैं. साथ ही, लगातार टेस्ट चलाने के लिए शेड्यूल सेट किया जा सकता है.
OmniLab ATS सेट अप करना
इस सेक्शन में, OmniLab ATS को इंस्टॉल और सेट अप करने का तरीका बताया गया है.
OmniLab ATS, इन जगहों से सोर्स कोड का इस्तेमाल करता है:
- OmniLab ATS सोर्स कोड
- TradeFed Cluster का सोर्स कोड
OmniLab ATS इंस्टॉल करना
यह टूल अन्य ऑपरेटिंग सिस्टम पर भी काम कर सकता है. हालांकि, इसके लिए अलग-अलग चरणों का पालन करना पड़ सकता है.टेस्ट सुइट चलाने के लिए, हार्डवेयर और सॉफ़्टवेयर से जुड़ी सभी ज़रूरी शर्तों का पालन करें.
सीटीएस की ज़रूरी शर्तें, source.android.com पर दी गई हैं.
OmniLab ATS के लिए, हार्डवेयर से जुड़ी कोई अतिरिक्त ज़रूरी शर्तें नहीं हैं. हालांकि, हम CTS होस्ट करने की ज़रूरी शर्तों को शुरुआती बिंदु के तौर पर इस्तेमाल करने का सुझाव देते हैं.
OmniLab ATS को इंस्टॉल करने के दो तरीके हैं:
- इंस्टॉलर प्रोग्राम चलाएं.
- इसे मैन्युअल तरीके से इंस्टॉल करें. इसके लिए, आपको कई प्रोग्राम और संसाधन इंस्टॉल करने होंगे.
इंस्टॉलर प्रोग्राम की मदद से इंस्टॉल करना
Ubuntu 20.04 और इसके बाद के वर्शन पर, इंस्टॉलर प्रोग्राम, OmniLab ATS को चलाने के लिए ज़रूरी सभी प्रोग्राम और संसाधनों को इंस्टॉल और कॉन्फ़िगर करता है.
इंस्टॉल प्रोग्राम का इस्तेमाल करने के लिए:
इंस्टॉलर प्रोग्राम चलाएं:
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
OmniLab ATS CLI का इंस्टॉल किया गया वर्शन देखने के लिए,
mtt version
चलाएं.
मैन्युअल तरीके से इंस्टॉल करना
Docker इंस्टॉल करना
अपनी Linux मशीन पर, Docker Community Edition (CE) इंस्टॉल करने के लिए दिए गए निर्देशों का पालन करें.
अनुमति में किए गए बदलावों को लागू करने के लिए, आपको टर्मिनल विंडो को रीस्टार्ट करना पड़ सकता है. इसके अलावा, आपको साइन आउट करके फिर से साइन इन करना पड़ सकता है.
Python 3 इंस्टॉल करना
OmniLab ATS CLI की पुष्टि, Python के 3.7 से 3.11 वर्शन के साथ की गई है.
Ubuntu 16.04 या इससे पहले के वर्शन के लिए, सबसे पहले Python 3 के लिए रिपॉज़िटरी जोड़ें. इसके लिए, इनमें से कोई एक तरीका अपनाएं:
इस निर्देश को चलाएं:
sudo add-apt-repository ppa:deadsnakes/ppa
सोर्स से रिपॉज़िटरी बनाएं और इंस्टॉल करें.
Python 3 को इंस्टॉल करने के लिए, ये कमांड चलाएं:
sudo apt-get update
sudo apt install python3 python3-distutils
Python 3 के किसी वर्शन (उदाहरण के लिए, 3.10) को इंस्टॉल करने के लिए, इन कमांड को चलाएं:
sudo apt-get update
sudo apt install python3.10 python3.10-distutils
OmniLab ATS CLI पाना
कमांड लाइन इंटरफ़ेस (सीएलआई) पैकेज यहां से डाउनलोड करें.
OmniLab ATS शुरू करें
इस कमांड का इस्तेमाल करके, OmniLab ATS शुरू करें:
mtt start
पहली बार यूज़र इंटरफ़ेस (यूआई) शुरू करने पर, इसे दिखने में कुछ मिनट लग सकते हैं. सीएलआई, ब्राउज़र में यूआई को ऐक्सेस करने के लिए एक वेब यूआरएल दिखाता है. डिफ़ॉल्ट रूप से, वेब यूआरएल localhost:8000
होता है. अगर ज़रूरत हो, तो स्टार्टअप के दौरान --port
फ़्लैग का इस्तेमाल करके, डिफ़ॉल्ट पोर्ट को बदला जा सकता है.
अगर कोई नया वर्शन उपलब्ध है, तो मौजूदा वर्शन को अपडेट किया जा सकता है. नई रिलीज़ के बारे में जानने के लिए, रिलीज़ नोट देखें.
मौजूदा वर्शन पर अपडेट करने के लिए, यह कमांड चलाएं:
mtt start --force_update
ऐप्लिकेशन को रोकने के लिए, यह कमांड चलाएं:
mtt stop
अन्य कमांड की सूची देखने के लिए, इसका इस्तेमाल करें:
mtt --help
डेटाबेस का बैक अप लेना और उसे वापस लाना
OmniLab ATS डेटाबेस का बैक अप लेने के लिए, ऐप्लिकेशन को बंद करें और यह कमांड चलाएं. इससे मौजूदा डेटाबेस का बैक अप, आपकी होम डायरेक्ट्री में mtt-backup.tar
नाम की TAR फ़ाइल में सेव हो जाएगा:
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."
ऐप्लिकेशन को वापस लाने के लिए, ऐप्लिकेशन शुरू करने से पहले यह कमांड चलाएं:
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"
सेटअप विज़ार्ड
OmniLab ATS को पहली बार इंस्टॉल करने और चलाने के बाद, सेटअप विज़र्ड आपको कुछ चरणों के बारे में बताता है. इससे आपको अपने एनवायरमेंट के हिसाब से टूल को पसंद के मुताबिक बनाने में मदद मिलती है. यहां किए गए किसी भी बदलाव को, बाद में सेटिंग पेज पर जाकर फिर से कॉन्फ़िगर किया जा सकता है.
कॉन्फ़िगरेशन का बैकअप वापस लाना
अगर आपके पास किसी दूसरे OmniLab ATS होस्ट से बैक अप ली गई कॉन्फ़िगरेशन फ़ाइल है, तो उस फ़ाइल को अपलोड किया जा सकता है. इससे, उस होस्ट से बदले गए किसी भी कॉन्फ़िगरेशन को कॉपी किया जा सकता है. इसके लिए, फ़ाइल अपलोड करें बटन पर क्लिक करें.
पहली इमेज. कॉन्फ़िगरेशन के बैकअप को वापस लाना.
डिफ़ॉल्ट सेवा खाता सेट करना
आपके पास ऐसा सेवा खाता सेट करने का विकल्प होता है जिसका इस्तेमाल OmniLab ATS, डिफ़ॉल्ट रूप से आपके संसाधनों को ऐक्सेस करने के लिए करता है. उदाहरण के लिए, Google Cloud Storage, Google Drive. अपने सेवा खाते की पुष्टि करने के लिए, सेवा खाते की कुंजी अपलोड करें पर क्लिक करें. इसके बाद, अपने सेवा खाते की JSON कुंजी वाली फ़ाइल चुनें.
दूसरी इमेज. सेवा खाता सेट किया जा रहा है.
सेवा खाते की पुष्टि हो जाने के बाद, खाते का ईमेल पता पेज के सबसे ऊपर दाएं कोने में दिखता है. सेवा खाता बदलने के लिए, खाते के नाम पर क्लिक करें. इसके बाद, मौजूदा डिफ़ॉल्ट खाता हटाएं और सेवा खाते का नया पासकोड अपलोड करें.
तीसरी इमेज. सेवा खाता बदलना.
कॉन्फ़िगरेशन सेट इंपोर्ट करना
कॉन्फ़िग सेट, टेस्ट सुइट चलाने के लिए कॉन्फ़िगरेशन का एक बंडल होता है. इसमें डिवाइस से जुड़ी कार्रवाइयां और बिल्ड चैनल शामिल होते हैं. कॉन्फ़िगरेशन सेट, Google Cloud Storage (GCS) के किसी बकेट में होस्ट किए जाते हैं. GCS बिल्ड चैनल की पुष्टि करने के बाद, आपको उन सभी कॉन्फ़िगरेशन सेट की सूची दिखेगी जो आपके लिए उपलब्ध हैं.
आपको Test Station होस्ट में जो भी कॉन्फ़िगरेशन सेट जोड़ने हैं उन्हें चुनें. इसके बाद, चुने गए आइटम इंपोर्ट करें पर क्लिक करें.
चौथी इमेज. कॉन्फ़िगरेशन सेट इंपोर्ट करना.
वाई-फ़ाई की सेटिंग शामिल करें
कुछ सीटीएस टेस्ट के लिए, आपके डिवाइस का वाई-फ़ाई हॉटस्पॉट से कनेक्ट होना ज़रूरी है. अपना वाई-फ़ाई नेटवर्क चुनने के लिए, वाईफ़ाई एसएसआईडी और वाईफ़ाई पीएसके डालें. वाईफ़ाई पीएसके डालना ज़रूरी नहीं है.
पांचवीं इमेज. वाई-फ़ाई हॉटस्पॉट की सेटिंग.
सेटअप विज़र्ड पूरा करने के बाद, पेज फिर से लोड होता है और नई सेटिंग लागू हो जाती हैं.
कोई डिवाइस कनेक्ट करें
टेस्टिंग के लिए किसी डिवाइस का इस्तेमाल करने के लिए, यूएसबी डीबग करने का विकल्प चालू होना चाहिए. डीबग करने की सुविधा चालू करने के लिए:
डेवलपर के लिए सेटिंग और टूल चालू करना और डीबग करना में दिए गए निर्देशों का पालन करें.
अगर आपको कस्टम ADB पासकोड के साथ पहले से लोड की गई Android की टेस्ट बिल्ड का इस्तेमाल करना है, तो
.adb_key
फ़ाइलों को~/.android/
डायरेक्ट्री में रखें.ये फ़ाइलें अपने-आप लोड हो जाती हैं और ADB को पास कर दी जाती हैं. इससे, डिवाइस को फ़्लैश करने के बाद, यूएसबी डीबगिंग की सुविधा अपने-आप चालू हो जाती है. ऐसा उन डिवाइसों के लिए होता है जिन पर ये बिल्ड चल रहे हैं.
यूएसबी का इस्तेमाल करके, डिवाइस को होस्ट मशीन से कनेक्ट करें.
वेब इंटरफ़ेस को रीफ़्रेश करने के एक मिनट के अंदर, डिवाइस OmniLab ATS के डिवाइस टैब में दिखता है. इस टैब पर, डिवाइसों की स्थिति भी देखी जा सकती है.
छठी इमेज. किसी डिवाइस को कनेक्ट करना.
डिवाइस की अलग-अलग स्थितियां ये हैं:
- उपलब्ध है - डिवाइस कनेक्ट है और जांच करने के लिए तैयार है.
- डिवाइस असाइन किया गया - डिवाइस कनेक्ट है और उस पर टेस्ट चल रहा है. हर डिवाइस पर एक बार में सिर्फ़ एक टेस्ट चलाया जा सकता है. इसलिए, डिवाइस को नया टेस्ट चलाने से पहले, मौजूदा टेस्ट पूरा करना होगा.
परीक्षण चलाना
कोई टेस्ट चुनें
OmniLab ATS में, पहले से बंडल किए गए सीटीएस कॉन्फ़िगरेशन का सेट होता है. इनमें से कोई एक टेस्ट चलाने के लिए, टेस्ट सुइट टैब पर जाएं. इसके बाद, चुने गए टेस्ट के लिए टेस्ट चलाएं पर क्लिक करें.
सातवीं इमेज. कोई टेस्ट चुनना.
नए टेस्ट जोड़ने या उनमें बदलाव करने के लिए, टेस्ट जोड़ना लेख पढ़ें.
टेस्ट रन कॉन्फ़िगर करना
इस टेस्ट रन के लिए इस्तेमाल किए जाने वाले पैरामीटर में बदलाव करें. ज़्यादातर पैरामीटर में, चुने गए टेस्ट कॉन्फ़िगरेशन में तय की गई वैल्यू पहले से भरी होती हैं.
डिफ़ॉल्ट वैल्यू का इस्तेमाल करके यह चरण पूरा किया जा सकता है. हालांकि, अपनी ज़रूरतों के हिसाब से, फिर से कोशिश करने की ज़्यादा से ज़्यादा संख्या और कमांड जैसे किसी भी पैरामीटर में बदलाव किया जा सकता है.
आठवीं इमेज. टेस्ट रन कॉन्फ़िगर करना.
टेस्ट रन के पैरामीटर ये हैं:
- नाम - उस टेस्ट सुइट का नाम जिसे आपको चलाना है.
- रन काउंट - शेड्यूल किए जाने पर, इस टेस्ट रन को कितनी बार चलाया जाना चाहिए. टेस्ट रन को शेड्यूल करने के लिए, Trade Federation का इस्तेमाल किया जाता है. अगर ऐसा करने की क्षमता है, तो यह एक साथ 20 टेस्ट रन कर सकता है.
- ज़्यादा से ज़्यादा बार कोशिश करें - अगर कम से कम एक टेस्ट फ़ेल हो जाता है, तो टेस्ट रन को ज़्यादा से ज़्यादा कितनी बार फिर से चलाया जा सकता है. आम तौर पर, फ़्लैकी टेस्ट को हैंडल करने के लिए, CTS को पूरी तरह से चलाने के लिए, इसे 4 से 6 बार फिर से कोशिश करने के लिए सेट किया जाता है.
- कतार में लगने का समय खत्म होना - अगर कोई टेस्ट रन बहुत देर तक कतार में है स्थिति में रहता है, तो वह अपने-आप रद्द हो जाता है. यहां रद्द करने से पहले इंतज़ार करने की अवधि तय करें. डिफ़ॉल्ट रूप से, यह रिपोर्ट हर 24 घंटे में अपलोड की जाती है.
Command - टेस्ट सुइट चलाने का निर्देश. यहां अतिरिक्त कमांड लाइन आर्ग्युमेंट डाले जा सकते हैं. उदाहरण के लिए, CTS 8.1 में किसी खास मॉड्यूल को इस कमांड के साथ चलाएं:
cts-suite -m ShortModuleName
फिर से कोशिश करने की कमांड - टेस्ट सुइट को फिर से आज़माने के लिए इस्तेमाल की जाने वाली कमांड. यहां अतिरिक्त कमांड लाइन आर्ग्युमेंट जोड़े जा सकते हैं. उदाहरण के लिए, CTS 8.1 में सिर्फ़ किसी मॉड्यूल को फिर से आज़माने के लिए, इस कमांड का इस्तेमाल करें:
cts --retry 0 -m ShortModuleName
फिर से कोशिश करने के लिए इस्तेमाल किए गए तर्क, शुरुआती निर्देश के साथ उपलब्ध तर्कों से अलग हो सकते हैं. इसलिए, चुनी गई टेस्ट सुइट के लिए, आधिकारिक साइट पर जाकर काम करने वाले पैरामीटर देखें.
पिछला टेस्ट रन - अगर आपको पिछले टेस्ट रन को फिर से चलाना है, तो:
लोकल - अगर रन, मौजूदा होस्ट पर शुरू किया गया था, तो टेस्ट रन का वह आईडी डालें जो टेस्ट रन की जानकारी देखते समय दिखता है.
नौवीं इमेज. स्थानीय तौर पर पहले किए गए टेस्ट रन.
रिमोट - अगर जांच किसी दूसरे होस्ट पर शुरू की गई थी, तो रिमोट को चुनकर, जांच के नतीजों वाली फ़ाइल अपलोड करें. इसके लिए, जांच के नतीजों वाली फ़ाइल अपलोड करें पर क्लिक करें. इसके बाद, अपनी लोकल स्टोरेज से कोई फ़ाइल चुनें.
दसवीं इमेज. पिछले टेस्ट को रिमोट से चलाया गया.
डिवाइस चुनें
टेस्ट सुइट चलाने के लिए डिवाइसों को चुनने के लिए, चेकबॉक्स पर क्लिक करें. चुने गए डिवाइसों की संख्या के हिसाब से, शार्ड की संख्या अपने-आप बदल जाएगी.
ग्यारहवीं इमेज. डिवाइसों को चुना जा रहा है.
डिवाइस के सीरियल नंबर के अलावा, अन्य एट्रिब्यूट के हिसाब से डिवाइस चुनने के लिए, "डिवाइस की खास बातें" को मैन्युअल तरीके से डालें. उदाहरण के लिए, अगर आपको ऐसे तीन डिवाइस चुनने हैं जिनके प्रॉडक्ट का नाम "bramble" है, तो यह डालें:
product:bramble;product:bramble;product:bramble
इन एट्रिब्यूट का इस्तेमाल किया जा सकता है:
- build_id
- device_serial
- device_type
- होस्टनाम
- प्रॉडक्ट
- product_variant
- sim_state
टेस्ट रन को लागू करने के लिए, चुने गए सभी डिवाइसों का उपलब्ध है स्थिति में होना ज़रूरी है. टेस्ट रन लागू होने पर, ये सभी डिवाइस बंटित किया गया स्थिति में बदल जाते हैं. जब तक डिवाइस उपलब्ध नहीं हो जाते, तब तक टेस्ट रन की स्थिति लाइन में लगा है होती है.
डिवाइस की कार्रवाइयां जोड़ना
डिवाइस ऐक्शन, ऐसी स्क्रिप्ट होती हैं जिन्हें हर टेस्ट रन से पहले लागू किया जा सकता है. डिवाइस पर की जाने वाली कुछ कार्रवाइयां पहले से कॉन्फ़िगर होती हैं. जैसे, फ़्लैश करना और रीबूट करना. डिवाइस से जुड़ी नई कार्रवाइयां बनाने के लिए, डिवाइस से जुड़ी नई कार्रवाई बनाना लेख पढ़ें.
बारहवीं इमेज. डिवाइस की कार्रवाइयां.
टेस्ट रन में डिवाइस ऐक्शन जोड़ने के लिए, नया ऐक्शन जोड़ें पर क्लिक करें. इसके बाद, जोड़ने के लिए ऐक्शन के चेकबॉक्स चुनें और ऐक्शन जोड़ें पर क्लिक करें. डिवाइस की कार्रवाइयां क्रम से की जाती हैं. कार्रवाइयों को खींचकर उनकी जगह बदली जा सकती है.
तेरहवीं इमेज. कार्रवाइयों का क्रम बदलना.
टेस्ट के संसाधन सेट अप करना
टेस्ट रिसॉर्स, वे फ़ाइलें होती हैं जिनकी ज़रूरत टेस्ट रन को पूरा करने के लिए होती है. उदाहरण के लिए, सीटीएस चलाने के लिए android-cts*.zip
फ़ाइल की ज़रूरत होती है. साथ ही, किसी डिवाइस को फ़्लैश करने के लिए, आपको बिल्ड इमेज देनी होती है.
टेस्ट सुइट की ज़िप फ़ाइल के लिए डाउनलोड यूआरएल, डिफ़ॉल्ट रूप से Google Drive के उन लिंक पर सेट होना चाहिए जो पार्टनर को दिए गए हैं. ब्राउज़ करें पर क्लिक करके, कोई दूसरी फ़ाइल चुनी जा सकती है. पॉप-अप विंडो में, फ़ाइल डाउनलोड करने का लिंक डाला जा सकता है. इसके अलावा, पुष्टि किए गए बिल्ड चैनल से किसी फ़ाइल का इस्तेमाल किया जा सकता है या लोकल स्टोरेज से इस्तेमाल करने के लिए कोई फ़ाइल अपलोड की जा सकती है.
चौदहवीं इमेज. जांच के संसाधन.
यहां वेब यूआरएल के हिसाब से, टेस्ट रिसॉर्स चुनने के लिए पॉप-अप विंडो दी गई है. डाउनलोड यूआरएल लिंक डाला जा सकता है. इसके बाद, चुनें बटन पर क्लिक करके, चुने गए विकल्प की पुष्टि करें.
15वीं इमेज. टेस्ट रिसॉर्स सिलेक्टर - वेब यूआरएल.
अगर आपने Google Drive, Google Cloud Storage (GCS) या अन्य चैनलों पर संसाधन अपलोड किए हैं, तो आपके पास किसी चैनल के टैब पर जाकर, वहां मौजूद संसाधन चुनने का विकल्प भी है. Google Drive से कोई संसाधन चुनने का उदाहरण यहां दिया गया है.
16वीं इमेज. Test Resource Selector - Google Drive.
सिर्फ़ फ़ाइलें चुनने के अलावा, वाइल्डकार्ड वर्णों का इस्तेमाल फ़ाइल का नाम फ़ील्ड में भी किया जा सकता है. दस्तावेज़ यहां देखा जा सकता है.
17वीं इमेज. टेस्ट रिसॉर्स सिलेक्टर - वाइल्डकार्ड पैटर्न के साथ काम करता है.
OmniLab ATS के लोकल फ़ाइल स्टोरेज से भी कोई फ़ाइल चुनी जा सकती है. इस स्टोरेज में फ़ाइलें अपलोड की जा सकती हैं. इसके अलावा, सीधे तौर पर लोकल फ़ाइलों और डायरेक्ट्री का इस्तेमाल किया जा सकता है.
18वीं इमेज. टेस्ट रिसॉर्स सिलेक्टर - लोकल फ़ाइल स्टोर.
फिर से चलाने के कॉन्फ़िगरेशन जोड़ें
ऐसे रिरन शेड्यूल किए जा सकते हैं जो प्राइमरी रन पूरा होने के बाद शुरू होते हैं और उसके नतीजे लोड करते हैं. हालांकि, इनमें अलग-अलग डिवाइस, कार्रवाइयां या संसाधनों का इस्तेमाल किया जा सकता है.
19वीं इमेज. फिर से चलाने के कॉन्फ़िगरेशन जोड़े जा रहे हैं.
टेस्ट रन शुरू करना
टेस्ट रन के लिए ज़रूरी जानकारी डालने के बाद, टेस्ट रन शुरू करें पर क्लिक करें. अगर दी गई सभी जानकारी मान्य है, तो टेस्ट रन शुरू हो जाता है. इसके बाद, आपको एक ऐसे पेज पर रीडायरेक्ट किया जाता है जहां टेस्ट रन की जानकारी और उसकी प्रोग्रेस देखी जा सकती है.
20वीं इमेज. टेस्ट रन शुरू किया जा रहा है.
टेस्ट प्लान बनाना
टेस्ट प्लान का इस्तेमाल, समय-समय पर टेस्ट रन बनाने के लिए किया जाता है. उदाहरण के लिए, हर दिन शाम 5 बजे CTS 9.0 चलाना. नया टेस्ट प्लान बनाने के लिए, नया टेस्ट प्लान बनाएं पर क्लिक करें.
21वीं इमेज. टेस्ट प्लान बनाना.
टेस्ट प्लान कॉन्फ़िगर करना
टेस्ट प्लान का नाम डालें और वे लेबल जोड़ें जिन्हें आपको जोड़ना है. इसके बाद, इस्तेमाल करने के लिए कोई शेड्यूल चुनें.
- मैन्युअल - टेस्ट प्लान, टेस्ट रन सिर्फ़ तब बनाता है, जब कोई उपयोगकर्ता टेस्ट प्लान की सूची वाले पेज पर टेस्ट प्लान चलाएं पर क्लिक करता है.
- समय-समय पर - इस विकल्प को चुनने पर, टेस्ट प्लान में चुने गए शेड्यूल के हिसाब से टेस्ट अपने-आप शेड्यूल हो जाते हैं. उदाहरण के लिए, हर दिन शाम 5:00 बजे टेस्ट रन शेड्यूल करना.
- कस्टम - इस विकल्प को चुनने पर, टेस्ट प्लान में टेस्ट अपने-आप शेड्यूल हो जाते हैं. ये टेस्ट, क्रॉन एक्सप्रेशन के आधार पर शेड्यूल होते हैं. उदाहरण के लिए,
हर दिन शाम 5:00 बजे टेस्ट रन शेड्यूल करने के लिए, क्रॉन एक्सप्रेशन
0 17 * * *
है.
22वीं इमेज. टेस्ट प्लान को कॉन्फ़िगर करना.
टेस्ट सुइट जोड़ना
आपको जिन टेस्ट सुइट को टेस्ट प्लान के हिसाब से शेड्यूल करना है उन्हें जोड़ने के लिए, + टेस्ट रन कॉन्फ़िगरेशन जोड़ें पर क्लिक करें. नाम ड्रॉपडाउन से कोई टेस्ट सुइट चुनें और अगला चरण पर क्लिक करें. इसके बाद, वे डिवाइस चुनें जिन पर आपको जांच करनी है. इसके बाद, कॉन्फ़िगरेशन जोड़ें पर क्लिक करें. हर टेस्ट प्लान के लिए, एक से ज़्यादा कॉन्फ़िगरेशन जोड़े जा सकते हैं.
23वीं इमेज. टेस्ट रन कॉन्फ़िगर करना.
डिवाइस की कार्रवाइयां जोड़ना
डिवाइस से जुड़ी उन कार्रवाइयों को जोड़ें जिन्हें आपको हर टेस्ट रन से पहले पूरा करना है. ज़्यादा जानकारी के लिए, डिवाइस से जुड़ी कार्रवाइयां जोड़ना लेख पढ़ें.
24वीं इमेज. डिवाइस की कार्रवाइयां जोड़ी जा रही हैं.
टेस्ट के संसाधन सेट अप करना
टेस्ट प्लान में टेस्ट रिसॉर्स जोड़ने का तरीका, उन्हें अलग-अलग टेस्ट रन में जोड़ने के तरीके जैसा ही होता है. ज़्यादा जानकारी के लिए, टेस्ट के संसाधन सेट करना लेख पढ़ें.
25वीं इमेज. टेस्ट के लिए संसाधन सेट अप करना.
टेस्ट रन देखना
टेस्ट रन की सूची
टेस्ट रन पेज पर, शेड्यूल किए गए टेस्ट रन की सूची देखें. टेस्ट रन के बारे में ज़्यादा जानकारी देखने के लिए, देखें पर क्लिक करें.
फ़िल्टर बार में कोई स्ट्रिंग डालकर और Enter कुंजी दबाकर भी सूची को फ़िल्टर किया जा सकता है. एक से ज़्यादा फ़िल्टर इस्तेमाल किए जा सकते हैं. इसके लिए, उन्हें कॉमा से अलग करें. यह फ़िल्टर, उन सभी लाइनों को दिखाता है जिनमें किसी भी कॉलम में मौजूद टेक्स्ट, खोजे गए टेक्स्ट से पूरी तरह मेल खाता है. इसमें स्थिति और बनाया गया कॉलम शामिल नहीं हैं.
खाली फ़िल्टर से सभी पंक्तियां दिखती हैं. फ़िलहाल, खाली वैल्यू वाली लाइनों को फ़िल्टर करने का कोई तरीका नहीं है.
26वीं इमेज. टेस्ट रन की सूची.
टेस्ट रन की जानकारी
यहां टेस्ट रन की जानकारी देखी जा सकती है. जैसे, स्टेटस, लॉग, और नतीजे.
27वीं इमेज. टेस्ट रन की जानकारी.
टेस्ट रन की स्थिति
टेस्ट रन की प्रोग्रेस, स्टेटस सेक्शन में दिखती है. अगर इससे जुड़ा कोई मैसेज है, जैसे कि डाउनलोड करने की प्रोग्रेस, रद्द करने की वजह या गड़बड़ी का मैसेज, तो वह भी यहां दिखता है.
28वीं इमेज. टेस्ट रन का स्टेटस.
टेस्ट रन के स्टेटस ये हैं:
- डाउनलोड हो रहा है - ज़रूरी संसाधन डाउनलोड किए जा रहे हैं.
- लाइन में लगा है - जब कोई डिवाइस उपलब्ध हो जाता है, तब टेस्ट को चलाया जा सकता है.
- चल रहा है - टेस्ट, असाइन किए गए डिवाइस पर चल रहा है.
- पूरा हुआ - टेस्ट पूरा हो गया है और इसके नतीजे रिपोर्ट कर दिए गए हैं.
- रद्द किया गया - उपयोगकर्ता ने टेस्ट रद्द कर दिया है या उपलब्ध डिवाइसों को ढूंढने के दौरान टेस्ट का समय खत्म हो गया है.
- गड़बड़ी - कोई गड़बड़ी हुई है. इस वजह से, टेस्ट नहीं चल पाया.
टेस्ट रन रद्द करना
अगर टेस्ट रन पूरा नहीं हुआ है, तो इसे रद्द किया जा सकता है. इसके लिए, रद्द करें पर क्लिक करें. इसके बाद, पुष्टि करने वाले डायलॉग में हां पर क्लिक करें. अगर टेस्ट रन, queue_timeout_seconds फ़ील्ड में तय की गई अवधि से ज़्यादा समय तक Queued स्थिति में रहते हैं, तो वे अपने-आप रद्द हो जाते हैं. चल रहा है स्थिति में टेस्ट रन को रद्द करने में कुछ मिनट लग सकते हैं.
29वीं इमेज. टेस्ट रन रद्द किया जा रहा है.
टेस्ट रन के नतीजे
टेस्ट पूरा होने के बाद, नतीजे इकट्ठा किए जाते हैं और दिखाए जाते हैं. हर रन के लिए, ऐरो पर क्लिक करके ज़्यादा जानकारी देखी जा सकती है. इकट्ठा किए गए टेस्ट आर्टफ़ैक्ट देखने के लिए, आउटपुट फ़ाइलें देखें पर क्लिक करें. जैसे, test_result.xml
और test_result_failures.html
.
तीसवीं इमेज. टेस्ट रन के नतीजे.
लॉग टैब में, लाइव होस्ट और Tradefed के लॉग देखे जा सकते हैं.
31वीं इमेज. लॉग टैब.
अलग-अलग मॉड्यूल के नतीजे, 'जांच के नतीजे' टैब पर दिखते हैं.
32वीं इमेज. 'टेस्ट के नतीजे' टैब.
टेस्ट के संसाधनों के तौर पर इस्तेमाल की गई फ़ाइलों को डाउनलोड किया जा सकता है. इसके लिए, टेस्ट के संसाधन टैब में जाकर खोलें पर क्लिक करें.
33वीं इमेज. टेस्ट के संसाधन टैब पर जाएं.
टेस्ट रन की जानकारी देखने के लिए, कॉन्फ़िगरेशन टैब पर जाएं. जैसे, create_time.
34वीं इमेज. कॉन्फ़िगरेशन टैब पर जाएं.
बेहतर सुविधाएं
कॉन्फ़िगरेशन फ़ाइलों को मैनेज करना
OmniLab ATS, पहले से तय किए गए विकल्पों को लोड करने के लिए, YAML में लिखी गई कॉन्फ़िगरेशन फ़ाइलों का इस्तेमाल करता है. जैसे, टेस्ट, बिल्ड चैनल, और डिवाइस ऐक्शन. यहां कॉन्फ़िगरेशन फ़ाइल का एक उदाहरण दिया गया है:
// example_file.yaml
tests:
- id : android.cts.9_0.arm
name: CTS 9.0 (ARM)
test_resource_defs:
- name: android-cts.zip
default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
test_resource_type: TEST_PACKAGE
command: cts
env_vars:
- name: TF_PATH
value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
- name: LD_LIBRARY_PATH
value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
setup_scripts:
output_file_patterns:
- android-cts/logs/latest/.*
- android-cts/results/latest/.*\.html
- android-cts/results/latest/compatibility_result\..*
- android-cts/results/latest/logo.png
- android-cts/results/latest/test_result.xml
result_file: test_result.xml
java_properties:
- name: CTS_ROOT
value: ${TF_WORK_DIR}
context_file_dir: android-cts/results/
context_file_pattern: '[\d_\.]+\.zip'
retry_command_line: retry --retry 0
runner_sharding_args: --shard-count ${TF_SHARD_COUNT}
build_channels:
- id: google_drive
name: Google Drive
provider_name: Google Drive
device_actions:
- id: flash
name: Flash
test_resource_defs:
- name: bootloader.img
test_resource_type: DEVICE_IMAGE
- name: radio.img
test_resource_type: DEVICE_IMAGE
- name: img.zip
test_resource_type: DEVICE_IMAGE
tradefed_target_preparers:
- class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
option_values:
- name: work-dir
values:
- ${TF_WORK_DIR}
- name: host-setup-command
values:
- adb -s $SERIAL reboot-bootloader
- fastboot -s $SERIAL flash bootloader bootloader.img
- fastboot -s $SERIAL flash radio radio.img
- fastboot -s $SERIAL reboot-bootloader
- fastboot -s $SERIAL -w update img.zip
- adb -s $SERIAL wait-for-device
- name: host-cmd-timeout
values:
- 10m
OmniLab ATS का इंस्टेंस सेट अप करते समय, अपने कॉन्फ़िगरेशन को अन्य उपयोगकर्ताओं के साथ शेयर किया जा सकता है. इसके लिए, कॉन्फ़िगरेशन को फ़ाइल के तौर पर एक्सपोर्ट करें. इसके लिए, सेटिंग पेज पर जाएं और सबसे ऊपर दाईं ओर मौजूद, एक्सपोर्ट करें पर क्लिक करें.
35वीं इमेज. कॉन्फ़िगरेशन फ़ाइल मैनेजमेंट.
कॉन्फ़िगरेशन फ़ाइल डाउनलोड हो जाने के बाद, उसे अन्य उपयोगकर्ताओं के साथ शेयर करें. वे कॉन्फ़िगरेशन फ़ाइल को अपने OmniLab ATS इंस्टेंस में जोड़ सकते हैं. इसके लिए, उन्हें Import पर क्लिक करके कॉन्फ़िगरेशन फ़ाइल को चुनना होगा.
डिवाइस से जुड़ी नई कार्रवाई बनाना
डिवाइस सेटअप करने की प्रोसेस को अपने-आप पूरा करने के लिए, डिवाइस से जुड़ी कार्रवाइयों का इस्तेमाल किया जाता है. कार्रवाइयां, ऐसी स्क्रिप्ट होती हैं जिन्हें हर उस डिवाइस पर चलाया जाता है जिस पर टेस्ट चल रहा है. ये स्क्रिप्ट, हर टेस्ट रन से पहले चलती हैं. इनमें फिर से कोशिश करने से पहले चलने वाली स्क्रिप्ट भी शामिल हैं. डिवाइस पर की जा सकने वाली कार्रवाइयों की सूची देखने के लिए, सेटिंग पेज पर जाएं और डिवाइस पर की जा सकने वाली कार्रवाइयां टैब पर क्लिक करें. डिवाइस से जुड़ी कई कार्रवाइयां पहले से कॉन्फ़िगर की गई होती हैं. जैसे, रीबूट करना और फ़्लैश करना.
36वीं इमेज. 'डिवाइस की कार्रवाइयां' टैब पर क्लिक करें.
डिवाइस के लिए नई कार्रवाई जोड़ना
नया डिवाइस ऐक्शन पर क्लिक करें.
37वीं इमेज. नए डिवाइस के लिए कार्रवाई करने वाला बटन.
नाम और जानकारी डालें.
38वीं इमेज. डिवाइस की कार्रवाई का नाम.
टारगेट तैयार करने वाला व्यक्ति जोड़ें पर क्लिक करें.
Trade Federation Target Preparer का पूरा क्लास नेम डालें. उदाहरण के लिए,
com.android.tradefed.targetprep.RunHostCommandTargetPreparer
.39वीं इमेज. टैक्स भरने वाले व्यक्ति की जानकारी जोड़ना.
उपलब्ध टारगेट प्रिपेयरर की सूची, com.android.tradefed.targetprep रेफ़रंस में देखी जा सकती है.
40वीं इमेज. टारगेट प्रिपेयरर की सूची.
टारगेट प्रिपेयरर के साथ इस्तेमाल करने के लिए कोई भी विकल्प जोड़ें. उपलब्ध विकल्प देखने के लिए, AOSP में हर टारगेट प्रिपेयरर के सोर्स कोड के लिए, targetprep देखें:
41वीं इमेज. कार्रवाई के विकल्प का उदाहरण.
कोई विकल्प जोड़ने के लिए, टारगेट प्रिपेयरर का विकल्प जोड़ें पर क्लिक करें और ज़रूरी वैल्यू डालें.
42वीं इमेज. ऐक्शन कमांड का उदाहरण.
डिवाइस पर कार्रवाई करने के लिए, टेस्ट के उन संसाधनों को तय करें जिनकी ज़रूरत है. उदाहरण के लिए, फ़्लैश करने के लिए इमेज बनाएं. संसाधन की परिभाषा जोड़ने के लिए, टेस्ट संसाधन जोड़ें पर क्लिक करें और ज़रूरी फ़ील्ड में जानकारी भरें. अगर आपको पता है कि आपकी फ़ाइलें कहां मौजूद हैं, तो ब्राउज़ करें पर क्लिक करके, डाउनलोड करने का डिफ़ॉल्ट यूआरएल दिया जा सकता है. अगर टारगेट करने वाले लोग, डायरेक्ट्री को टेस्ट रिसॉर्स के तौर पर स्वीकार करते हैं, तो डीकंप्रेस करें को चुनें. इसके बाद, अस्थायी वर्किंग डायरेक्ट्री में मौजूद डेस्टिनेशन डायरेक्ट्री और डीकंप्रेस किए जाने वाले फ़ाइल के नाम तय करें. अगर कोई फ़ाइल नाम नहीं दिया जाता है, तो सभी फ़ाइलों को टेस्ट रिसॉर्स से डीकंप्रेस किया जाता है.
43वीं इमेज. कार्रवाई की जांच करने वाले संसाधन.
अपडेट करें पर क्लिक करें.
44वीं इमेज. बदलावों को सेव करने की कार्रवाई.
टेस्ट मैनेज करना
टेस्ट में बदलाव करना
सेव किए गए किसी टेस्ट में बदलाव करने के लिए, टेस्ट पेज पर जाएं. इसके बाद, उस टेस्ट की लाइन में मौजूद बदलाव करें पर क्लिक करें जिसमें आपको बदलाव करना है. टेस्ट कॉन्फ़िगरेशन बदलने के बाद, अपडेट करें पर क्लिक करें.
45वीं इमेज. टेस्ट में बदलाव किया जा रहा है.
नया टेस्ट जोड़ना
नया टेस्ट जोड़ने के लिए, टेस्ट पेज पर जाएं और नया टेस्ट बनाएं पर क्लिक करें. सही जानकारी डालें और बनाएं पर क्लिक करें.
46वीं इमेज. टेस्ट बनाया जा रहा है.
47वीं इमेज. टेस्ट कॉपी किया जा रहा है.
होस्ट कॉन्फ़िगरेशन एक्सपोर्ट करना
होस्ट को कॉन्फ़िगर करने के बाद, होस्ट के कॉन्फ़िगरेशन को किसी फ़ाइल में एक्सपोर्ट किया जा सकता है. सेव किए गए कॉन्फ़िगरेशन कॉपी करने के लिए, इस फ़ाइल को अन्य होस्ट पर अपलोड किया जा सकता है.
होस्ट के कॉन्फ़िगरेशन एक्सपोर्ट करने के लिए, सेटिंग पेज पर जाएं. इसके बाद, सबसे ऊपर दाएं कोने में मौजूद, एक्सपोर्ट करें पर क्लिक करें.
48वीं इमेज. होस्ट कॉन्फ़िगरेशन एक्सपोर्ट करना.
होस्ट कॉन्फ़िगरेशन फ़ाइल इंपोर्ट करने के लिए, सेटिंग पेज पर जाएं. इसके बाद, सबसे ऊपर दाएं कोने में मौजूद, इंपोर्ट करें पर क्लिक करें.
49वीं इमेज. होस्ट कॉन्फ़िगरेशन इंपोर्ट किया जा रहा है.
लोकल फ़ाइलों और डायरेक्ट्री का इस्तेमाल करना
R11 वर्शन से, $HOME/.ats_storage
डायरेक्ट्री में मौजूद फ़ाइलें, OmniLab ATS में अपने-आप ऐक्सेस की जा सकती हैं. किसी फ़ाइल को उस डायरेक्ट्री में कॉपी करें या ले जाएं. इसके बाद, टेस्ट रन शेड्यूल करते समय, लोकल फ़ाइल टैब से उसे चुना जा सकता है.
cp /path/to/file $HOME/.ats_storage
50वीं इमेज. $HOME/.ats_storage
डायरेक्ट्री से कोई फ़ाइल चुनना.
--mount_local_path
फ़्लैग का इस्तेमाल करके, लोकल फ़ाइल स्टोर में अतिरिक्त डायरेक्ट्री माउंट की जा सकती हैं.
mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2
51वीं इमेज. लोकल फ़ाइल स्टोर में माउंट की गई अतिरिक्त डायरेक्ट्री.
एक से ज़्यादा होस्ट वाला मोड चालू करना
मल्टी-होस्ट मोड की मदद से, उपयोगकर्ता एक ही एटीएस कंट्रोलर होस्ट का इस्तेमाल करके, कई एटीएस वर्कर होस्ट पर मौजूद डिवाइसों और टेस्ट को मैनेज कर सकते हैं.
52वीं इमेज. मल्टी-होस्ट मोड का आर्किटेक्चर.
एटीएस कंट्रोलर शुरू करने के लिए, इस कमांड का इस्तेमाल करें:
mtt start --operation_mode=ON_PREMISE
देखें कि
http://${CONTROLLER_HOSTNAME}:8000
पर कंट्रोलर को ऐक्सेस किया जा सकता है या नहीं.वर्कर शुरू करने के लिए, इस कमांड का इस्तेमाल करें:
mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
अगर आपका नेटवर्क, होस्ट को एक-दूसरे से कम्यूनिकेट करने की अनुमति नहीं देता है, तो आपको एटीएस वर्कर पर, सेटअप करने के लिए यहां दिए गए ज़्यादा बेहतर निर्देशों का पालन करना होगा.
एसएसएच टनल का इस्तेमाल करके, दोनों होस्ट को कनेक्ट करें. प्राइमरी और फ़ाइल सर्वर पोर्ट के लिए पोर्ट चुनें. उदाहरण के लिए, 9000 और 9006.
ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
एटीएस को कॉन्फ़िगर करें और शुरू करें.
DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \ --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \ --operation_mode=ON_PREMISE
फ़ाइल क्लीनर
फ़ाइल क्लीनर एक क्रॉन जॉब है. यह हर घंटे चलता है और उपयोगकर्ता के तय किए गए कॉन्फ़िगरेशन के आधार पर फ़ाइलों को साफ़ करता है. ATS में, टेस्ट रन के नतीजों को संग्रहित करने और कुछ समय के लिए सेव की गई फ़ाइलों को मिटाने के लिए, दो डिफ़ॉल्ट कॉन्फ़िगरेशन होते हैं. इस गाइड में, फ़ाइलों को असरदार तरीके से मैनेज करने के लिए, नीतियों और कॉन्फ़िगरेशन को पसंद के मुताबिक बनाने का तरीका बताया गया है.
नीतियां
नीति में, फ़ाइलों या डायरेक्ट्री पर की जाने वाली कार्रवाई और टारगेट चुनने के मानदंड तय किए जाते हैं. टेबल में उपलब्ध कार्रवाइयां दिखाई गई हैं:
कार्रवाई का टाइप | पैरामीटर |
---|---|
ARCHIVE | remove_file : अगर true है, तो संग्रह करने के बाद फ़ाइल हटा दें. |
DELETE |
मानदंड, फ़ाइल के एट्रिब्यूट और सिस्टम की जानकारी के आधार पर तय किए जाते हैं. उपलब्ध मानदंडों को टेबल में दिखाया गया है:
मानदंड का टाइप | ब्यौरा | पैरामीटर |
---|---|---|
LAST_MODIFIED_TIME | फ़ाइलों को उनमें पिछली बार बदलाव किए जाने की तारीख और समय के हिसाब से फ़िल्टर करें. | ttl : समय के अलग-अलग एक्सप्रेशन इस्तेमाल किए जा सकते हैं. उदाहरण के लिए, 10m , 2h , 7 days , 4w . इस्तेमाल किए जा सकने वाले फ़ॉर्मैट के बारे में जानने के लिए, pytimeparse पर जाएं. |
LAST_ACCESS_TIME | फ़ाइलों को पिछली बार ऐक्सेस करने की तारीख और समय के हिसाब से फ़िल्टर करें. | LAST_MODIFIED_TIME की तरह. |
NAME_MATCH | रेगुलर एक्सप्रेशन का इस्तेमाल करके, फ़ाइलों को उनके नाम के हिसाब से फ़िल्टर करें. | pattern : रेगुलर एक्सप्रेशन. उदाहरण के लिए, नतीजों के ज़िप फ़ाइल से मैच करने के लिए [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip . |
SYSTEM_AVAILABLE_SPACE | सिस्टम पर उपलब्ध जगह के आधार पर कार्रवाइयां ट्रिगर करें. | threshold : उपलब्ध स्पेस, थ्रेशोल्ड से कम होने पर कार्रवाई ट्रिगर करें. उदाहरण के लिए, 200 (B), 200KB , 200MB , 200GB , 2TB . |
53वीं इमेज. फ़ाइल क्लीनर की नई नीति जोड़ें.
कॉन्फ़िगरेशन
कॉन्फ़िगरेशन में, एक या उससे ज़्यादा नीतियों को खास डायरेक्ट्री के साथ जोड़ा जाता है. चुनी गई डायरेक्ट्री में मौजूद फ़ाइलों और डायरेक्ट्री को, तय की गई नीतियों के आधार पर प्रोसेस किया जाता है. नीतियों को कॉन्फ़िगरेशन में दिए गए क्रम के हिसाब से लागू किया जाता है.
सभी टारगेट डायरेक्ट्री, /data
डायरेक्ट्री के तहत होनी चाहिए. अगर आपके कॉन्फ़िगरेशन में टारगेट डायरेक्ट्री को logs
के तौर पर तय किया गया है, तो इसे /data/logs
के तौर पर माना जाएगा.
54वीं इमेज. फ़ाइल क्लीनर के कॉन्फ़िगरेशन में बदलाव करें.
रीसेट करें
सेटिंग रीसेट करें पर क्लिक करने से, फ़ाइल क्लीनर का कॉन्फ़िगरेशन अपनी डिफ़ॉल्ट स्थिति पर वापस आ जाता है. इस कार्रवाई से, सभी कस्टम आइटम मिट जाते हैं.
55वीं इमेज. फ़ाइल क्लीनर की सेटिंग रीसेट करें.
सहायता
गड़बड़ी की रिपोर्ट
OmniLab ATS में आपके योगदान से, इस टूल को बेहतर बनाने में मदद मिलती है. इसलिए, हमें आपके सुझावों का इंतज़ार रहेगा! हाल ही की रिलीज़ के बारे में जानकारी पाने के लिए, OmniLab ATS के रिलीज़ नोट देखें. गड़बड़ियों की शिकायत करने या सुझाव देने के लिए, गड़बड़ी की शिकायत करें. पार्टनर को अपने पार्टनर चैनलों का इस्तेमाल करके, गड़बड़ियों की शिकायत करनी चाहिए या सुझाव देने चाहिए.