ডিভাইস বিধানের পরীক্ষা করা

অ্যান্ড্রয়েড 6 বা অ্যান্ড্রয়েড 7 চালানো ডিভাইসের জন্য, আপনি অ্যান্ড্রয়েড এন্টারপ্রাইজ (AE) টেস্ট হারনেস ব্যবহার করে ডিভাইস প্রভিশন পরীক্ষা করতে পারেন, যা অ্যান্ড্রয়েড ডিভাইসের এন্টারপ্রাইজ সামঞ্জস্যতা যাচাই করার জন্য একটি পরীক্ষা স্যুট। সাজ সমর্থন অ্যাপ্লিকেশান, পরীক্ষার বিষয়, কনফিগারেশন ফাইল, এবং একটি পরীক্ষা রানার (অন্তর্ভুক্ত afw-test-tradefed ) নির্মিত cts-tradefed । ই টেস্ট হারনেস স্থাপনের আগে, সম্পন্ন নিশ্চিত করা ডিভাইস প্রশাসন জন্য প্রভিশনিং

অ্যান্ড্রয়েড 8 বা উচ্চতর চলমান ডিভাইসগুলির জন্য, ই টেস্ট হারনেস ব্যবহার অসমর্থিত হয়েছে।

একটি উন্নয়ন পরিবেশ স্থাপন

AE টেস্ট হারনেসের উন্নয়নের পরিবেশ অ্যান্ড্রয়েড ওএসের মতো। মধ্যে ধাপগুলি অনুসরণ করুন আবশ্যকতা একটি উন্নয়ন মেশিন সেট আপ করার জন্য।

সোর্স কোড ডাউনলোড করা হচ্ছে

ই টেস্ট হারনেস উৎস পদক্ষেপ ব্যবহার কোড ডাউনলোড উত্স ডাউনলোড হচ্ছে । ই টেস্ট হারনেস সোর্স কোডে হয় ./test/AfwTestHarness প্রকল্পের। শাখার নাম ডাউনলোড করার জন্য AE টেস্ট হারনেসের সংস্করণ নির্ধারণ করে (প্রতিটি অ্যান্ড্রয়েড প্ল্যাটফর্মের AE টেস্ট হারনেসের আলাদা সংস্করণ রয়েছে)। উদাহরণস্বরূপ, Android এর জন্য 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

একটি ভিন্ন সংস্করণের জন্য সোর্স কোড পরীক্ষা করতে, সংশ্লিষ্ট ট্যাগ সহ শাখাটি নির্দিষ্ট করুন। উপলব্ধ শাখাগুলির মধ্যে রয়েছে:

শাখার নাম সমর্থিত অ্যান্ড্রয়েড প্ল্যাটফর্ম
afw-test-harness-nougat-dev অ্যান্ড্রয়েড 7.0
afw-test-harness-2.1 অ্যান্ড্রয়েড 7.0
afw-test-harness-marshmallow-dev অ্যান্ড্রয়েড 6.0
afw-test-harness-1.5 অ্যান্ড্রয়েড 6.0

জোড় তৈরির জন্য প্রয়োজনীয় অন্যান্য নির্ভরতা প্রকল্পগুলিও সোর্স কোড দিয়ে ডাউনলোড করা হয়।

অ্যান্ড্রয়েড স্টুডিওতে দেখা হচ্ছে

অ্যান্ড্রয়েড স্টুডিওতে সোর্স কোড দেখতে এবং সম্পাদনা করতে:

  1. চালান নিম্নলিখিত কমান্ড
    make idegen
    development/tools/idegen/idegen.sh
    
  2. অ্যান্ড্রয়েড স্টুডিও এ, ওপেন android.ipr

ই টেস্ট হারনেস সোর্স কোডে হয় test/AfwTestHarness

AE টেস্ট হারনেস কনফিগার করা হচ্ছে

