এই ডকুমেন্টটি SDV টেস্ট ফ্রেমওয়ার্কের একটি সংক্ষিপ্ত বিবরণ প্রদান করে এবং টেস্ট সেট আপ, কনফিগার ও এক্সিকিউট করার বিষয়ে আপনাকে নির্দেশনা দেয়। এন্ড-টু-এন্ড টেস্টিংয়ের জন্য SDV টেস্ট ফ্রেমওয়ার্ক ব্যবহার করুন। এই টুলটি Mobly-এর উপর ভিত্তি করে তৈরি; আপনি পাইথনে টেস্টগুলো লিখবেন।
পরিবেশ তৈরি করুন
এই ডকুমেন্টটি ধরে নেয় যে আপনি ইতিমধ্যেই SDV-এর জন্য আপনার ওয়ার্কস্টেশন সেট আপ করে রেখেছেন। ফ্রেমওয়ার্ক টেস্টগুলো চালানোর জন্য, virtualenv ইনস্টল করুন।
পাইথন নির্ভরতা
অ্যান্ড্রয়েডে ডিপেন্ডেন্সি ম্যানেজ করার জন্য প্রস্তাবিত পদ্ধতি হলো বিল্ড কনফিগারেশন ব্যবহার করে টেস্ট, পাইথন এবং তাদের ডিপেন্ডেন্সিগুলোকে একটি এক্সিকিউটেবল হিসেবে প্যাকেজ করা। আপনাকে অবশ্যই SDV টেস্টিং রিপোজিটরিতে এই পদ্ধতি অনুসরণ করতে হবে।
SDV টেস্ট ফ্রেমওয়ার্ক লাইব্রেরি ডিফল্টরূপে এই নির্ভরতাগুলি সরবরাহ করে:
-
mobly - টেস্টে প্যারামিটারাইজেশন ব্যবহার করার জন্য
absl-pyপ্রয়োজন। - ইন্টারেক্টিভ কমান্ডের কার্যকারিতার জন্য
pexpectআবশ্যক। - ইন্টারেক্টিভ কমান্ডের কার্যকারিতার জন্য
ptyprocessআবশ্যক।
যদি টেস্ট-নির্দিষ্ট ডিপেন্ডেন্সিগুলোর প্রয়োজন হয়, তাহলে সেগুলো টেস্টের Android.bp ফাইলে অন্তর্ভুক্ত করুন।
python_test_host {
…
libs: [
"<DEPENDENCY1",
"<DEPENDENCY2",
…
],
…
}
সিস্টেম পরীক্ষার প্রকারভেদ
আপনি SDV টেস্ট ফ্রেমওয়ার্ক ব্যবহার করে সিস্টেম টেস্ট তৈরি করেন। ফ্রেমওয়ার্কটি নিম্নলিখিত প্রকারগুলির মধ্যে পার্থক্য করে। টেস্টগুলিকে সঠিকভাবে শ্রেণীবদ্ধ করুন:
- নমুনা পরীক্ষা: SDV নমুনা পরিষেবাগুলো চালান এবং যাচাই করুন যে ফলাফলটি প্রত্যাশিত আউটপুটের সাথে মেলে।
- এন্ড-টু-এন্ড টেস্ট: এসডিভি স্যাম্পল সার্ভিস ব্যবহার করবেন না।
- দীর্ঘস্থায়ী পরীক্ষা: দীর্ঘ সময় ধরে চলার জন্য ডিজাইন করা হয়েছে।
- পারফরম্যান্স পরীক্ষা:
perfettoলাইব্রেরি ব্যবহার করুন। - হার্ডওয়্যার পরীক্ষা: এগুলো শুধুমাত্র একটি ভৌত ডিভাইসে চালানোর জন্য ডিজাইন করা হয়েছে, কাটলফিশ (CF)-এ নয়।
একটি পরীক্ষা তৈরি করুন
ফ্রেমওয়ার্ক ব্যবহার করে লেখা সমস্ত টেস্ট অবশ্যই টেস্টিং রিপোজিটরিতে থাকতে হবে। টেস্টের সঠিক অবস্থান তার ধরনের উপর নির্ভর করে।
একটি পরীক্ষা কনফিগার করুন
সমস্ত পরীক্ষা atest এবং CATBox উভয় ব্যবহার করে চালানোর জন্য কনফিগার করুন।
একটি পরীক্ষা কনফিগার করুন
এই ফ্রেমওয়ার্কটি একটি, দুটি এবং তিনটি ভার্চুয়াল মেশিন (VM) পরীক্ষার জন্য টেমপ্লেট সরবরাহ করে। আপনার Android.bp ফাইলে নিম্নলিখিতগুলি যোগ করুন:
একটি ভিএম
python_test_host {
...
test_config_template: ":sdv_one_device",
}
দুটি ভিএম
python_test_host {
...
test_config_template: ":sdv_two_devices",
}
তিনটি ভিএম
python_test_host {
...
test_config_template: ":sdv_three_devices",
}
বেশিরভাগ পরীক্ষার জন্য ডিফল্ট টেমপ্লেটই যথেষ্ট। জোরালো কারণ না থাকলে কাস্টম কনফিগারেশন তৈরি করা থেকে বিরত থাকুন।
ডিফল্ট টাইমআউট আপডেট করুন
টেস্টগুলো স্থানীয়ভাবে চালানোর জন্য ডিফল্ট টাইমআউট যথেষ্ট হওয়া উচিত।
যদি টাইমআউটের কারণে আপনার টেস্ট স্থানীয়ভাবে ব্যর্থ হয়, তবে সেটিকে বিভিন্ন টেস্টে বিভক্ত করার কথা বিবেচনা করুন। অনেক টেস্ট কেস সহ খুব দীর্ঘ টেস্ট এক্সিকিউশনে বাধা সৃষ্টি করতে পারে।
যদি আপনাকে ডিফল্টের চেয়ে বেশি টাইমআউট সেট করতেই হয়, তাহলে পড়তে থাকুন।
ডিফল্ট টাইমআউট ওভাররাইড করুন
ফ্রেমওয়ার্কটি atest এক্সিকিউশনের জন্য টেমপ্লেট সম্প্রসারণের সুবিধা দেয় না। তাই, প্রদত্ত টেমপ্লেটগুলো ব্যবহার করুন যেগুলো বর্ধিত টাইমআউট প্রদান করে।
একটি ভিএম দীর্ঘ পরীক্ষা
python_test_host {
...
test_config_template: ":sdv_one_device_long_test",
}
দুটি ভিএম দীর্ঘ পরীক্ষা
python_test_host {
...
test_config_template: ":sdv_two_devices_long_test",
}
একটি মন্তব্য যোগ করুন যা এই টেমপ্লেটটি ব্যবহারের উদ্দেশ্য স্পষ্টভাবে নির্দেশ করে এবং ব্যাখ্যা করে যে কেন এই অতিরিক্ত সময় প্রয়োজন (উদাহরণস্বরূপ, যদি পরীক্ষাটির জন্য এমন কোনো আর্টিফ্যাক্ট ডাউনলোড করার প্রয়োজন হয় যা একটি নির্দিষ্ট পরিমাণ সময় নেয়)।
ডিভাইসে ফাইল পুশ করুন
নিম্নলিখিত ধাপগুলিতে atest কনফিগারেশনের জন্য একটি ডিভাইসে ফাইল পুশ করার পদ্ধতি বর্ণনা করা হয়েছে।
ডিভাইসে ফাইল পুশ করুন
ফ্রেমওয়ার্কটি atest এক্সিকিউশনের জন্য টেমপ্লেট সম্প্রসারণ সমর্থন করে না। তাই, আপনাকে অবশ্যই একটি AndroidTest.xml ফাইল তৈরি করতে হবে যা ডিফল্ট টেমপ্লেটটিকে সম্পূর্ণরূপে প্রতিস্থাপন করবে এবং ডিভাইসগুলোর জন্য সংশ্লিষ্ট target_preparer অপশনগুলো অন্তর্ভুক্ত করবে।
টেমপ্লেটের বিষয়বস্তুগুলো কপি করুন:
-
sdv-one-device.xml -
sdv-two-devices.xml -
sdv-three-devices.xml
-
আপনার টেস্টের মডিউলের নাম দিয়ে
{MODULE}আপডেট করুন।প্রতিটি ডিভাইসে
com.android.tradefed.targetprep.PushFilePreparerযোগ করুন।
<device name="device1">
<target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
<option name="cleanup" value="true" />
<option name="push-file" key="<FILE_NAME>" value="<REMOTE_FILE_PATH>" />
</target_preparer>
</device>
ক্যাটবক্স কনফিগার করুন
টেস্টগুলো একটি স্যুট হিসেবে চালানোর জন্য একটি CATBox কনফিগারেশন প্রয়োজন।
libraries/sdv/sdv_catbox/res/config/ফোল্ডারে একটি নতুন কনফিগারেশন ফাইল তৈরি করুন এবং নামকরণের জন্য এই নিয়মগুলো অনুসরণ করুন:- নমুনা পরীক্ষা:
sdv-sample-<NAME>-test.xml - E2E পরীক্ষা:
sdv-e2e-<NAME>-test.xml - দীর্ঘ সময় ধরে চলা পরীক্ষা:
sdv-long-running-<NAME>-test.xml - পারফরম্যান্স পরীক্ষা:
sdv-performance-<NAME>-test.xml - হার্ডওয়্যার পরীক্ষা:
sdv-hw-<NAME>-test.xml
- নমুনা পরীক্ষা:
পরীক্ষার ধরন অনুযায়ী সংশ্লিষ্ট তথ্য যোগ করুন:
একটি ভিএম পরীক্ষার কনফিগারেশন
<configuration description="SDV <NAME> Test">
<!-- Template for Device Configuration -->
<template-include name="device-config" default="sdv-device-config/one-device" />
<!-- Plan. Use the same name as the file name -->
<option name="plan" value="<CONFIG_FILE_NAME>"/>
<!-- Test: mobly-par-file-name should match the module name -->
<option name="mobly-host:mobly-par-file-name" value="<ModuleName>" />
</configuration>
দুটি ভিএম পরীক্ষার কনফিগারেশন
<configuration description="SDV <NAME> Test">
<!-- Template for Device Configuration -->
<template-include name="device-config" default="sdv-device-config/two-devices" />
<!-- Plan. Use the same name as the file name -->
<option name="plan" value="<CONFIG_FILE_NAME>"/>
<!-- Test: mobly-par-file-name should match the module name -->
<option name="mobly-host:mobly-par-file-name" value="<ModuleName>" />
</configuration>
তিনটি ভিএম পরীক্ষার কনফিগারেশন
<!-- Copyright 2025 Google LLC -->
<configuration description="SDV <NAME> Test">
<!-- Template for Device Configuration -->
<template-include name="device-config" default="sdv-device-config/three-devices" />
<!-- Plan. Use the same name as the file name -->
<option name="plan" value="<CONFIG_FILE_NAME>"/>
<!-- Test: mobly-par-file-name should match the module name -->
<option name="mobly-host:mobly-par-file-name" value="<ModuleName>" />
</configuration>
বেশিরভাগ পরীক্ষার জন্য ডিফল্ট টেমপ্লেটই যথেষ্ট। জোরালো কারণ না থাকলে কাস্টম কনফিগারেশন তৈরি করা থেকে বিরত থাকুন।
ডিফল্ট টাইমআউট আপডেট করুন
আপনার পরীক্ষার জন্য ডিফল্ট টাইমআউট যথেষ্ট না হলে, আপনি এটি পরিবর্তন করতে পারেন।
ডিফল্ট টাইমআউট ওভাররাইড করুন
ডিফল্ট টাইমআউট পরিবর্তন করতে, আপনার কনফিগারেশন ফাইলের শেষে নিম্নলিখিতটি যোগ করুন। দীর্ঘ টেস্টের জন্য সর্বোচ্চ টাইমআউট ১০ মিনিট হওয়া উচিত।
<!-- Long Test - 10 minutes timeout: <REASON> -->
<option name="mobly-host:mobly-test-timeout" value="600000" />
ডিভাইসে ফাইল পুশ করুন
নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে কিভাবে CATBox কনফিগার করার সময় কোনো ডিভাইসে ফাইল পুশ করতে হয়।
ডিভাইসে ফাইল পুশ করুন
সংশ্লিষ্ট ডিভাইসে ফাইল পুশ করতে, plan অপশনের পরে নিম্নলিখিত কনফিগারেশনটি যোগ করুন:
<!-- Automatically pushes config file to device-->
<device name="device1">
<target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
<option name="cleanup" value="true" />
<option name="push-file"
key="<FILE_NAME>"
value="<REMOTE_FILE_PATH>"
/>
</target_preparer>
</device>
যদি প্রতিটি ডিভাইসে ফাইলগুলির প্রয়োজন হয়, তাহলে প্রতিটি ডিভাইসের জন্য কনফিগারেশন যোগ করুন (উদাহরণস্বরূপ, name=device1 , name=device2 )।
পরীক্ষা সম্পাদন
এই নির্দেশাবলী ধরে নেওয়া হচ্ছে যে আপনি একটি কার্যকর SDV পরিবেশ স্থাপন সম্পন্ন করেছেন।
পরিবেশ তৈরি করুন
ফ্রেমওয়ার্কটি ক্লাউড ভার্চুয়াল ডিভাইস (CVD) ইনস্ট্যান্স চালু করে না, তাই টেস্টগুলো চালানোর আগে আপনাকে সেগুলো চালু করতে হবে।
পরিবেশ প্রস্তুত করুন এবং SDV টার্গেটটি চালু করুন:
. build/envsetup.sh lunch <TARGET>প্রথম ক্লাউড ভার্চুয়াল ডিভাইস (CVD) ইনস্ট্যান্সটি চালু করুন:
cvd create --config=sdv_core_instance1দ্বিতীয় ক্লাউড ভার্চুয়াল ডিভাইস (CVD) ইনস্ট্যান্সটি চালু করুন (একাধিক ভিএম পরীক্ষার জন্য):
cvd create --config=sdv_core_instance2তৃতীয় ক্লাউড ভার্চুয়াল ডিভাইস (CVD) ইনস্ট্যান্সটি চালু করুন (একাধিক ভিএম পরীক্ষার জন্য):
cvd create --config=sdv_core_instance3
একটি পরীক্ষা চালান
atest <TestModuleName>
ক্যাটবক্স চালান
এই কমান্ডগুলো ধরে নেয় যে আপনি রিপোজিটরির রুট ডিরেক্টরিতে আছেন।
- ক্যাটবক্স তৈরি করুন:
m catbox - (ঐচ্ছিক) CATBox-এ উপলব্ধ সকল SDV টেস্ট প্ল্যান দেখুন:
out/host/linux-x86/catbox/android-catbox/tools/catbox-tradefed l p | grep sdv-
একটি পরীক্ষা চালান:
একটি ভিএম পরীক্ষা চালান
NOTIFY_AS_NATIVE=0.0.0.0:6520 out/host/linux-x86/catbox/android-catbox/tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --{device1}serial 0.0.0.0:6520
দুটি ভিএম পরীক্ষা চালান
NOTIFY_AS_NATIVE=0.0.0.0:6520,0.0.0.0:6521 out/host/linux-x86/catbox/android-catbox/tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --{device1}serial 0.0.0.0:6520 --{device2}serial 0.0.0.0:6521
তিনটি ভিএম পরীক্ষা চালান
NOTIFY_AS_NATIVE=0.0.0.0:6520,0.0.0.0:6521,0.0.0.0:6522 out/host/linux-x86/catbox/android-catbox/tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --{device1}serial 0.0.0.0:6520 --{device2}serial 0.0.0.0:6521 --{device3}serial 0.0.0.0:6522