ACTS পরীক্ষা কনফিগার করুন

এই পৃষ্ঠাটি বর্ণনা করে কিভাবে 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