রোবো টেস্ট চালানো (Android)

রোবো টেস্ট হল একটি টেস্টিং টুল যা Firebase Test Lab-এর সাথে ইন্টিগ্রেট করা আছে। রোবো টেস্ট আপনার অ্যাপের ইউজার ইন্টারফেসের (UI) স্ট্রাকচার বিশ্লেষণ করে এবং তারপর পদ্ধতিগতভাবে এটি এক্সপ্লোর করে, ব্যবহারকারীর অ্যাক্টিভিটি অটোমেটিক সিমুলেট করে। একই সেটিংস সহ নির্দিষ্ট ডিভাইস কনফিগারেশনে কোনও অ্যাপ টেস্ট করার জন্য রোবো টেস্ট ব্যবহার করলে, এটি সবসময় একই ক্রমে একই ব্যবহারকারীর অ্যাক্টিভিটি সিমুলেট করে। এই পুনরাবৃত্তিযোগ্য টেস্টিং পদ্ধতি আপনাকে ত্রুটি সমাধান যাচাই করতে এবং রিগ্রেশন টেস্ট করতে রোবো টেস্ট ব্যবহার করতে দেয়।

রোবো টেস্ট লগ ফাইল ক্যাপচার করে, অ্যানোটেট করা স্ক্রিনশটের সিরিজ সেভ করে এবং তারপর সেইসব স্ক্রিনশট থেকে ভিডিও তৈরি করে আপনাকে দেখায় যে এটি ব্যবহারকারীর অপারেশন কীভাবে সিমুলেট করেছে। এইসব লগ, স্ক্রিনশট ও ভিডিও আপনাকে অ্যাপ ক্র্যাশ করার মূল কারণ নির্ধারণ করতে সাহায্য করতে পারে। এছাড়াও, এই রোবো টেস্ট ফিচার আপনার অ্যাপের UI-তে সমস্যা খুঁজে পেতে সাহায্য করতে পারে।

নিয়মিত রোবো টেস্ট রান করার পাশাপাশি, আপনি রোবো স্ক্রিপ্ট ব্যবহার করে আপনার টেস্ট কাস্টমাইজ করতে পারবেন, যা রোবো টেস্টের একটি ফিচার। আরও জানতে, Robo স্ক্রিপ্ট রান করুন দেখুন।

আপনি iOS+-এর জন্য Robo-এর বিটা ভার্সন ব্যবহার করে দেখতে চাইলে, Robo টেস্ট রান করুন বিকল্প দেখুন।

রোবো টেস্ট ক্রল সংক্রান্ত পরিসংখ্যান

আপনার রোবো টেস্টের ফলাফল ব্যাখ্যা করতে সাহায্য করার জন্য, রোবো টেস্ট প্রতিটি টেস্ট ক্রলের সময় পরিসংখ্যান রেকর্ড করে। Test Lab আপনার টেস্ট ফলাফল পৃষ্ঠায় রোবো টেস্ট ট্যাবের উপরে পরিসংখ্যান দেখায়:

  • অ্যাকশন: ক্রল করার সময় করা মোট অ্যাকশনের সংখ্যা, যার মধ্যে Robo স্ক্রিপ্ট অ্যাকশন, মাঙ্কি অ্যাকশন ও Robo নির্দেশিকা অন্তর্ভুক্ত।

  • অ্যাক্টিভিটি: ক্রল করার সময় কভার করা স্বতন্ত্র অ্যাক্টিভিটির সংখ্যা।

  • স্ক্রিন: ক্রল করার সময় কতগুলি আলাদা আলাদা স্ক্রিন ভিজিট করা হয়েছে।

এছাড়াও, Test Lab ক্রল গ্রাফের আকারে রোবো টেস্টের একটি ভিজ্যুয়াল উপস্থাপনা তৈরি করতে পরিসংখ্যান ব্যবহার করে। গ্রাফে স্ক্রিনগুলি নোড এবং অ্যাকশনগুলি এজ হিসেবে দেখানো হয়েছে। স্ক্রিনের মধ্যে এজ অনুসরণ করে, আপনি ধারণা পেতে পারেন যে ক্রল করার সময় রোবো টেস্ট কীভাবে আপনার অ্যাপ ট্রাভার্স করেছে।

রোবো টেস্ট টাইমআউট

আপনার অ্যাপের UI-এর জটিলতার উপর নির্ভর করে, UI ইন্টার‍্যাকশনের সম্পূর্ণ সেট সম্পূর্ণ করতে রোবো টেস্টের পাঁচ মিনিট বা তার বেশি সময় লাগতে পারে। আমরা বেশিরভাগ অ্যাপের জন্য টেস্ট টাইমআউট কমপক্ষে ১২০ সেকেন্ড (২ মিনিট) এবং মাঝারি জটিল অ্যাপের জন্য ৩০০ সেকেন্ড (৫ মিনিট) সেট করার সুপারিশ করি। Android Studio এবং Firebase কনসোল থেকে চালানো টেস্টের জন্য টাইমআউটের ডিফল্ট মান হল ৩০০ সেকেন্ড (৫ মিনিট) এবং gcloud কমান্ড লাইন থেকে চালানো টেস্টের জন্য ৯০০ সেকেন্ড (১৫ মিনিট)।

