Android Test Station में वर्चुअल डिवाइस

Android Test Station की सुविधा Cuttleफ़िश वर्चुअल डिवाइसों के साथ काम करती है. इससे Android डिवाइसों के बिना भी टेस्ट किए जा सकते हैं. कटलफ़िश, हार्डवेयर से जुड़े फ़ंक्शन की जांच करने के लिए सही है. वर्चुअल डिवाइसों का इस्तेमाल शुरू करने से पहले, Android Test Station को इंस्टॉल करने के लिए, इस्तेमाल के लिए गाइड में दिए गए निर्देशों का पालन करें.

एटीएस, वर्चुअल डिवाइसों के साथ लोकल और रिमोट, दो मोड में काम करता है. नीचे दी गई टेबल में, दो मोड की तुलना की गई है.

लोकल वर्चुअल डिवाइस रिमोट वर्चुअल डिवाइस
ATS वर्कर होस्ट पर चलता है यह उन रिमोट होस्ट पर काम करता है जिन्हें एटीएस वर्कर के होस्ट, एसएसएच के ज़रिए ऐक्सेस कर सकते हैं
x86 पर आधारित यह x86 या ARM हो सकता है. यह होस्ट के आर्किटेक्चर पर निर्भर करता है
आसानी से सेट अप किया जा सकता है सेट अप करना ज़्यादा मुश्किल है

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

लोकल वर्चुअल डिवाइसों को सेट अप करें

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

Cuttleफ़िश डिपेंडेंसी इंस्टॉल करें

यह पक्का करने के लिए नीचे दिया गया कमांड चलाएं कि ज़रूरी कर्नेल मॉड्यूल लोड हो गए हैं:

sudo modprobe -a kvm tun vhost_net vhost_vsock

स्थानीय वर्चुअल डिवाइसों की मदद से, Android टेस्ट स्टेशन को शुरू करें

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

लोकल वर्चुअल डिवाइसों को चालू करने के लिए, इसे चलाएं:

mtt start --max_local_virtual_devices N

एटीएस, एक साथ कई वर्चुअल डिवाइसों का बंटवारा कर सकते हैं. इसलिए, N उन वर्चुअल डिवाइसों की ज़्यादा से ज़्यादा संख्या होती है. डिफ़ॉल्ट संख्या 0 है.

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

रिमोट वर्चुअल डिवाइस सेट अप करें

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

Cuttleफ़िश डिपेंडेंसी इंस्टॉल करें

कटलफ़िश डिपेंडेंसी इंस्टॉल करने के लिए, यह तरीका अपनाएं.

  1. Cuttleफ़िश > शुरू करें में दिया गया तरीका अपनाकर, रिमोट होस्ट पर Debian पैकेज इंस्टॉल करें.

  2. इन चरणों का पालन करके रिमोट होस्ट पर वर्चुअल डिवाइस की ज़्यादा से ज़्यादा संख्या कॉन्फ़िगर करें:

    1. खास अधिकार के साथ /etc/default/cuttlefish-host-resources में बदलाव करें.
    2. इस होस्ट पर num_cvd_accounts को ज़्यादा से ज़्यादा वर्चुअल डिवाइसों पर अनुमति देने के लिए सेट करें.
    3. sudo systemctl restart cuttlefish-host-resources चलाएं.
    4. ifconfig चलाएं और cvd-wtap-* इंटरफ़ेस की संख्या की पुष्टि करें.

एसएसएच खाता बनाएं

एटीएस होस्ट, एसएसएच के ज़रिए रिमोट होस्ट से कनेक्ट होता है. इसलिए, आपको रिमोट होस्ट पर एक एसएसएच खाता बनाना होगा. एटीएस, होम डायरेक्ट्री में मौजूद फ़ाइलों में बदलाव करता है. इसलिए, हमारा सुझाव है कि आप एक खास खाता बनाएं.

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

  1. निजी और सार्वजनिक पासकोड जनरेट करने के लिए, ssh-keygen को एटीएस होस्ट पर चलाएं.
  2. सार्वजनिक पासकोड को अपलोड करें और रिमोट होस्ट पर ~/.ssh/authorized_keys में जोड़ें.

अगर आपका एसएसएच खाता, कटलफ़िश डिपेंडेंसी इंस्टॉल करने के लिए इस्तेमाल किए गए खाते से अलग है, तो एसएसएच खाते को कटलफ़िश लॉन्च करने की अनुमति देने के लिए, रिमोट होस्ट पर यह कमांड चलाएं:

sudo usermod -aG kvm,cvdnetwork,render $USER

रिमोट वर्चुअल डिवाइसों की मदद से एटीएस शुरू करें

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