আপনি কনফিগার করে সাজ কাস্টমাইজ করতে পারেন test/AfwTestHarness/afw-test.props । সফলভাবে জোতা চালানোর জন্য, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. Wi-Fi নেটওয়ার্ক কনফিগার করুন afw-test.props নিম্নলিখিত বৈশিষ্ট্য সঙ্গে:
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. একটি ডোমেইন থেকে কমপক্ষে একটি অ্যাকাউন্ট পান যা DPC কে তার ডিভাইস নীতি নিয়ন্ত্রক হিসাবে পরীক্ষা করতে বাধ্য। ইন বিশদ উল্লেখ করুন afw-test.props নিম্নলিখিত বৈশিষ্ট্য সঙ্গে:
    work_account_username
    work_account_password
    

    ই টেস্ট হারনেস, পরীক্ষা প্রভিশনিং প্রবাহ টেস্ট DPC ব্যবহার করে, তাই অ্যাকাউন্ট পরীক্ষা সাজ চালানোর জন্য টেস্ট DPC সংলগ্ন উচিত নয়।

AE টেস্ট হারনেস নির্মাণ

ব্যবহার করে বিল্ড কনফিগারেশন শুরু করুন:

source build/envsetup.sh
lunch

একটি ডিভাইস প্রকার নির্বাচন করুন এবং Enter চাপুন।

ব্যবহার করে জোতা তৈরি করুন:

make afw-test-harness -j32

এই ডিরেক্টরির তৈরি করে ( out/host/linux-x86/afw-th/android-cts ) প্রয়োজনীয় সকল বাইনেরিতে, কনফিগারেশন ফাইল, এবং টুলস পরীক্ষা সাজ চালানোর সঙ্গে। এই ডিরেক্টরিটি একটি ফাইল (মধ্যে zipped হয় out/host/linux-x86/afw-th/android-afw-test-harness.zip ) জন্য বন্টন।

AE টেস্ট হারনেস চালানো

AE টেস্ট হারনেস চালানোর জন্য নিম্নলিখিত ধাপগুলি ব্যবহার করুন:

  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 কাজের জন্য ব্যবহৃত অ্যাকাউন্ট এবং Wi-Fi কনফিগারেশন রয়েছে।
  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

AE টেস্ট হারনেস ডিবাগ করা

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 লগ) পৃথক zip ফাইলে সংরক্ষিত হয়।
    • 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
    পরীক্ষা প্যাকেজের জন্য UI 'তে পৃষ্ঠাগুলি 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
    
    , এটি সাধারণত কোনো পূর্ববর্তী 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 কোনো ডিভাইসে userdebug বিল্ড সঙ্গে চমকিত?

হ্যাঁ, কিন্তু আমরা সুপারিশ করি যে আপনি এই টেস্ট প্ল্যানটি ব্যবহারকারী বিল্ডে চালান।

কখনও কখনও আমার পরীক্ষা ব্যর্থ হয় কারণ UI লোডিংয়ে অনেক বেশি সময় লাগে। আমি এটা কিভাবে ঠিক করবো?

কনফিগার করুন timeout_size সেটিং ./android-cts/repository/testcases/afw-test.props । বৈধ সেটিংস হল: S, M, L, XL, XXL।

পরীক্ষা প্যাকেজ 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 'তে পর্দায় রয়েছে "আপনার অ্যাকাউন্ট যাচাই করুন।" কেন এটি ঘটে এবং কিভাবে আমি পরীক্ষার যন্ত্রটি পুনরুদ্ধার করতে পারি?

এই ব্যর্থতা ঘটে কারণ পূর্ববর্তী পরীক্ষার প্যাকেজ পরীক্ষার শেষে ফ্যাক্টরি রিসেট সুরক্ষা পরিষ্কার করতে ব্যর্থ হয়। ডিভাইসটি আনলক করার জন্য আপনাকে অবশ্যই অ্যাকাউন্টটি প্রবেশ করতে হবে।

ফ্যাক্টরি রিসেট করতে আমার ডিভাইসের আরো সময় প্রয়োজন। আমি কি ফ্যাক্টরি রিসেট সময়সীমা বাড়িয়ে দিতে পারি?

হ্যাঁ. কনফিগার করুন factory_reset_timeout_min সেটিং afw-test.props । বৈধ সেটিংস মিনিটের মধ্যে হয়; আপনি আপনার ডিভাইসের সাথে কাজ করে এমন যেকোনো মিনিট সেট করতে পারেন।