ACTS টেলিফোনি পরীক্ষা

অ্যান্ড্রয়েড কমস টেস্ট স্যুট (ACTS) ওয়াই-ফাই, ব্লুটুথ এবং সেলুলার পরিষেবাগুলির মতো সংযোগ স্ট্যাকের স্বয়ংক্রিয় পরীক্ষা করে। টেস্টিং টুলের জন্য adb এবং Python প্রয়োজন। টুলটি tools/test/connectivity/acts অবস্থিত।

এই পৃষ্ঠাটি বর্ণনা করে যে কিভাবে দুটি ফোন সহ ব্যবহারকারীর জন্য Android ওপেন সোর্স প্রজেক্ট (AOSP) এ উপলব্ধ মৌলিক টেলিফোনি পরীক্ষা চালানো যায়।

পূর্বশর্ত

ACTS টেলিফোনি পরীক্ষা চালানোর জন্য, আপনার একটি সম্পূর্ণ অ্যান্ড্রয়েড রিপোজিটরিতে অ্যাক্সেস থাকতে হবে এবং আপনি যে ডিভাইসগুলি পরীক্ষা করতে চান তাতে ইউজারডিবাগ বিল্ড ইনস্টল করতে হবে।

একটি Android সংগ্রহস্থল ডাউনলোড করুন

আপনি যে ডিভাইসগুলি পরীক্ষা করতে চান তার সাথে USB সংযোগ রয়েছে এমন একটি মেশিনে একটি Android সংগ্রহস্থল ডাউনলোড করতে উত্স ডাউনলোড করুন -এ নির্দেশাবলী অনুসরণ করুন৷

  • AOSP হল একটি মাল্টিগিগাবাইট কোডবেস যা বাড়তে থাকে। সেই অনুযায়ী ডাউনলোডের সময় আপনার প্রত্যাশা সামঞ্জস্য করুন।
    • একটি মেশিনের আকার সীমাবদ্ধ হলে, repo init কমান্ডে --depth=1 যোগ করুন।
  • ACTS টুলিংয়ের ভবিষ্যতের আপডেট পেতে, Android রুট ডিরেক্টরিতে যান:
    • repo sync tools/test/connectivity ব্যবহার করুন
    • এবং repo sync external/sl4a

ডিভাইসে ইউজার ডিবাগ বিল্ড যাচাই করুন

