परीक्षण उपकरण प्रावधान

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

एंड्रॉइड 6 या एंड्रॉइड 7 चलाने वाले उपकरणों के लिए, आप एंड्रॉइड एंटरप्राइज (एई) टेस्ट हार्नेस का उपयोग करके डिवाइस प्रोविजनिंग का परीक्षण कर सकते हैं, जो एंड्रॉइड डिवाइसों की एंटरप्राइज़ संगतता को सत्यापित करने के लिए एक परीक्षण सूट है। हार्नेस में सपोर्ट ऐप्स, टेस्ट केस, कॉन्फिगरेशन फाइल्स और cts-tradefed पर निर्मित एक टेस्ट रनर ( afw-test-tradefed ) शामिल हैं। AE टेस्ट हार्नेस को स्थापित करने से पहले, डिवाइस व्यवस्थापन के लिए प्रोविजनिंग को पूरा करना सुनिश्चित करें।

Android 8 या उच्चतर चलाने वाले उपकरणों के लिए, AE टेस्ट हार्नेस का उपयोग बहिष्कृत किया जाता है।

विकास के माहौल की स्थापना

एई टेस्ट हार्नेस के लिए विकास का माहौल एंड्रॉइड ओएस के समान है। विकास मशीन स्थापित करने के लिए आवश्यकताएँ में दिए गए चरणों का पालन करें।

स्रोत कोड डाउनलोड करना

स्रोत डाउनलोड करने के चरणों का उपयोग करके AE टेस्ट हार्नेस स्रोत कोड डाउनलोड करें । AE टेस्ट हार्नेस सोर्स कोड ./test/AfwTestHarness प्रोजेक्ट में है। शाखा का नाम एई टेस्ट हार्नेस के संस्करण को डाउनलोड करने के लिए निर्धारित करता है (प्रत्येक एंड्रॉइड प्लेटफॉर्म में एई टेस्ट हार्नेस का एक अलग संस्करण होता है)। उदाहरण के लिए, एंड्रॉइड 7.0 नौगट के लिए शाखा का नाम afw-test-harness-nougat-dev है। इस शाखा के लिए रेपो शुरू करने और स्रोत कोड डाउनलोड करने के लिए, निम्न आदेशों का उपयोग करें:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
repo init -u https://android.googlesource.com/platform/manifest -b afw-test-harness-nougat-dev
repo sync -j24

किसी भिन्न संस्करण के लिए स्रोत कोड देखने के लिए, संबंधित टैग वाली शाखा निर्दिष्ट करें। उपलब्ध शाखाओं में शामिल हैं:

शाखा का नाम समर्थित Android प्लेटफ़ॉर्म
afw-परीक्षण-हार्नेस-नौगट-देव एंड्रॉइड 7.0
एएफडब्ल्यू-टेस्ट-हार्नेस-2.1 एंड्रॉइड 7.0
afw-परीक्षण-हार्नेस-मार्शमैलो-देव एंड्रॉइड 6.0
afw-परीक्षण-हार्नेस-1.5 एंड्रॉइड 6.0

हार्नेस बनाने के लिए आवश्यक अन्य निर्भरता परियोजनाओं को भी स्रोत कोड के साथ डाउनलोड किया जाता है।

Android Studio में देखना

Android Studio में स्रोत कोड देखने और संपादित करने के लिए:

  1. निम्न आदेश चलाएँ
    make idegen
    development/tools/idegen/idegen.sh
    
  2. Android Studio में android.ipr खोलें।

AE टेस्ट हार्नेस सोर्स कोड test/AfwTestHarness में है।

एई टेस्ट हार्नेस को कॉन्फ़िगर करना