हमारा सुझाव है कि बेहतर परफ़ॉर्मेंस के लिए, लोकल एरिया नेटवर्क में एटीएस होस्ट और रिमोट होस्ट को सेट अप करें.

रिमोट वर्चुअल डिवाइसों को चालू करने के लिए, इस निर्देश को एटीएस होस्ट पर चलाएं:

mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY

एसएसएच खाते का नाम USER है.

HOST, रिमोट होस्ट का आईपीवी4 पता है.

एटीएस, एक साथ कई वर्चुअल डिवाइसों का बंटवारा कर सकते हैं. इसलिए, N उन वर्चुअल डिवाइसों की ज़्यादा से ज़्यादा संख्या होती है.

KEY, एटीएस होस्ट पर निजी एसएसएच कुंजी का पाथ है.

यह निर्देश, एटीएस शुरू करने से पहले, रिमोट होस्ट के कनेक्शन की जांच करता है. अगर यह कंसोल पर The specified --remote_virtual_devices and --remote_ssh_key are invalid. जैसा चेतावनी का मैसेज दिखाता है, तो आपको अपने एसएसएच सेटअप की जांच करनी चाहिए.

संसाधनों के विवादों से बचने के लिए, एटीएस होस्ट ज़्यादा से ज़्यादा एक रिमोट होस्ट से कनेक्ट कर सकता है. एक से ज़्यादा एटीएस होस्ट, एक समय पर किसी एक रिमोट होस्ट से कनेक्ट नहीं कर सकते.

वर्चुअल डिवाइसों से टेस्ट करना

इस सेक्शन में, लोकल या रिमोट वर्चुअल डिवाइसों पर टेस्ट करने का तरीका बताया गया है.

डिवाइस चुनें

डिवाइस सूची में एटीएस, वर्चुअल डिवाइसों को उनके असल सीरियल नंबर के बजाय प्लेसहोल्डर के तौर पर दिखाता है. स्थानीय वर्चुअल डिवाइसों के लिए प्लेसहोल्डर HostNAME:local-virtual-device-ID के फ़ॉर्मैट में दिखाए जाते हैं. रिमोट वर्चुअल डिवाइसों के लिए, remote-virtual-ADDRESS-ID के फ़ॉर्मैट में. राज्य या तो उपलब्ध हैं या असाइन किए गए हैं. प्लेसहोल्डर उपलब्ध होने से पता चलता है कि वर्चुअल डिवाइस नहीं चल रहा है और उसे जांच के लिए असाइन किया जा सकता है.

वर्चुअल डिवाइस चुनें

पहला डायग्राम. वर्चुअल डिवाइस चुने जा रहे हैं

डिवाइस से जुड़ी कार्रवाइयां जोड़ें

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

स्थानीय वर्चुअल डिवाइस कार्रवाइयां

दूसरा डायग्राम. लोकल वर्चुअल डिवाइसों के लिए, डिवाइस से जुड़ी कार्रवाइयां

रिमोट वर्चुअल डिवाइस की कार्रवाइयां

तीसरी इमेज. रिमोट वर्चुअल डिवाइसों से की जाने वाली कार्रवाइयां

जांच के लिए संसाधन सेट करना

कटलफ़िश वर्चुअल डिवाइस को टेस्ट करने के लिए तीन संसाधनों की ज़रूरत होती है, वर्चुअल मशीन टूल, इमेज, और Acloud. किसी सामान्य कटलफ़िश बिल्ड में (उदाहरण के लिए, ci.android.com पर aosp_cf_x86_64_phone ) में, वर्चुअल मशीन टूल cvd-host_package.tar.gz में पैक होते हैं और इमेज aosp_cf_x86_64_phone-img-*.zip में होती हैं. ACloud बाइनरी, ATS में पहले से मौजूद होती है. यह कटलफ़िश के सभी वर्शन के साथ काम करती है. सिर्फ़ डीबग करने के लिए, Acloud बाइनरी के डिफ़ॉल्ट डाउनलोड यूआरएल को बदला जाना चाहिए.

वर्चुअल डिवाइस टेस्ट के संसाधन

चौथी इमेज. वर्चुअल डिवाइसों के लिए संसाधनों की जांच करें

टेस्ट की जानकारी देखें

डिवाइस के लॉग, जैसे कि kernel.log, host_log.txt, और launcher.log आउटपुट फ़ाइल फ़ोल्डर में इकट्ठा किए जाते हैं. उन्हें देखने के लिए आउटपुट फ़ाइलें देखें पर क्लिक करें.

टेस्ट चलाने के नतीजे

पांचवी इमेज. टेस्ट चलाए जाने के नतीजे