OmniLab ATS, Cuttle Fish वर्चुअल डिवाइसों के साथ काम करता है, जिनकी मदद से Android डिवाइसों के बिना भी टेस्ट किए जा सकते हैं. कटलफ़िश, हार्डवेयर से जुड़े फ़ंक्शन की जांच कर सकती है. वर्चुअल डिवाइसों का इस्तेमाल शुरू करने से पहले, OmniLab ATS इंस्टॉल करने के लिए उपयोगकर्ता गाइड में दिया गया तरीका अपनाएं.
OmniLab ATS, वर्चुअल डिवाइसों को दो मोड में इस्तेमाल करने की सुविधा देता है: लोकल और रिमोट. यहां दी गई टेबल में, दोनों मोड की तुलना की गई है.
लोकल वर्चुअल डिवाइस | रिमोट वर्चुअल डिवाइस |
---|---|
यह एटीएस वर्कर्स होस्ट पर चलता है | यह उन रिमोट होस्ट पर काम करता है जिन्हें एटीएस वर्कर के होस्ट, एसएसएच के ज़रिए ऐक्सेस कर सकते हैं |
x86-आधारित | होस्ट के आर्किटेक्चर के आधार पर, यह x86 या ARM हो सकता है |
आसानी से सेट अप किया जा सकता है | सेट अप करना ज़्यादा मुश्किल है |
लोकल और रिमोट वर्चुअल डिवाइसों को अलग-अलग चालू किया जा सकता है. हर मोड की जानकारी पाने के लिए, इन्हें देखें:
लोकल वर्चुअल डिवाइस सेट अप करना
इस सेक्शन में, स्थानीय वर्चुअल डिवाइसों के लिए OmniLab एटीएस सेट अप करने का तरीका बताया गया है.
Cuttleफ़िश डिपेंडेंसी इंस्टॉल करें
ज़रूरी कर्नेल मॉड्यूल लोड हो गए हैं या नहीं, यह पक्का करने के लिए यह कमांड चलाएं:
sudo modprobe -a kvm tun vhost_net vhost_vsock
स्थानीय वर्चुअल डिवाइसों की मदद से, OmniLab ATS शुरू करें
OmniLab ATS शुरू करने से पहले, पक्का करें कि सभी Cuttlefish इंस्टेंस बंद हों. OmniLab ATS, टेस्ट साइकल के दौरान वर्चुअल डिवाइसों को अपने-आप लॉन्च और बंद कर देता है. साथ ही, कटलफ़िश के मौजूदा इंस्टेंस और OmniLab ATS के मैनेज किए गए इंस्टेंस में टकराव होता है. कटलफ़िश के इंस्टेंस रोकने के बारे में जानकारी के लिए, कटलफ़िश को रोकें लेख पढ़ें.
लोकल वर्चुअल डिवाइसों को चालू करने के लिए, इसे चलाएं:
mtt start --max_local_virtual_devices N
N
, वर्चुअल डिवाइसों की वह ज़्यादा से ज़्यादा संख्या है जिन्हें OmniLab ATS एक साथ असाइन कर सकता है. डिफ़ॉल्ट संख्या 0 है.
अगर डिवाइस नोड मौजूद न होने की वजह से निर्देश काम नहीं करता है, तो कर्नेल मॉड्यूल लोड करने के लिए, गड़बड़ी के मैसेज में दिया गया तरीका अपनाएं. अगर ऐसा होता है, तो मशीन को रीबूट करें.
रिमोट वर्चुअल डिवाइस सेट अप करें
इस सेक्शन में, रिमोट वर्चुअल डिवाइसों के लिए OmniLab एटीएस सेट अप करने का तरीका बताया गया है.
Cuttlefish की डिपेंडेंसी इंस्टॉल करना
Cuttlefish की डिपेंडेंसी इंस्टॉल करने के लिए, यह तरीका अपनाएं.
रिमोट होस्ट पर Debian पैकेज इंस्टॉल करने के लिए, Cuttlefish > शुरू करें में दिया गया तरीका अपनाएं.
इन चरणों का पालन करके रिमोट होस्ट पर वर्चुअल डिवाइस की ज़्यादा से ज़्यादा संख्या कॉन्फ़िगर करें:
- रूट प्रिविलेज की मदद से
/etc/default/cuttlefish-host-resources
में बदलाव करें. - इस होस्ट पर
num_cvd_accounts
को ज़्यादा से ज़्यादा वर्चुअल डिवाइसों पर अनुमति देने के लिए सेट करें. sudo systemctl restart cuttlefish-host-resources
चलाएं.ifconfig
चलाएं औरcvd-wtap-*
इंटरफ़ेस की संख्या की पुष्टि करें.
- रूट प्रिविलेज की मदद से
एसएसएच खाता बनाना
OmniLab ATS होस्ट, एसएसएच के ज़रिए रिमोट होस्ट से कनेक्ट होता है. इसलिए, आपको रिमोट होस्ट पर एसएसएच खाता बनाना होगा. OmniLab ATS, होम डायरेक्ट्री में मौजूद फ़ाइलों में बदलाव करता है. इसलिए, हमारा सुझाव है कि आप एक अलग खाता बनाएं.
OmniLab ATS होस्ट को पासवर्ड के बिना रिमोट होस्ट में लॉगिन करने के लिए, एसएसएच कुंजियों का एक जोड़ा चाहिए. एसएसएच पासकोड सेट अप करने का तरीका यहां बताया गया है:
- निजी कुंजी और सार्वजनिक कुंजी जनरेट करने के लिए,
ssh-keygen
को OmniLab ATS होस्ट पर चलाएं. - सार्वजनिक पासकोड को अपलोड करें और रिमोट होस्ट पर
~/.ssh/authorized_keys
में जोड़ें.
अगर आपका एसएसएच खाता, Cuttlefish की डिपेंडेंसी इंस्टॉल करने के लिए इस्तेमाल किए गए खाते से अलग है, तो एसएसएच खाते को Cuttlefish लॉन्च करने की अनुमति देने के लिए, रिमोट होस्ट पर यह कमांड चलाएं:
sudo usermod -aG kvm,cvdnetwork,render $USER
रिमोट वर्चुअल डिवाइसों की मदद से, OmniLab ATS शुरू करें
OmniLab एटीएस शुरू करने से पहले, पक्का करें कि कटलफ़िश के सभी इंस्टेंस बंद हो गए हों. OmniLab ATS, टेस्ट साइकल के दौरान वर्चुअल डिवाइसों को अपने-आप लॉन्च और बंद करता है. साथ ही, मौजूदा Cuttlefish इंस्टेंस, OmniLab ATS से मैनेज किए जाने वाले इंस्टेंस से मेल नहीं खाते. Cuttlefish इंस्टेंस को बंद करने के बारे में ज़्यादा जानने के लिए, Cuttlefish को बंद करना लेख पढ़ें.
बेहतर परफ़ॉर्मेंस के लिए, हमारा सुझाव है कि आप OmniLab ATS होस्ट और रिमोट होस्ट को लोकल एरिया नेटवर्क में सेट अप करें.
रिमोट वर्चुअल डिवाइसों को चालू करने के लिए, OmniLab ATS होस्ट पर यह कमांड चलाएं:
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY
USER
, एसएसएच खाते का नाम है.
HOST
, रिमोट होस्ट का आईपीवी4 पता है.
N
, वर्चुअल डिवाइसों की वह ज़्यादा से ज़्यादा संख्या है जिन्हें OmniLab ATS एक साथ असाइन कर सकता है.
KEY
, OmniLab ATS होस्ट पर निजी एसएसएच कुंजी का पाथ है.
यह कमांड, OmniLab ATS शुरू करने से पहले रिमोट होस्ट के कनेक्शन की जांच करता है.
अगर कंसोल पर The specified --remote_virtual_devices and --remote_ssh_key are invalid.
जैसा कोई चेतावनी वाला मैसेज दिखता है, तो आपको अपने एसएसएच सेटअप की जांच करनी चाहिए.
संसाधनों के बीच होने वाले संघर्ष से बचने के लिए, OmniLab ATS होस्ट ज़्यादा से ज़्यादा एक रिमोट होस्ट से कनेक्ट हो सकता है. एक से ज़्यादा OmniLab ATS होस्ट, एक ही रिमोट होस्ट से एक साथ कनेक्ट नहीं हो सकते.
वर्चुअल डिवाइसों के साथ टेस्ट करना
इस सेक्शन में, लोकल या रिमोट वर्चुअल डिवाइसों पर टेस्ट करने का तरीका बताया गया है.
डिवाइस चुनें
डिवाइस की सूची में, OmniLab ATS वर्चुअल डिवाइसों को उनके असली सीरियल नंबर के बजाय प्लेसहोल्डर के तौर पर दिखाता है. स्थानीय वर्चुअल डिवाइसों के लिए प्लेसहोल्डर HostNAME:local-virtual-device-ID के फ़ॉर्मैट में दिखाए जाते हैं. रिमोट वर्चुअल डिवाइसों के लिए, remote-virtual-ADDRESS-ID के फ़ॉर्मैट में. राज्यों की स्थिति उपलब्ध या अलॉकेट की गई हो सकती है. उपलब्ध है स्थिति में प्लेसहोल्डर का मतलब है कि वर्चुअल डिवाइस काम नहीं कर रहा है और उसे टेस्ट के लिए असाइन किया जा सकता है.
पहली इमेज. वर्चुअल डिवाइस चुने जा रहे हैं
डिवाइस की कार्रवाइयां जोड़ना
अगर आपने कम से कम एक वर्चुअल डिवाइस चुना है, तो उससे जुड़ी डिवाइस कार्रवाई, सूची में अपने-आप जुड़ जाएगी. इस कार्रवाई में, वर्चुअल डिवाइस बनाने के लिए ज़रूरी TradeFed पैरामीटर और जांच के लिए संसाधन शामिल होते हैं.
दूसरी इमेज. लोकल वर्चुअल डिवाइसों के लिए डिवाइस ऐक्शन
तीसरी इमेज. रिमोट वर्चुअल डिवाइसों के लिए डिवाइस से जुड़ी कार्रवाइयां
टेस्ट के लिए संसाधन सेट करना
Cuttlefish वर्चुअल डिवाइसों के लिए, टेस्ट के तीन संसाधनों की ज़रूरत होती है: वर्चुअल मशीन टूल, इमेज, और Acloud.
Cuttlefish के किसी सामान्य बिल्ड (उदाहरण के लिए, ci.android.com पर aosp_cf_x86_64_phone
) में, वर्चुअल मशीन टूल cvd-host_package.tar.gz
में पैक किए जाते हैं और इमेज aosp_cf_x86_64_phone-img-*.zip
में होती हैं. Acloud बाइनरी, OmniLab ATS में बनाई गई है और यह Cuttlefish के सभी वर्शन के साथ काम करती है. Acloud बाइनरी के डिफ़ॉल्ट डाउनलोड यूआरएल को सिर्फ़ डीबग करने के लिए बदला जाना चाहिए.
चौथी इमेज. वर्चुअल डिवाइसों के लिए टेस्ट संसाधन
टेस्ट रन देखना
डिवाइस के लॉग, जैसे कि kernel.log
, host_log.txt
, और launcher.log
आउटपुट फ़ाइल फ़ोल्डर में इकट्ठा किए जाते हैं. उन्हें देखने के लिए, आउटपुट फ़ाइलें देखें पर क्लिक करें.
पांचवीं इमेज. टेस्ट रन के नतीजे