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

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

एंड्रॉयड 8 या संस्करण चलाने वाले उपकरणों के लिए, एई टेस्ट हार्नेस के उपयोग नहीं किया जाता।

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

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

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

एई टेस्ट हार्नेस स्रोत में चरणों का उपयोग कर कोड डाउनलोड स्रोत डाउनलोड कर रहा है । एई टेस्ट हार्नेस स्रोत कोड में है ./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-परीक्षण-हार्नेस-१.५ एंड्रॉइड 6.0

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

Android Studio में देखना

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

  1. भागो निम्न कमांड
    make idegen
    development/tools/idegen/idegen.sh
    
  2. एंड्रॉयड स्टूडियो में, खोलने android.ipr

एई टेस्ट हार्नेस स्रोत कोड में है 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

एक डिवाइस प्रकार का चयन करें और Enter दबाएँ।

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

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-परीक्षण 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
  • अन्य देखें list का उपयोग कर आदेशों help list
  • का उपयोग कर मॉनिटर फिल्टर के साथ वास्तविक समय logcat afwtest , फिर एक और टर्मिनल खोलने के लिए और का उपयोग कर logcat शुरू: adb logcat | grep afwtest । एक परीक्षण पूरा होने के बाद:
    • में लॉग देखना out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time । पूर्ण डिवाइस logcat और मेजबान लॉग ( afw-test-tradefed लॉग) अलग ज़िप फ़ाइलों में सहेजे जाते हैं।
    • Afwtest के लिए डिवाइस logcat खोज के द्वारा प्रासंगिक जानकारी प्राप्त करें। उदाहरण: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • देखने के लिए पूर्ण afw-परीक्षण 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 में शामिल हैं:
    • 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
    
    , यह आमतौर पर पिछले एक यूआई पृष्ठ या पृष्ठ है कि लोड होने में विफल में त्रुटियों के कारण होता है तो यह त्रुटि से पहले 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 एक डिवाइस पर userdebug निर्माण के साथ दिखाया?

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

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

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

परीक्षण पैकेज com.android.afwtest.NfcProvisioning (या SuwDoProvisioning ) अपने डिवाइस पर विफल रहता है स्थापित प्रारंभिक सेटअप के प्रावधान के बाद यूआई (जैसे टर्म और शर्तें के रूप में) अनुकूलित शो पूरा हो गया है क्योंकि। मैं इस अनुकूलित 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 ) में विफल रहा है और पिछले यूआई स्क्रीन कि "अपना खाता सत्यापित करना।" ऐसा क्यों होता है और मैं परीक्षण उपकरण को कैसे पुनर्प्राप्त कर सकता हूं?

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

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

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