অ্যাপ স্টার্ট-আপ টাইম-আউট সংক্রান্ত সমস্যা

আপনার অ্যাপ চালু হতে অনেক সময় নিলে, Robo টেস্টে সমস্যা হতে পারে এবং আপনার অ্যাপ ক্রল করতে পারবে না। এটি শুধুমাত্র অত্যন্ত দীর্ঘ স্টার্ট-আপের ক্ষেত্রে ঘটে এবং আপনার অ্যাপটি দ্রুত চালু করার জন্য সংশোধন করে এই সমস্যার সমাধান করা যেতে পারে।

Robo স্ক্রিপ্টের মাধ্যমে আরও বেশি কন্ট্রোল

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

রোবো টেস্ট এবং Android নয় এমন UI উইজেট

রোবো টেস্ট Android UI উইজেটে সরাসরি অ্যাকশন পারফর্ম করার জন্য Android API ব্যবহার করে। এটি টেস্টকে অটোমেটিক আপনার UI এক্সপ্লোর করতে সাহায্য করে, তবে এর অর্থ হল স্ক্রিনে টেস্ট রান করার জন্য এটিকে Android UI হায়ারার্কি এক্সট্র্যাক্ট করতে পারতে হবে।

আপনার অ্যাপের কোনও স্ক্রিন Android UI উইজেট ব্যবহার না করলে, সেই স্ক্রিন পরীক্ষা করার জন্য রোবো টেস্ট Monkey অ্যাকশন ব্যবহার করে। আরও পদ্ধতিগত রোবো টেস্ট অ্যাকশনের মতো নয়, মাঙ্কি অ্যাকশন ডিভাইসের স্ক্রিনে আধা-র‍্যান্ডম লোকেশনে ট্যাপ ইভেন্ট সিমুলেট করে।

Android UI উইজেট ব্যবহার করে না এমন স্ক্রিন আরও ভালোভাবে পরীক্ষা করতে, আপনি Firebase Test Lab গেম লুপ টেস্ট-এর মাধ্যমে স্ক্রিপ্ট করা ট্যাপ ও ইন্টার‍্যাকশনের সেট দিয়ে মাঙ্কি অ্যাকশনের যথেচ্ছ ট্যাপ পরিবর্তন করতে পারবেন।

Google Play-এর সাথে ইন্টিগ্রেশন

আপনি আলফা বা বিটা চ্যানেল ব্যবহার করে আপনার অ্যাপের APK ফাইল আপলোড এবং প্রকাশ করার সময় Google Play Console-এ রোবো টেস্ট ব্যবহার করতে পারেন। রোবো টেস্ট বিভিন্ন ভৌগোলিক লোকেশন থেকে জনপ্রিয় ফিজিক্যাল ডিভাইসের সেটে রান করে, বিভিন্ন ফর্ম ফ্যাক্টর ও হার্ডওয়্যার কনফিগারেশন জুড়ে টেস্ট কভারেজ প্রদান করে। আরও জানতে, সমস্যা শনাক্ত করতে লঞ্চের আগের রিপোর্ট ব্যবহার করুন নিবন্ধটি দেখুন।

টেস্ট অ্যাকাউন্টে সাইন-ইন ও পূর্বনির্ধারিত টেক্সট ইনপুট

রোবো টেস্টের মাধ্যমে টেস্ট অ্যাকাউন্টে সাইন-ইন করা যায় এবং আপনার অ্যাপের ফিল্ডে আগে থেকে নির্ধারিত টেক্সটও লিখতে দেয়। কাস্টম সাইন-ইন এবং আগে থেকে নির্ধারিত অন্যান্য টেক্সট ইনপুটের জন্য, রোবো টেস্ট আপনার অ্যাপের EditText ফিল্ডে টেক্সট লিখতে পারে। প্রতিটি স্ট্রিংয়ের জন্য, আপনাকে Android রিসোর্স নাম ব্যবহার করে EditText ফিল্ড শনাক্ত করতে হবে। আরও জানতে, রিসোর্স অ্যাক্সেস করা দেখুন।

প্রবেশ করুন

সাইন-ইন করার জন্য রোবো টেস্টে দুটি পারস্পরিক-এক্সক্লুসিভ পদ্ধতি আছে:

  • কাস্টম সাইন-ইন: আপনি টেস্ট অ্যাকাউন্টের ক্রেডেনশিয়াল দিলে, আপনাকে Robo টেস্টকে বলতে হবে সেগুলি কোথায় লিখতে হবে এবং সেই ক্রেডেনশিয়ালও দিতে হবে।

  • অটোমেটিক সাইন-ইন: আপনি কাস্টম সাইন-ইনের জন্য টেস্ট অ্যাকাউন্টের ক্রেডেনশিয়াল না দিলে, অটোমেটিক সাইন-ইন ব্যবহার করা হয়। রোবো টেস্ট, Google টেস্ট অ্যাকাউন্ট ব্যবহার করে, স্ট্যান্ডার্ড Android উইজেট বা কম্পোজ অ্যাপ্লিকেশন দিয়ে তৈরি অ্যাপে অটোমেটিক সাইন-ইন করতে পারে।