आप test/AfwTestHarness/afw-test.props को कॉन्फ़िगर करके हार्नेस को कस्टमाइज़ कर सकते हैं। हार्नेस को सफलतापूर्वक चलाने के लिए, निम्नलिखित चरणों को पूरा करें:

  1. निम्नलिखित गुणों के साथ afw-test.props में वाई-फाई नेटवर्क को कॉन्फ़िगर करें:
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. एक डोमेन से कम से कम एक खाता प्राप्त करें जो डीपीसी को अपने डिवाइस नीति नियंत्रक के रूप में परीक्षण करने के लिए बाध्य है। निम्नलिखित गुणों के साथ afw-test.props में विवरण निर्दिष्ट करें:
    work_account_username
    work_account_password
    

    एई टेस्ट हार्नेस प्रोविजनिंग फ्लो का परीक्षण करने के लिए टेस्ट डीपीसी का उपयोग करता है, इसलिए टेस्ट हार्नेस चलाने के लिए खातों को टेस्ट डीपीसी से जुड़ना चाहिए

एई टेस्ट हार्नेस का निर्माण

बिल्ड कॉन्फ़िगरेशन का उपयोग करके प्रारंभ करें:

source build/envsetup.sh
lunch

एक डिवाइस प्रकार चुनें और एंटर दबाएं

उपयोग कर दोहन का निर्माण करें:

make afw-test-harness -j32

यह एक निर्देशिका बनाता है ( out/host/linux-x86/afw-th/android-cts ) परीक्षण हार्नेस चलाने के लिए सभी आवश्यक बायनेरिज़, कॉन्फ़िगरेशन फ़ाइलों और उपकरणों के साथ। इस निर्देशिका को वितरण के लिए एक फ़ाइल ( out/host/linux-x86/afw-th/android-afw-test-harness.zip ) में भी ज़िप किया गया है।

एई टेस्ट हार्नेस चलाना

एई टेस्ट हार्नेस चलाने के लिए निम्नलिखित चरणों का प्रयोग करें:

  1. अपने निर्माण वातावरण में, परीक्षण धावक का उपयोग करके लॉन्च करें:
    afw-test-tradefed
    
    यह cts-tf कंसोल शुरू करता है, परीक्षण योजनाओं, परीक्षण मामलों और afw-test.props को out/host/linux-x86/afw-th/android-cts
  2. android-afw-test-harness.zip के अनज़िप्ड फोल्डर से, टेस्ट रनर लॉन्च करें:
    cts-tf> ./android‐cts/tools/afw-test‐tradefed
    
    यह एंड्रॉइड-सीटीएस डायरेक्टरी से टेस्ट प्लान, टेस्ट केस और afw-test.props android-cts लोड करता है। सुनिश्चित करें ./android‐cts/repository/testcases/afw-test.props में कार्य खाता और वाई-फाई कॉन्फ़िगरेशन है।
  3. एक परीक्षण योजना चलाएँ। प्रत्येक परीक्षण योजना एक XML फ़ाइल है जिसमें AfwTestHarness/tests परीक्षण पैकेज निर्देशिका से परीक्षण पैकेजों का एक सेट होता है। आम योजनाओं में शामिल हैं:
    • afw-userdebug-build . इसमें सभी परीक्षण पैकेज शामिल हैं जिनके लिए उपयोगकर्ता डीबग बिल्ड की आवश्यकता होती है।
    • afw-user-build . उपयोगकर्ता बिल्ड पर चलता है, लेकिन प्रारंभिक सेटअप को पूरा करने और USB डीबगिंग को सक्षम करने सहित, परीक्षण डिवाइस को ठीक से सेट करने की आवश्यकता होती है।

    परीक्षण योजना afw-userdebug-build चलाने के लिए, उपयोग करें:
    cts-tf> run cts --plan afw-userdebug-build
    
    सभी परीक्षण योजनाओं को देखने के लिए, कमांड list plans का उपयोग करें। योजना की परिभाषा देखने के लिए, out/host/linux-x86/afw-th/android-cts/repository/plans देखें।
  4. एक परीक्षण पैकेज चलाएँ। एकल परीक्षण पैकेज चलाने के लिए,
    cts-tf> run cts --package com.android.afwtest.NfcProvisioning
    
    का उपयोग करें सभी पैकेज देखने के लिए, कमांड list packages का उपयोग करें। अधिक विकल्पों के लिए, run cts --help कमांड का उपयोग करें।

