রোবো টেস্ট হলো একটি টেস্টিং টুল যা Firebase Test Lab সাথে সমন্বিত। রোবো টেস্ট আপনার অ্যাপের ইউজার ইন্টারফেস (UI)-এর কাঠামো বিশ্লেষণ করে এবং তারপর স্বয়ংক্রিয়ভাবে ব্যবহারকারীর কার্যকলাপ অনুকরণ করে পদ্ধতিগতভাবে তা পরীক্ষা করে। যখন আপনি একই সেটিংস সহ একটি নির্দিষ্ট ডিভাইস কনফিগারেশনে কোনো অ্যাপ পরীক্ষা করার জন্য এটি ব্যবহার করেন, তখন রোবো টেস্ট সর্বদা একই ক্রমে একই ব্যবহারকারীর কার্যকলাপ অনুকরণ করে। এই পুনরাবৃত্তিযোগ্য টেস্টিং পদ্ধতি আপনাকে বাগ ফিক্স যাচাই করতে এবং রিগ্রেশন পরীক্ষা করতে রোবো টেস্ট ব্যবহার করার সুযোগ দেয়।
রোবো টেস্ট লগ ফাইল ক্যাপচার করে, টীকাযুক্ত স্ক্রিনশটের একটি সিরিজ সংরক্ষণ করে এবং তারপর সেই স্ক্রিনশটগুলো থেকে একটি ভিডিও তৈরি করে, যা এর দ্বারা সম্পাদিত সিমুলেটেড ইউজার অপারেশনগুলো আপনাকে দেখায়। এই লগ, স্ক্রিনশট এবং ভিডিওগুলো আপনাকে অ্যাপ ক্র্যাশের মূল কারণ নির্ধারণ করতে সাহায্য করতে পারে। রোবো টেস্টের এই বৈশিষ্ট্যগুলো আপনার অ্যাপের UI-এর সমস্যা খুঁজে পেতেও সাহায্য করতে পারে।
নিয়মিত রোবো টেস্ট চালানোর পাশাপাশি, আপনি রোবো স্ক্রিপ্ট ব্যবহার করে আপনার টেস্টগুলো কাস্টমাইজ করতে পারেন, যা রোবো টেস্টেরই একটি ফিচার। আরও জানতে, ‘রান এ রোবো স্ক্রিপ্ট’ দেখুন।
আপনি যদি Robo for iOS+ এর বিটা সংস্করণটি ব্যবহার করে দেখতে চান, তাহলে Run a Robo Test দেখুন।
রোবো টেস্ট ক্রল পরিসংখ্যান
আপনার রোবো টেস্টের ফলাফল ব্যাখ্যা করতে সাহায্য করার জন্য, রোবো টেস্ট প্রতিটি টেস্ট ক্রলের সময় পরিসংখ্যান রেকর্ড করে। Test Lab আপনার টেস্ট রেজাল্ট পেজের রোবো টেস্ট ট্যাবের শীর্ষে এই পরিসংখ্যানগুলো প্রদর্শন করে:
অ্যাকশনসমূহ: ক্রল চলাকালীন সম্পাদিত মোট অ্যাকশনের সংখ্যা, যার মধ্যে রোবো স্ক্রিপ্ট অ্যাকশন, মাঙ্কি অ্যাকশন এবং রোবো ডিরেক্টিভ অন্তর্ভুক্ত।
কার্যকলাপ: ক্রলের সময় সম্পন্ন করা স্বতন্ত্র কার্যকলাপের সংখ্যা।
স্ক্রিন: ক্রল চলাকালীন পরিদর্শন করা স্বতন্ত্র স্ক্রিনের সংখ্যা।
Test Lab এই পরিসংখ্যান ব্যবহার করে একটি ক্রল গ্রাফের আকারে রোবো টেস্টের একটি ভিজ্যুয়াল উপস্থাপনাও তৈরি করে। এই গ্রাফের নোডগুলো হলো স্ক্রিন এবং এজগুলো হলো অ্যাকশন। স্ক্রিনগুলোর মধ্যকার এজগুলো অনুসরণ করে, ক্রল চলাকালীন রোবো টেস্টটি কীভাবে আপনার অ্যাপে চলাচল করেছে, সে সম্পর্কে আপনি একটি ধারণা পেতে পারেন।
রোবো পরীক্ষার সময়সীমা শেষ
আপনার অ্যাপের UI-এর জটিলতার উপর নির্ভর করে, UI ইন্টারঅ্যাকশনের একটি পুঙ্খানুপুঙ্খ সেট সম্পন্ন করতে রোবো টেস্টের পাঁচ মিনিট বা তার বেশি সময় লাগতে পারে। আমরা বেশিরভাগ অ্যাপের জন্য টেস্ট টাইমআউট কমপক্ষে ১২০ সেকেন্ড (২ মিনিট) এবং মাঝারি জটিল অ্যাপের জন্য ৩০০ সেকেন্ড (৫ মিনিট) সেট করার পরামর্শ দিই। অ্যান্ড্রয়েড স্টুডিও এবং Firebase কনসোল থেকে চালানো টেস্টের জন্য টাইমআউটের ডিফল্ট মান হলো ৩০০ সেকেন্ড (৫ মিনিট), এবং gcloud কমান্ড লাইন থেকে চালানো টেস্টের জন্য এটি ৯০০ সেকেন্ড (১৫ মিনিট)।
অ্যাপ চালু হতে সময়সীমার ত্রুটি
আপনার অ্যাপটি চালু হতে দীর্ঘ সময় নিলে, রোবো টেস্ট একটি ত্রুটি দেখাতে পারে এবং আপনার অ্যাপটি ক্রল করতে পারবে না। এটি কেবল অত্যধিক দীর্ঘ স্টার্ট-আপ সময়ের ক্ষেত্রেই ঘটে এবং এর সমাধান কেবল আপনার অ্যাপটিকে আরও দ্রুত চালু করার জন্য সংশোধন করার মাধ্যমেই করা সম্ভব।
রোবো স্ক্রিপ্টের মাধ্যমে আরও বেশি নিয়ন্ত্রণ
কখনও কখনও আপনার টেস্টগুলোর উপর আরও বেশি নিয়ন্ত্রণের প্রয়োজন হয়। উদাহরণস্বরূপ, আপনি একটি সাধারণ ইউজার জার্নি পরীক্ষা করতে চাইতে পারেন অথবা ইউজারনেম এবং পাসওয়ার্ডের মতো নির্দিষ্ট UI ইনপুট প্রদান করতে চাইতে পারেন। রোবো স্ক্রিপ্ট এক্ষেত্রে সাহায্য করতে পারে। রোবো স্ক্রিপ্ট সম্পর্কে আরও জানতে, 'রান এ রোবো স্ক্রিপ্ট' এবং 'রোবো স্ক্রিপ্টস রেফারেন্স গাইড' দেখুন।
রোবো পরীক্ষা এবং নন-অ্যান্ড্রয়েড UI উইজেট
রোবো টেস্ট সরাসরি অ্যান্ড্রয়েড UI উইজেটগুলিতে অ্যাকশন সম্পাদন করতে অ্যান্ড্রয়েড এপিআই ব্যবহার করে। এটি টেস্টগুলিকে স্বয়ংক্রিয়ভাবে আপনার UI অন্বেষণ করতে সাহায্য করে, কিন্তু এর মানে হলো, কোনো স্ক্রিনে টেস্ট চালানোর জন্য সেটিকে অ্যান্ড্রয়েড UI হায়ারার্কি বের করতে সক্ষম হতে হবে।
আপনার অ্যাপের কোনো স্ক্রিনে যদি অ্যান্ড্রয়েড UI উইজেট ব্যবহার করা না হয়, তাহলে রোবো টেস্ট সেই স্ক্রিনটি পরীক্ষা করার জন্য মাঙ্কি অ্যাকশন ব্যবহার করে। আরও পদ্ধতিগত রোবো টেস্ট অ্যাকশনগুলোর থেকে ভিন্ন, মাঙ্কি অ্যাকশনগুলো কেবল ডিভাইসের স্ক্রিনের প্রায়-এলোমেলো স্থানে ট্যাপ ইভেন্ট অনুকরণ করে।
যেসব স্ক্রিনে অ্যান্ড্রয়েড UI উইজেট ব্যবহার করা হয় না, সেগুলোকে আরও ভালোভাবে পরীক্ষা করার জন্য, আপনি Firebase Test Lab Game Loop Tests- এর মাধ্যমে একটি মাঙ্কি অ্যাকশনের (Monkey Action) যথেচ্ছ ট্যাপগুলোকে একগুচ্ছ স্ক্রিপ্টেড ট্যাপ ও ইন্টারঅ্যাকশন দিয়ে প্রতিস্থাপন করতে পারেন।
গুগল প্লে-এর সাথে ইন্টিগ্রেশন
আলফা বা বিটা চ্যানেল ব্যবহার করে আপনার অ্যাপের APK ফাইল আপলোড ও পাবলিশ করার সময় আপনি গুগল প্লে কনসোলে রোবো টেস্ট ব্যবহার করতে পারেন। রোবো টেস্ট বিভিন্ন ভৌগোলিক অবস্থানের একগুচ্ছ জনপ্রিয় ফিজিক্যাল ডিভাইসে চলে, যা বিভিন্ন ফর্ম ফ্যাক্টর এবং হার্ডওয়্যার কনফিগারেশন জুড়ে পরীক্ষার সুযোগ দেয়। আরও জানতে, ‘সমস্যা শনাক্ত করতে প্রি-লঞ্চ রিপোর্ট ব্যবহার করুন’ দেখুন।
টেস্ট অ্যাকাউন্টে সাইন-ইন এবং পূর্বনির্ধারিত টেক্সট ইনপুট
রোবো টেস্ট টেস্ট অ্যাকাউন্ট সাইন-ইন সমর্থন করে এবং আপনার অ্যাপের ফিল্ডগুলিতে পূর্বনির্ধারিত টেক্সট প্রবেশ করানোর সুযোগ দেয়। কাস্টম সাইন-ইন এবং অন্যান্য পূর্বনির্ধারিত টেক্সট ইনপুটের জন্য, রোবো টেস্ট আপনার অ্যাপের EditText ফিল্ডগুলিতে টেক্সট প্রবেশ করাতে পারে। প্রতিটি স্ট্রিং-এর জন্য, আপনাকে একটি অ্যান্ড্রয়েড রিসোর্স নেম ব্যবহার করে EditText ফিল্ডটি শনাক্ত করতে হবে। আরও জানতে, রিসোর্স অ্যাক্সেস করা (Accessing Resources) দেখুন।
সাইন-ইন
রোবো টেস্টে সাইন-ইন সমর্থন করার জন্য দুটি পরস্পর স্বতন্ত্র পদ্ধতি রয়েছে:
কাস্টম সাইন-ইন: আপনি যদি টেস্ট অ্যাকাউন্টের ক্রেডেনশিয়াল প্রদান করেন, তাহলে আপনাকে রোবো টেস্টকে জানাতে হবে যে সেগুলি কোথায় প্রবেশ করাতে হবে এবং সেই ক্রেডেনশিয়ালগুলিও প্রদান করতে হবে।
স্বয়ংক্রিয় সাইন-ইন: আপনি যদি কাস্টম সাইন-ইনের জন্য টেস্ট অ্যাকাউন্টের ক্রেডেনশিয়াল প্রদান না করেন, তাহলে স্বয়ংক্রিয় সাইন-ইন ব্যবহৃত হয়। রোবো টেস্ট একটি গুগল টেস্ট অ্যাকাউন্ট ব্যবহার করে স্ট্যান্ডার্ড অ্যান্ড্রয়েড উইজেট দিয়ে তৈরি অ্যাপ বা কম্পোজ অ্যাপ্লিকেশনে স্বয়ংক্রিয়ভাবে সাইন ইন করতে পারে।
কাস্টম সাইন-ইন-এর জন্য টেস্ট অ্যাকাউন্টের ক্রেডেনশিয়াল প্রদান করতে, নিম্নলিখিতগুলি করুন:
'মাত্রা নির্বাচন করুন' পৃষ্ঠায়, 'অতিরিক্ত বিকল্পসমূহ ' বেছে নিন।
টেস্ট অ্যাকাউন্ট ক্রেডেনশিয়ালস (ঐচ্ছিক) এর অধীনে, ইউজারনেম এবং পাসওয়ার্ড রিসোর্স নেম এবং টেস্ট অ্যাকাউন্টের জন্য ইউজারনেম ও পাসওয়ার্ড লিখুন।
পূর্বনির্ধারিত পাঠ্য ইনপুট
আপনার অ্যাপে ব্যবহৃত অন্যান্য টেক্সট ফিল্ডের জন্য আপনি নিজস্ব ইনপুট টেক্সট দিতে পারেন। অতিরিক্ত ফিল্ডের জন্য টেক্সট ইনপুট দিতে, নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করুন:
'মাত্রা নির্বাচন করুন' পৃষ্ঠায়, 'অতিরিক্ত বিকল্পসমূহ ' বেছে নিন।
অতিরিক্ত ফিল্ড (ঐচ্ছিক)-এর অধীনে, এক বা একাধিক রিসোর্সের নাম এবং সংশ্লিষ্ট টেক্সট ফিল্ডগুলিতে প্রবেশ করানোর জন্য স্ট্রিংগুলি লিখুন।
পূর্বনির্ধারিত টেক্সট ইনপুট {:#predefined-text} ত্রুটি
রোবো টেস্ট এমন EditText ফিল্ডগুলি খুঁজে বের করে, যেগুলির অ্যান্ড্রয়েড রিসোর্স নেম সরবরাহ করা রেগুলার এক্সপ্রেশনের সাথে মেলে। যদি রোবো কোনো মিলযুক্ত ফিল্ড খুঁজে না পায়, তবে এটি আপনার টেক্সট ইনপুট করে না, কিন্তু অন্যথায় যথারীতি তার অনুসন্ধান চালিয়ে যায়।
গভীর সংযোগ
পরীক্ষার জন্য আপনি আপনার অ্যাপ দ্বারা সমর্থিত সর্বোচ্চ তিনটি ডিপ লিঙ্ক প্রদান করতে পারেন। ডিপ লিঙ্কগুলি আপনার অ্যাপে অ্যান্ড্রয়েড ACTION_VIEW ইন্টেন্ট হিসাবে ইস্যু করা হয়। সুতরাং, প্রতিটি লিঙ্ককে অবশ্যই আপনার অ্যাপের একটি ইন্টেন্ট ফিল্টারের সাথে মিলতে হবে।
যদি এক বা একাধিক ডিপ লিঙ্ক প্রদান করা হয়, তাহলে অ্যাপটি প্রথমে স্বাভাবিকভাবে ( ACTION_MAIN ইন্টেন্ট ব্যবহার করে) চালু করা হয় এবং নির্দিষ্ট টাইমআউট পর্যন্ত ক্রল করা হয়। মূল ক্রলের পরে, প্রতিটি ডিপ লিঙ্ক অতিরিক্ত ৩০ সেকেন্ড করে ক্রল করা হয়।
গভীর লিঙ্ক ত্রুটি
যদি রোবো টেস্ট আপনার ডিপ লিঙ্কের সাথে মেলে এমন কোনো অ্যাক্টিভিটি খুঁজে না পায়, তাহলে Test Lab লিঙ্কটি উপেক্ষা করে। ডিপ লিঙ্কের সমস্যাগুলো সাধারণত প্রদত্ত ডিপ লিঙ্ক এবং আপনার অ্যাপে এর সংজ্ঞার মধ্যেকার অসামঞ্জস্যের কারণে হয়ে থাকে। প্রদত্ত URL এবং আপনার অ্যাপ উভয়ই টাইপিংয়ের ভুল বা অন্য কোনো অসঙ্গতির জন্য পরীক্ষা করুন।
অ্যাপ লাইসেন্সিং সমর্থন
Test Lab সেইসব অ্যাপ সমর্থন করে যেগুলো গুগল প্লে-এর অ্যাপ লাইসেন্সিং পরিষেবা ব্যবহার করে। Test Lab দিয়ে আপনার অ্যাপ পরীক্ষা করার সময় সফলভাবে লাইসেন্সিং যাচাই করতে, আপনাকে অবশ্যই প্লে স্টোরের প্রোডাকশন চ্যানেলে আপনার অ্যাপটি প্রকাশ করতে হবে। Test Lab ব্যবহার করে আলফা বা বিটা চ্যানেলে আপনার অ্যাপ পরীক্ষা করতে, Test Lab আপনার অ্যাপ আপলোড করার আগে লাইসেন্সিং যাচাইটি সরিয়ে দিন।
পরবর্তী পদক্ষেপ
- রোবো স্ক্রিপ্ট ব্যবহার করে আপনার পরীক্ষাগুলো কাস্টমাইজ করুন।