আপনার টেস্ট ডিভাইসে Android এর একটি userdebug সংস্করণ ইনস্টল করুন।

  • বিল্ড অ্যান্ড্রয়েড- এ নির্দেশাবলী ব্যবহার করে সংগ্রহস্থল তৈরি করুন।
  • ফ্ল্যাশ এ ডিভাইসে বর্ণিত ডিভাইসটিকে ফ্ল্যাশ করুন।
    • adb shell getprop ro.build.type কমান্ডটি userdebug রিটার্ন করবে।
    • ro.build.type উপলব্ধ না হলে, একটি userdebug বিল্ড রুট (টার্মিনাল # ) হিসাবে adb শেল চালানোর অনুমতি দেয়।

SL4A তৈরি এবং ইনস্টল করুন

অ্যান্ড্রয়েডের জন্য স্ক্রিপ্টিং লেয়ার তৈরি এবং ইনস্টল করতে (SL4A), অ্যান্ড্রয়েডের জন্য স্ক্রিপ্টিং লেয়ারের নির্দেশাবলী অনুসরণ করুন। ডিফল্টরূপে অ্যান্ড্রয়েড বিল্ডে SL4A বিল্ডস যুক্ত করা বিভাগটি ঐচ্ছিক।

SLA4 তৈরি করার পর, শেষ লগ মেসেজে sl4a.apk ফাইলের অবস্থান রয়েছে, যা আপনাকে সমস্ত ডিভাইসে ইনস্টল করতে হবে। এখানে একটি লগ বার্তার একটি উদাহরণ:

Copy: out/target/path/to/sl4a.apk

পরীক্ষা করার জন্য ডিভাইস কনফিগার করুন

এই ACTS বিল্ড/টুল প্রয়োজনীয়তাগুলি ব্যবহার করে ডিভাইসগুলি কনফিগার করুন:

  • যদি ADB বিক্রেতা কীগুলি অনুপলব্ধ থাকে, তাহলে DUT-তে ট্রাস্ট এই কম্পিউটারের পপআপটি প্রদর্শিত হলে আলতো চাপুন৷ যদি ADB বিক্রেতা কীগুলি উপলব্ধ থাকে:

    • ADB ভেন্ডর কী এবং ড্রাইভার অবশ্যই DUT-এর জন্য অনন্য হতে হবে।
    • সর্বদা ইউএসবি ডিবাগিং সক্ষম করতে, আপনার সোর্স ট্রিতে থাকা ADB ভেন্ডর কীগুলিকে অবশ্যই ~/.bashrc (বা সমতুল্য) র সাথে export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys যোগ করতে হবে যেখানে /path/to/directory আছে হোস্টে আপনার সম্পূর্ণ যোগ্য পথ। ADB সমস্যা সমাধানের জন্য, একটি হার্ডওয়্যার ডিভাইসে অ্যাপ চালান দেখুন।
  • ইউএসবি ডিবাগিংয়ের অনুমতি দিন: যখন অ্যাডবি ড্রাইভার ইনস্টল করা থাকে, তখন অ্যাডবি ডিভাইসগুলি ইউএসবি ডিবাগিংয়ের অনুমতি দেওয়ার জন্য ডিভাইসে একটি প্রম্পট ট্রিগার করতে পারে।

  • $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk ব্যবহার করে sl4a.apk ইনস্টল করুন

  • নিশ্চিত করুন যে ফোনগুলি পরীক্ষা সার্ভারে একটি USB 2.0 সংযোগ ব্যবহার করে৷

  • এই পরীক্ষাগুলি লাইভ সেল নেটওয়ার্কগুলির উপর নির্ভর করে, তাই ফোনগুলিতে সিম কার্ড রাখুন এবং ফোনগুলিকে এমন এলাকায় রাখুন যেখানে ভাল সেল পরিষেবা রয়েছে৷

  • একটি কনফিগারেশন ফাইল লিখতে বর্ণিত একটি JSON ফাইলে সমস্ত সিম কার্ড যোগ করুন।

পরিবেশ স্থাপন করুন

পরিবেশ সেট আপ করার আগে, পাইথন 3.4+ ইনস্টল করা আছে কিনা তা যাচাই করুন।

চালান:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler

ACTS ইনস্টল করুন

চালান:

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

ইনস্টলেশন যাচাই করতে, act.py -h চালান, যা উপলব্ধ কমান্ডের একটি তালিকা প্রিন্ট করে।

একটি কনফিগার ফাইল লিখুন

পরীক্ষা চালানোর জন্য, আপনাকে কনফিগারেশন তথ্য সহ একটি ফাইল তৈরি করতে হবে। এখানে একটি উদাহরণ .config ফাইল. একটি অনুরূপ ফাইল tools/test/connectivity/acts/framework/sample_config.json অধীনে Android সংগ্রহস্থলে উপলব্ধ। একটি টেলিফোনি পরীক্ষা চালানোর জন্য ACTS-এর প্রয়োজন ন্যূনতম তথ্য প্রদান করতে ডিভাইস সিরিয়াল নম্বর দিয়ে XXXXXXX প্রতিস্থাপন করুন।

{
  "_description": "Minimum Telephony Config",
  "testbed":
  [
      {
          "_description": "A testbed listing two AndroidDevices for adb.",
          "name": "ExampleTestBed",
          "AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
                            {"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
      }
  ],
  "logpath": "/path/to/logs",
  "testpaths": "/path/to/android/repo/tools/test/connectivity",
  "sim_conf_file": "/path/to/simcard_list.json"
}

পরীক্ষার পরামিতি কনফিগার করতে টেবিলের কী ব্যবহার করুন। আরও বিকল্পের জন্য অতিরিক্ত কনফিগারেশন বিকল্পগুলি পড়ুন।

চাবি মান
_description সম্পূর্ণ কনফিগার ফাইলের বিষয়বস্তুতে মন্তব্য করুন
testbed একটি পরিবেশের স্পেসিফিকেশন যেখানে পরীক্ষা চলতে পারে
(টেস্টবেড) _description প্রতিটি টেস্টবেডের উপর মন্তব্য করুন, কারণ ACTS পৃথক টেস্টবেডকে লক্ষ্য করতে পারে
(টেস্টবেড) name কমান্ড লাইন থেকে কল করার জন্য টেস্টবেডের নাম
(টেস্টবেড) AndroidDevice নির্দিষ্ট ডিভাইসের তালিকা যা পরীক্ষা লক্ষ্য করে
দ্রষ্টব্য: তালিকাভুক্ত একাধিক ডিভাইস থাকতে পারে। একটি পরীক্ষা যা একে অপরকে কল করে ফোন চালায় তা আশা করে যে দুটি ডিভাইস থাকবে এবং কম থাকলে ব্যর্থ হবে। যদি তালিকাভুক্ত দুটি ডিভাইস থাকে এবং পরীক্ষাটি শুধুমাত্র একটির প্রত্যাশা করে, সেই পরীক্ষাটি প্রথম ডিভাইসে চালানো হয়।
(টেস্টবেড)(AndroidDevice) serial ডিভাইসের সিরিয়াল নম্বর ( adb devices থেকে মুদ্রিত)
(টেস্টবেড)(AndroidDevice) adb_logcat_param পরীক্ষার সময় adb logcat কল করা হলে যে প্যারামিটারগুলি পাস হয়৷
logpath পরীক্ষার সার্ভারের অবস্থান যেখানে লগগুলি সংরক্ষিত হয়৷
testpaths টেস্ট কেস কোডের অবস্থান
sim_conf_file .json ফাইলের অবস্থান যা উপলব্ধ সিম কার্ডগুলিকে তালিকাভুক্ত করে৷
সিম কার্ডের তালিকায় কার্ডের আইডি, কার্ডের ক্ষমতা, অপারেটর এবং ফোন নম্বর অন্তর্ভুক্ত রয়েছে।
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

আপনি সিস্টেমের অধীনে ডিভাইস থেকে ফোন নম্বর টানতে পারেন > ফোন সম্পর্কে । সিম কার্ড আইডি সাধারণত সিম কার্ডে প্রিন্ট করা হয়, বা সিস্টেম > ফোন সম্পর্কে > সিম স্থিতির অধীনে ডিভাইস থেকে পাওয়া যায়। অপারেটর স্ট্রিংটি tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py এ সংজ্ঞায়িত করা হয়েছে, তারপর CARRIER_ অনুসন্ধান করুন।

অতিরিক্ত কনফিগারেশন বিকল্প

Android সংগ্রহস্থলের tools/test/connectivity/acts/framework/acts/config/entries.py এ অবস্থিত entries.py ফাইলটিতে প্রধান কমান্ড লাইন কনফিগারেশন বিকল্পগুলির সংজ্ঞা রয়েছে।

এছাড়াও আপনি self.user_params.get অনুসন্ধান করে কোডে পরীক্ষা-নির্দিষ্ট পরামিতি খুঁজে পেতে পারেন।

পরীক্ষা চালান

কনফিগার ফাইল লেখার পরে কমান্ড লাইন থেকে পরীক্ষা চালান। যদিও অনেকগুলি বিকল্প রয়েছে, সবচেয়ে সহজ হল -c filename.config -tc TestCase:name ব্যবহার করা। এই উদাহরণটি minimum.config নামে একটি কনফিগার ফাইল ব্যবহার করে:

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general

একটি সফল পরীক্ষা চালানোর একটি চূড়ান্ত আউটপুট বার্তা এই মত থাকা উচিত:

INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0

একাধিক পরীক্ষা চালান

একাধিক ফাইল জুড়ে নির্দিষ্ট পরীক্ষার ক্ষেত্রে চালানোর জন্য, একটি পরীক্ষা ফাইল তৈরি করুন এবং পতাকা -tf দিয়ে পাস করুন, যেমন রিগ্রেশন টেস্ট স্যুটে দেখানো হয়েছে:

TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g

TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g

TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g

এই উদাহরণ কমান্ডটি অনুমান করে যে ফাইলটির নাম regression_suite.

act.py -c minimum.config -tf regression_suite

একাধিকবার পরীক্ষা চালান

একটি টেস্ট কেস ( -tc ) বা টেস্ট ফাইল ( -tf ) একাধিকবার চালানোর জন্য, কমান্ডে -ti # (পরীক্ষা পুনরাবৃত্তি) যোগ করুন।