एई टेस्ट हार्नेस को डिबग करना

afw-test-tradefed कंसोल ( cts-tf ) में सभी कमांड चलाएँ, जिसे आप afw-test-tradefed चलाकर लॉन्च कर सकते हैं।

  • -l INFO या -l DEBUG फ्लैग के साथ अधिक जानकारी प्रदर्शित करें। उदाहरण:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
    
  • -s ध्वज के साथ एक विशिष्ट उपकरण पर परीक्षण हार्नेस चलाएँ। उदाहरण:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
    
  • --all-devices फ़्लैग के साथ सभी कनेक्टेड डिवाइसेज़ पर टेस्ट हार्नेस चलाएँ। उदाहरण:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
    
  • list invocations या li का उपयोग करके वर्तमान चल रहे निष्पादन देखें।
  • list results या lr का उपयोग करके पिछले परीक्षण निष्पादन का सारांश देखें।
  • help list का उपयोग करके अन्य list आदेश देखें।
  • afwtest का उपयोग करके फ़िल्टर के साथ रीयल-टाइम afwtest की निगरानी करें, फिर एक और टर्मिनल खोलें और लॉगकैट शुरू करें: adb logcat | grep afwtest . एक परीक्षण पूरा होने के बाद:
    • लॉग इन देखें out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time । पूर्ण डिवाइस लॉगकैट और होस्ट लॉग ( afw-test-tradefed logs) अलग-अलग ज़िप फ़ाइलों में सहेजे जाते हैं।
    • afwtest के लिए डिवाइस लॉगकैट खोज कर प्रासंगिक जानकारी प्राप्त करें। उदाहरण: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • पूर्ण afw-test-tradefed लॉग देखने के लिए, उपयोग करें: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
  • एक परीक्षण पैकेज UI पृष्ठों के माध्यम से जाकर और प्रत्येक पृष्ठ के लिए डिवाइस लॉगकैट फ़ाइल में एक नेविगेशन लॉग रिकॉर्ड करके एंटरप्राइज़ प्रावधान प्रवाह को स्वचालित करता है। उदाहरण: afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
    परीक्षण पैकेज com.android.afwtest.NfcProvisioning के लिए UI पृष्ठ शामिल हैं:
    • com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
    • com.android.afwtest.uiautomator.pages.PageSkipper
    • com.android.afwtest.uiautomator.pages.LandingPage
  • यदि प्रावधान प्रक्रिया के दौरान कोई परीक्षण विफल हो जाता है, तो logcat में निम्न के समान त्रुटि होती है:
    TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
    
    यह आमतौर पर पिछले UI पृष्ठ या लोड करने में विफल पृष्ठ में त्रुटियों के कारण होता है, इसलिए इस त्रुटि से पहले logcat में अन्य त्रुटि संदेशों को खोजने का प्रयास करें। , फिर प्रावधान प्रवाह के बाद इसे मैन्युअल रूप से पुन: पेश करने का प्रयास करें।
  • यदि कोई परीक्षण पैकेज विफल रहता है:
    • एक स्क्रीनशॉट out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time में निम्न सिंटैक्स का उपयोग करके सहेजा जाता है: screenshot-test_ test_class_full_name _ test_case_name - random_number .png । यह जानकारी होस्ट लॉग में भी लॉग होती है।
    • एक बग रिपोर्ट out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time में सहेजी जाती है: bug- test_class_full_name _ test_case_name - random_number .zip
  • सभी परीक्षण पैकेज निष्पादित होने के बाद, एक स्क्रीनशॉट लिया जाता है और out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time के रूप में सहेजा जाता है: screenshot- random_number .png । यह जानकारी होस्ट लॉग में भी लॉग होती है।

सामान्य प्रश्न

