এই পৃষ্ঠাটি বর্ণনা করে কিভাবে ACTS পরীক্ষা কনফিগার করতে হয়।
কনফিগারেশনের উৎস
Android Comms Test Suite (ACTS) এর কনফিগারেশনের তিনটি প্রধান উত্স রয়েছে:
- কমান্ড লাইন ইন্টারফেস (CLI)
- ACTS কনফিগারেশন ফাইল
- পরিবেশ পরিবর্তনশীল
এই উত্সগুলি থেকে মানগুলিকে একটি একক কনফিগারেশনে একত্রিত করা হয় যা একটি ACTS পরীক্ষা চালানোর জন্য ব্যবহৃত হয়৷ যদি মানগুলি একাধিক অবস্থানে নির্দিষ্ট করা হয়, তাহলে মানগুলি উপরের ক্রম অনুসারে ওভাররাইট করা হয় (যেখানে CLI অগ্রাধিকার নেয়)।
পরিবেশ ভেরিয়েবলের উপর একটি নোট
ACTS পরীক্ষার জন্য পরিবেশ ভেরিয়েবল ব্যবহার করার সময় সতর্ক থাকুন। এই মানগুলি ব্যবহারকারীর কাছে সবচেয়ে কম দৃশ্যমান, এবং বিকাশকারীর ওয়ার্কস্টেশনের বাইরে ব্যবহারের জন্য সুপারিশ করা হয় না। পরিবেশের বিষাক্ততা প্রতিরোধ করার জন্য ACTS স্বয়ংক্রিয় পরীক্ষার সময় পরিবেশ ভেরিয়েবলগুলি নিষ্ক্রিয় করা হয়।
প্রয়োজনীয় কনফিগারেশন ভেরিয়েবল
প্রতিটি ACTS পরীক্ষার জন্য নিম্নলিখিত ভেরিয়েবল সেট করা প্রয়োজন।
ACTS পরীক্ষার পথ
ACTS একটি একক প্রধান এন্ট্রি অবস্থান থেকে সঞ্চালিত হয়. ফলস্বরূপ, পরীক্ষা পথের অবস্থান রানার অজানা।
ACTS_TESTPATH
এনভায়রনমেন্ট ভেরিয়েবল বা কমান্ড লাইনে -tp
/ --testpaths
পতাকা ব্যবহার করে পরীক্ষার পথের অবস্থান সেট করুন। মানটি ডিরেক্টরিগুলির একটি তালিকা হতে পারে।
ACTS পরীক্ষার ক্লাস
ACTS কে অবশ্যই জানতে হবে কোন পরীক্ষা ক্লাস চালাতে হবে। এটি একটি রেজেক্স বা পরীক্ষার ক্লাস নামের তালিকা হতে পারে।
এই মান সেট করতে, কমান্ড লাইনে -tc
/ --test_class
পতাকা ব্যবহার করুন। মনে রাখবেন যে এই পতাকাটি ক্লাসের নামের একটি তালিকাও গ্রহণ করে। ক্লাসের নাম অবশ্যই তাদের সংশ্লিষ্ট ফাইলের নামের সাথে মেলে, উদাহরণস্বরূপ, SampleTest
অবশ্যই SampleTest.py
এ পাওয়া যাবে।
ACTS লগ পাথ
STDOUT ব্যতীত অন্যগুলিতে লগ লেখার জন্য ACTS-এর একটি অবস্থান থাকতে হবে৷ ACTS সম্পূর্ণ ডিবাগ লগ লেখে যাতে ডেটা থাকে যা কিছু পরীক্ষা কেন ব্যর্থ হচ্ছে তা নির্ধারণ করতে সাহায্য করতে পারে। বিশৃঙ্খলা প্রতিরোধ করার জন্য, ACTS এই লগগুলি STDOUT-এ লেখে না।
লগ পাথ সেট করতে, কমান্ড লাইনে ACTS_LOGPATH
এনভায়রনমেন্ট ভেরিয়েবল বা -lp
/ --logpath
পতাকা ব্যবহার করুন।
ACTS কনফিগার পাথ
পরীক্ষা চালানোর জন্য, ACTS কে অবশ্যই জানতে হবে কি টেস্টবেড আছে। ACTS কনফিগারেশনে টেস্টবেডের সমস্ত ডিভাইস এবং প্রয়োজন হতে পারে এমন কোনো বিশেষ পরীক্ষা বা পরিবেশের পরামিতি রয়েছে। -c
/ --config
ব্যবহার করে কমান্ড লাইনে এই মান সেট করুন।
কনফিগারেশনের মধ্যে একাধিক টেস্টবেড থাকলে, ACTS প্রতিটি টেস্টবেডের জন্য পরীক্ষা চালায়। তালিকায় শুধুমাত্র একটি টেস্টবেডের জন্য পরীক্ষা চালানোর জন্য, -tb/--testbed <NAME>
কমান্ড লাইন আর্গুমেন্ট ব্যবহার করুন।
একটি স্থানীয় ওয়ার্কস্টেশন উদাহরণ
বেশিরভাগ ACTS ব্যবহারকারী একটি একক অ্যান্ড্রয়েড রেপো শাখায় বিকাশ করে এবং এটির অনুরূপ সেটআপ রয়েছে:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='~/android/<REPO_BRANCH>/tools/test/connectivity/acts_tests/'
# On cmdline
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
যদি ACTS ব্যবহারকারীরা একাধিক শাখায় চলে, তারা প্রায়শই acts/framework
ডিরেক্টরি থেকে ACTS চালায় এবং ACTS_TESTPATH
এর জন্য একটি আপেক্ষিক পথ ব্যবহার করে:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='../acts_tests/'
# On cmdline
$ cd ~/android/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
আপনার টেস্টবেড কনফিগার করুন
ACTS কনফিগার ফাইলটি হার্ডওয়্যার ডিভাইসে পরীক্ষা চালানোর জন্য প্রয়োজনীয় সমস্ত তথ্য সরবরাহ করে:
{
"testbed": {
"my_testbed": {
"my_testbed_value": "value"
},
"another_testbed": {
"AndroidDevice": [
"53R147"
]
}
},
"user_parameter_1": "special environment value",
"user_parameter_2": "other special value"
}
এই কনফিগারেশনের বেস ইউনিট হল টেস্টবেড। উপরের উদাহরণ কনফিগারেশনে, testbed my_testbed
একটি একক টেস্টবেড মান দিয়ে তৈরি করা হয়েছে। দ্বিতীয় টেস্টবেড, another_testbed
, একটি বিশেষ কন্ট্রোলার কনফিগারেশন রয়েছে যা অ্যান্ড্রয়েড ডিভাইসের তালিকার জন্য তথ্য ধারণ করে। এই ডিভাইসগুলি self.android_devices
অধীনে ডিভাইসগুলির একটি তালিকায় সংরক্ষণ করা হয়। মনে রাখবেন যে যদি একটি টেস্টবেড একটি AndroidDevice
অবজেক্ট নির্দিষ্ট না করে, তাহলে একটি পরীক্ষা ক্লাস যা একটি AndroidDevice
অবজেক্টের প্রত্যাশা করে একটি ব্যতিক্রম উত্থাপন করে। ACTS-এর সাথে আসা সমর্থিত কন্ট্রোলার কনফিগারগুলির একটি সম্পূর্ণ তালিকার জন্য, /acts/framework/acts/controllers/
এ তালিকাটি দেখুন।
অন্যান্য সমস্ত মান (যা উপরের বিভাগে উল্লিখিত বিশেষ মান নয়) একটি অভিধান হিসাবে self.user_params
এ সংরক্ষণ করা হয়। এটি পরিবেশ বা পরীক্ষার তথ্য রাখার জন্য একটি ভাল জায়গা যেমন ফোনগুলি একটি মিটারযুক্ত ডেটা পরিবেশে আছে কিনা বা পরীক্ষার জন্য কতক্ষণ ডেটা সংগ্রহ করতে হবে।
AndroidDevice-এর জন্য বিশেষ ক্ষেত্রে
বিকাশের সুবিধার জন্য আপনি যখন বিভিন্ন বৈশিষ্ট্য সহ একাধিক ডিভাইস রাখতে চান, তখন AndroidDevice
কিছু বিশেষ ক্ষেত্রে রয়েছে।
JSON কনফিগার বিন্যাস
নিম্নলিখিত JSON উদাহরণের সমস্ত কী/মান জোড়া সংশ্লিষ্ট AndroidDevice
অবজেক্টে সেট করা আছে। যদি কনফিগারেশন AndroidDevice
অ্যাট্রিবিউটে সংজ্ঞায়িত একটি প্যারামিটার ওভাররাইট করার চেষ্টা করে, তাহলে ControllerError
নিক্ষেপ করা হয়।
"AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
{"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]
তারপরে পরীক্ষার স্ক্রিপ্টে, আপনি সঠিক ডিভাইসটি পুনরুদ্ধার করতে এবং ডিভাইস অবজেক্ট থেকে অতিরিক্ত প্যারামিটার অ্যাক্সেস করতে একটি ফিল্টার ফাংশন ব্যবহার করতে পারেন:
def setup_class(self):
self.pub = next(filter(lambda ad: ad.label == 'publisher',
self.android_devices))
self.sub = next(filter(lambda ad: ad.label == 'user_parameter_1',
self.android_devices))
ঐচ্ছিক পরামিতি
নিম্নলিখিত একটি ঐচ্ছিক পরামিতি:
-
adb_logcat_param
: adb লগ সংগ্রহের জন্যadb logcat
কমান্ডের সাথে যুক্ত একটি স্ট্রিং। ডিফল্টরূপে,adb logcat -v threadtime -b all
ব্যবহৃত হয়। যদিadb_logcat_param
সেট করা থাকে,-b all
বিভাগ ওভাররাইট করা হয়। উদাহরণস্বরূপ,-b radio
adb_logcat_param
সেট করা হলে কমান্ড পরিবর্তন করেadb logcat -v threadtime -b radio
।
এই পৃষ্ঠাটি বর্ণনা করে কিভাবে ACTS পরীক্ষা কনফিগার করতে হয়।
কনফিগারেশনের উৎস
Android Comms Test Suite (ACTS) এর কনফিগারেশনের তিনটি প্রধান উত্স রয়েছে:
- কমান্ড লাইন ইন্টারফেস (CLI)
- ACTS কনফিগারেশন ফাইল
- পরিবেশ পরিবর্তনশীল
এই উত্সগুলি থেকে মানগুলিকে একটি একক কনফিগারেশনে একত্রিত করা হয় যা একটি ACTS পরীক্ষা চালানোর জন্য ব্যবহৃত হয়৷ যদি মানগুলি একাধিক অবস্থানে নির্দিষ্ট করা হয়, তাহলে মানগুলি উপরের ক্রম অনুসারে ওভাররাইট করা হয় (যেখানে CLI অগ্রাধিকার নেয়)।
পরিবেশ ভেরিয়েবলের উপর একটি নোট
ACTS পরীক্ষার জন্য পরিবেশ ভেরিয়েবল ব্যবহার করার সময় সতর্ক থাকুন। এই মানগুলি ব্যবহারকারীর কাছে সবচেয়ে কম দৃশ্যমান, এবং বিকাশকারীর ওয়ার্কস্টেশনের বাইরে ব্যবহারের জন্য সুপারিশ করা হয় না। পরিবেশের বিষাক্ততা প্রতিরোধ করার জন্য ACTS স্বয়ংক্রিয় পরীক্ষার সময় পরিবেশ ভেরিয়েবলগুলি নিষ্ক্রিয় করা হয়।
প্রয়োজনীয় কনফিগারেশন ভেরিয়েবল
প্রতিটি ACTS পরীক্ষার জন্য নিম্নলিখিত ভেরিয়েবল সেট করা প্রয়োজন।
ACTS পরীক্ষার পথ
ACTS একটি একক প্রধান এন্ট্রি অবস্থান থেকে সঞ্চালিত হয়. ফলস্বরূপ, পরীক্ষা পথের অবস্থান রানার অজানা।
ACTS_TESTPATH
এনভায়রনমেন্ট ভেরিয়েবল বা কমান্ড লাইনে -tp
/ --testpaths
পতাকা ব্যবহার করে পরীক্ষার পথের অবস্থান সেট করুন। মানটি ডিরেক্টরিগুলির একটি তালিকা হতে পারে।
ACTS পরীক্ষার ক্লাস
ACTS কে অবশ্যই জানতে হবে কোন পরীক্ষা ক্লাস চালাতে হবে। এটি একটি রেজেক্স বা পরীক্ষার ক্লাস নামের তালিকা হতে পারে।
এই মান সেট করতে, কমান্ড লাইনে -tc
/ --test_class
পতাকা ব্যবহার করুন। মনে রাখবেন যে এই পতাকাটি ক্লাসের নামের একটি তালিকাও গ্রহণ করে। ক্লাসের নাম অবশ্যই তাদের সংশ্লিষ্ট ফাইলের নামের সাথে মেলে, উদাহরণস্বরূপ, SampleTest
অবশ্যই SampleTest.py
এ পাওয়া যাবে।
ACTS লগ পাথ
STDOUT ব্যতীত অন্যগুলিতে লগ লেখার জন্য ACTS-এর একটি অবস্থান থাকতে হবে৷ ACTS সম্পূর্ণ ডিবাগ লগ লেখে যাতে ডেটা থাকে যা কিছু পরীক্ষা কেন ব্যর্থ হচ্ছে তা নির্ধারণ করতে সাহায্য করতে পারে। বিশৃঙ্খলা প্রতিরোধ করার জন্য, ACTS এই লগগুলি STDOUT-এ লেখে না।
লগ পাথ সেট করতে, কমান্ড লাইনে ACTS_LOGPATH
এনভায়রনমেন্ট ভেরিয়েবল বা -lp
/ --logpath
পতাকা ব্যবহার করুন।
ACTS কনফিগার পাথ
পরীক্ষা চালানোর জন্য, ACTS কে অবশ্যই জানতে হবে কি টেস্টবেড আছে। ACTS কনফিগারেশনে টেস্টবেডের সমস্ত ডিভাইস এবং প্রয়োজন হতে পারে এমন কোনো বিশেষ পরীক্ষা বা পরিবেশের পরামিতি রয়েছে। -c
/ --config
ব্যবহার করে কমান্ড লাইনে এই মান সেট করুন।
কনফিগারেশনের মধ্যে একাধিক টেস্টবেড থাকলে, ACTS প্রতিটি টেস্টবেডের জন্য পরীক্ষা চালায়। তালিকায় শুধুমাত্র একটি টেস্টবেডের জন্য পরীক্ষা চালানোর জন্য, -tb/--testbed <NAME>
কমান্ড লাইন আর্গুমেন্ট ব্যবহার করুন।
একটি স্থানীয় ওয়ার্কস্টেশন উদাহরণ
বেশিরভাগ ACTS ব্যবহারকারী একটি একক অ্যান্ড্রয়েড রেপো শাখায় বিকাশ করে এবং এটির অনুরূপ সেটআপ রয়েছে:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='~/android/<REPO_BRANCH>/tools/test/connectivity/acts_tests/'
# On cmdline
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
যদি ACTS ব্যবহারকারীরা একাধিক শাখায় চলে, তারা প্রায়শই acts/framework
ডিরেক্টরি থেকে ACTS চালায় এবং ACTS_TESTPATH
এর জন্য একটি আপেক্ষিক পথ ব্যবহার করে:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='../acts_tests/'
# On cmdline
$ cd ~/android/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
আপনার টেস্টবেড কনফিগার করুন
ACTS কনফিগার ফাইলটি হার্ডওয়্যার ডিভাইসে পরীক্ষা চালানোর জন্য প্রয়োজনীয় সমস্ত তথ্য সরবরাহ করে:
{
"testbed": {
"my_testbed": {
"my_testbed_value": "value"
},
"another_testbed": {
"AndroidDevice": [
"53R147"
]
}
},
"user_parameter_1": "special environment value",
"user_parameter_2": "other special value"
}
এই কনফিগারেশনের বেস ইউনিট হল টেস্টবেড। উপরের উদাহরণ কনফিগারেশনে, testbed my_testbed
একটি একক টেস্টবেড মান দিয়ে তৈরি করা হয়েছে। দ্বিতীয় টেস্টবেড, another_testbed
, একটি বিশেষ কন্ট্রোলার কনফিগ রয়েছে যা অ্যান্ড্রয়েড ডিভাইসের তালিকার জন্য তথ্য ধারণ করে। এই ডিভাইসগুলি self.android_devices
অধীনে ডিভাইসগুলির একটি তালিকায় সংরক্ষণ করা হয়। মনে রাখবেন যে যদি একটি টেস্টবেড একটি AndroidDevice
অবজেক্ট নির্দিষ্ট না করে, তাহলে একটি পরীক্ষা ক্লাস যা একটি AndroidDevice
অবজেক্টের প্রত্যাশা করে একটি ব্যতিক্রম উত্থাপন করে। ACTS-এর সাথে আসা সমর্থিত কন্ট্রোলার কনফিগারগুলির একটি সম্পূর্ণ তালিকার জন্য, /acts/framework/acts/controllers/
এ তালিকাটি দেখুন।
অন্যান্য সমস্ত মান (যা উপরের বিভাগে উল্লিখিত বিশেষ মান নয়) একটি অভিধান হিসাবে self.user_params
এ সংরক্ষণ করা হয়। এটি পরিবেশ বা পরীক্ষার তথ্য রাখার জন্য একটি ভাল জায়গা যেমন ফোনগুলি একটি মিটারযুক্ত ডেটা পরিবেশে আছে কিনা বা পরীক্ষার জন্য কতক্ষণ ডেটা সংগ্রহ করতে হবে।
AndroidDevice-এর জন্য বিশেষ ক্ষেত্রে
বিকাশের সুবিধার জন্য আপনি যখন বিভিন্ন বৈশিষ্ট্য সহ একাধিক ডিভাইস রাখতে চান, তখন AndroidDevice
কিছু বিশেষ ক্ষেত্রে রয়েছে।
JSON কনফিগার বিন্যাস
নিম্নলিখিত JSON উদাহরণের সমস্ত কী/মান জোড়া সংশ্লিষ্ট AndroidDevice
অবজেক্টে সেট করা আছে। যদি কনফিগারেশন AndroidDevice
অ্যাট্রিবিউটে সংজ্ঞায়িত একটি প্যারামিটার ওভাররাইট করার চেষ্টা করে, তাহলে ControllerError
নিক্ষেপ করা হয়।
"AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
{"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]
তারপরে পরীক্ষার স্ক্রিপ্টে, আপনি সঠিক ডিভাইসটি পুনরুদ্ধার করতে এবং ডিভাইস অবজেক্ট থেকে অতিরিক্ত প্যারামিটার অ্যাক্সেস করতে একটি ফিল্টার ফাংশন ব্যবহার করতে পারেন:
def setup_class(self):
self.pub = next(filter(lambda ad: ad.label == 'publisher',
self.android_devices))
self.sub = next(filter(lambda ad: ad.label == 'user_parameter_1',
self.android_devices))
ঐচ্ছিক পরামিতি
নিম্নলিখিত একটি ঐচ্ছিক পরামিতি:
-
adb_logcat_param
: adb লগ সংগ্রহের জন্যadb logcat
কমান্ডের সাথে যুক্ত একটি স্ট্রিং। ডিফল্টরূপে,adb logcat -v threadtime -b all
ব্যবহৃত হয়। যদিadb_logcat_param
সেট করা থাকে,-b all
বিভাগ ওভাররাইট করা হয়। উদাহরণস্বরূপ,-b radio
adb_logcat_param
সেট করা হলে কমান্ড পরিবর্তন করেadb logcat -v threadtime -b radio
।