কাস্টম সাইন-ইনের জন্য টেস্ট অ্যাকাউন্টের ক্রেডেনশিয়াল দিতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. ডাইমেনশন বেছে নিন পৃষ্ঠায়, অতিরিক্ত বিকল্প বেছে নিন।

  2. টেস্ট অ্যাকাউন্ট ক্রেডেনশিয়াল (ঐচ্ছিক) বিকল্পের অধীনে, ইউজারনেম ও পাসওয়ার্ড রিসোর্সের নাম এবং টেস্ট অ্যাকাউন্টের ইউজারনেম ও পাসওয়ার্ড লিখুন।

আগে থেকে নির্ধারিত টেক্সট ইনপুট

আপনার অ্যাপের ব্যবহার করা অন্যান্য টেক্সট ফিল্ডের জন্য আপনি কাস্টম ইনপুট টেক্সট দিতে পারেন। অতিরিক্ত ফিল্ডের জন্য টেক্সট ইনপুট দিতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. ডাইমেনশন বেছে নিন পৃষ্ঠায়, অতিরিক্ত বিকল্প বেছে নিন।

  2. অতিরিক্ত ফিল্ড (ঐচ্ছিক) বিকল্পের অধীনে, এক বা একাধিক রিসোর্সের নাম এবং সংশ্লিষ্ট টেক্সট ফিল্ডে লেখার জন্য স্ট্রিং লিখুন।

পূর্বনির্ধারিত টেক্সট ইনপুট {:#predefined-text} সংক্রান্ত সমস্যা

রোবো টেস্ট Android রিসোর্স নামের সাথে EditText ফিল্ড সার্চ করে যা প্রদত্ত রেগুলার এক্সপ্রেশনের সাথে ম্যাচ করে। Robo যদি কোনও ম্যাচিং ফিল্ড খুঁজে না পায়, তাহলে এটি আপনার টেক্সট ইনপুট করে না, তবে অন্যথায় এটি স্বাভাবিকভাবে ক্রল করা চালিয়ে যায়।

পরীক্ষা করার জন্য আপনার অ্যাপে কাজ করে এমন সর্বাধিক তিনটি ডিপ লিঙ্ক আপনি দিতে পারবেন। আপনার অ্যাপে Android ACTION_VIEW ইনটেন্ট হিসেবে ডিপ লিঙ্ক ইস্যু করা হয়। তাই, প্রতিটি লিঙ্ককে আপনার অ্যাপের ইনটেন্ট ফিল্টারের সাথে ম্যাচ করতে হবে।

এক বা একাধিক ডিপ লিঙ্ক প্রদান করা হলে, অ্যাপটি প্রথমে সাধারণভাবে (ACTION_MAIN ইনটেন্ট ব্যবহার করে) চালু করা হয় এবং নির্দিষ্ট টাইমআউট পর্যন্ত ক্রল করা হয়। মূল ক্রলের পরে, প্রতিটি ডিপ লিঙ্ক অতিরিক্ত ৩০ সেকেন্ডের জন্য ক্রল করা হয়।

রোবো টেস্ট আপনার ডিপ লিঙ্কের সাথে ম্যাচ করে এমন কোনও অ্যাক্টিভিটি খুঁজে না পেলে, Test Lab লিঙ্কটি উপেক্ষা করে। ডিপ লিঙ্ক সংক্রান্ত সমস্যা সাধারণত আপনার অ্যাপে দেওয়া ডিপ লিঙ্ক ও তার সংজ্ঞার মধ্যে পার্থক্যের কারণে হয়। টাইপো বা অন্যান্য অসঙ্গতির জন্য দেওয়া URL ও আপনার অ্যাপ দুটিই চেক করুন।

অ্যাপ লাইসেন্সিং সংক্রান্ত সহায়তা

Test Lab এমন অ্যাপে কাজ করে যা Google Play-এর অফার করা অ্যাপ লাইসেন্সিং পরিষেবা ব্যবহার করে। Test Lab-এর মাধ্যমে আপনার অ্যাপ পরীক্ষা করার সময় লাইসেন্সিং সফলভাবে চেক করতে, আপনাকে অবশ্যই Play Store-এর প্রোডাকশন চ্যানেলে আপনার অ্যাপ প্রকাশ করতে হবে। Test Lab ব্যবহার করে আলফা বা বিটা চ্যানেলে আপনার অ্যাপ পরীক্ষা করতে, Test Lab-এ আপনার অ্যাপ আপলোড করার আগে লাইসেন্সিং চেক সরিয়ে দিন।

পরবর্তী ধাপ