क्या मैं उपयोगकर्ता निर्माण के साथ फ्लैश किए गए डिवाइस पर परीक्षण योजना afw-userdebug-build चला सकता हूं?

नहीं। afw-userdebug-build प्लान फ़ैक्टरी में परीक्षण पैकेज वास्तविक परीक्षण प्रवाह चलाने से पहले परीक्षण उपकरण को रीसेट करते हैं और ऑटो-सक्षम होने के लिए adb डीबगिंग की आवश्यकता होती है। उपयोगकर्ता निर्माण के साथ, adb डिबगिंग को केवल डेवलपर विकल्पों में सेटिंग को मैन्युअल रूप से बदलकर सक्षम किया जा सकता है।

क्या मैं उपयोगकर्ता डिबग बिल्ड के साथ फ्लैश किए गए डिवाइस पर परीक्षण योजना afw-user-build चला सकता हूं?

हां, लेकिन हम अनुशंसा करते हैं कि आप इस परीक्षण योजना को उपयोगकर्ता बिल्ड पर चलाएँ।

कभी-कभी मेरा परीक्षण विफल हो जाता है क्योंकि UI लोडिंग में बहुत अधिक समय लगता है। मैं इसे कैसे ठीक करूं?

timeout_size सेटिंग को ./android-cts/repository/testcases/afw-test.props में कॉन्फ़िगर करें। मान्य सेटिंग्स हैं: एस, एम, एल, एक्सएल, एक्सएक्सएल।

परीक्षण पैकेज com.android.afwtest.NfcProvisioning (या SuwDoProvisioning ) मेरे डिवाइस पर विफल हो जाता है क्योंकि स्थापित प्रारंभिक सेटअप प्रावधान पूर्ण होने के बाद अनुकूलित UI (जैसे नियम और शर्तें) दिखाता है। मैं इस अनुकूलित UI को कैसे छोड़ सकता हूं?

प्रावधान प्रक्रिया के बाद न्यूनतम यूआई होना चाहिए। परीक्षण हार्नेस स्वचालित रूप से ऐसे UI को छोड़ देगा यदि UI में एक बटन है जिसमें सार्थक टेक्स्ट या सामग्री विवरण है जिसमें निम्न में से कोई भी शब्द शामिल है: छोड़ें, समाप्त करें, हो गया, स्वीकार करें, सहमत हों, अगला, जारी रखें, या आगे बढ़ें। वैकल्पिक रूप से, आप अपने UI को छोड़ने के लिए परीक्षण हार्नेस को कॉन्फ़िगर करने के लिए afw-test.props में एक बटन को परिभाषित कर सकते हैं। उदाहरण:

oem_widgets=your_btn
your_btn.text=your_customized_text
your_btn.package=your_package
your_btn.action=click

एकाधिक विजेट्स को परिभाषित करने के लिए, अल्पविराम का उपयोग करके अलग करें।

परीक्षण पैकेज com.android.afwtest.NfcProvisioning (या SuwDoProvisioning ) विफल रहा और अंतिम UI स्क्रीन "अपना खाता सत्यापित करें" है। ऐसा क्यों होता है और मैं परीक्षण उपकरण को कैसे पुनर्प्राप्त कर सकता हूं?

यह विफलता इसलिए होती है क्योंकि पिछला परीक्षण पैकेज परीक्षण के अंत में फ़ैक्टरी रीसेट सुरक्षा को साफ़ करने में विफल रहा। डिवाइस को अनलॉक करने के लिए आपको मैन्युअल रूप से खाता दर्ज करना होगा।

मेरे डिवाइस को फ़ैक्टरी रीसेट करने के लिए और समय चाहिए। क्या मैं फ़ैक्टरी रीसेट टाइमआउट बढ़ा सकता हूँ?

हाँ। afw-test.props में factory_reset_timeout_min सेटिंग कॉन्फ़िगर करें। मान्य सेटिंग्स मिनटों में हैं; आप अपने डिवाइस के साथ काम करने वाले किसी भी मिनट पर सेट कर सकते हैं।