এসপ্রেসো টেস্ট রেকর্ডার দিয়ে UI পরীক্ষা তৈরি করুন

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

Espresso Test Recorder, AndroidX Test-এর একটি API, Espresso Testing framework-এর উপর ভিত্তি করে টেস্ট লেখে। Espresso API আপনাকে ব্যবহারকারীর কার্যকলাপের উপর ভিত্তি করে সংক্ষিপ্ত এবং নির্ভরযোগ্য UI টেস্ট তৈরি করতে উৎসাহিত করে। অন্তর্নিহিত অ্যাপের অ্যাক্টিভিটি এবং ভিউগুলিতে সরাসরি অ্যাক্সেস না করে এক্সপেক্টেশন, ইন্টারঅ্যাকশন এবং অ্যাসারশন উল্লেখ করার মাধ্যমে, এই কাঠামোটি টেস্টের অস্থিতিশীলতা প্রতিরোধ করে এবং টেস্ট রানের গতি অপ্টিমাইজ করে।

আপনার টেস্ট ডিভাইসে অ্যানিমেশন বন্ধ করুন।

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

একটি এসপ্রেসো পরীক্ষা রেকর্ড করুন

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

এই অংশে আলোচনা করা হবে কিভাবে Espresso Test Recorder ব্যবহার করে এই দুটি টেস্ট কম্পোনেন্ট তৈরি করতে হয়, এবং টেস্টটি জেনারেট করার জন্য আপনার সম্পন্ন রেকর্ডিংটি কিভাবে সেভ করতে হয়।

UI ইন্টারঅ্যাকশন রেকর্ড করুন

Espresso Test Recorder দিয়ে একটি টেস্ট রেকর্ড করা শুরু করতে, নিম্নলিখিত পদ্ধতি অনুসরণ করুন:

  1. রান > এসপ্রেসো টেস্ট রেকর্ড করুন -এ ক্লিক করুন।
  2. 'Select Deployment Target' উইন্ডোতে, সেই ডিভাইসটি বেছে নিন যেটিতে আপনি পরীক্ষাটি রেকর্ড করতে চান। প্রয়োজনে, একটি নতুন অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস তৈরি করুন'OK' ক্লিক করুন।
  3. Espresso Test Recorder আপনার প্রোজেক্টের একটি বিল্ড শুরু করে, এবং এটি ব্যবহার করার অনুমতি পাওয়ার আগে অ্যাপটি অবশ্যই ইনস্টল ও চালু করতে হবে। অ্যাপটি চালু হওয়ার পর ‘ Record Your Test’ উইন্ডোটি দেখা যায়, এবং যেহেতু আপনি এখনও ডিভাইসটি ব্যবহার করেননি, তাই মূল প্যানেলে লেখা থাকে "এখনও কোনো ইভেন্ট রেকর্ড করা হয়নি।" "ট্যাপ" এবং "টাইপ" এর মতো ইভেন্ট লগ করা শুরু করতে আপনার ডিভাইসটি ব্যবহার করুন।

দ্রষ্টব্য : ইন্টারঅ্যাকশন লগ করা শুরু করার আগে, আপনি আপনার ডিভাইসে "ডিবাগারের জন্য অপেক্ষা করা হচ্ছে" বা "ডিবাগার সংযুক্ত করা হচ্ছে" লেখা একটি ডায়ালগ দেখতে পারেন। Espresso Test Recorder UI ইভেন্টগুলো লগ করার জন্য ডিবাগার ব্যবহার করে। ডিবাগার সংযুক্ত হলে, ডায়ালগটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে; 'ফোর্স ক্লোজ' চাপবেন না।

রেকর্ড করা ইন্টারঅ্যাকশনগুলো মূল প্যানেলের 'রেকর্ড ইওর টেস্ট' উইন্ডোতে দেখা যাবে, যেমনটি নিচের চিত্র ১-এ দেখানো হয়েছে। আপনি যখন টেস্টটি চালাবেন, তখন এসপ্রেসো টেস্টটি এই অ্যাকশনগুলো একই ক্রমে সম্পাদন করার চেষ্টা করবে।

চিত্র ১. লগকৃত UI ইন্টারঅ্যাকশনসহ 'আপনার পরীক্ষা রেকর্ড করুন ' উইন্ডো।

UI উপাদান যাচাই করার জন্য অ্যাসারশন যোগ করুন

অ্যাসারশন তিনটি প্রধান প্রকারের মাধ্যমে একটি ভিউ এলিমেন্টের অস্তিত্ব বা বিষয়বস্তু যাচাই করে:

  • নির্বাচিত ভিউ এলিমেন্টের টেক্সট কন্টেন্ট যাচাই করে
  • বিদ্যমান আছে কিনা : স্ক্রিনে দৃশ্যমান বর্তমান ভিউ হায়ারার্কিতে ভিউ এলিমেন্টটি উপস্থিত আছে কিনা তা পরীক্ষা করে।
  • বিদ্যমান নেই : যাচাই করে যে View এলিমেন্টটি বর্তমান View হায়ারার্কিতে উপস্থিত নেই।

আপনার টেস্টে একটি অ্যাসারশন যোগ করতে, নিম্নলিখিত পদ্ধতি অনুসরণ করুন:

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

চিত্র ২-এর স্ক্রিনশটে দেখানো হচ্ছে যে, নোটটির শিরোনাম "Happy Testing!" কিনা তা যাচাই করার জন্য একটি "text is" অ্যাসারশন তৈরি করা হচ্ছে।

চিত্র ২। একটি ভিউ এলিমেন্ট নির্বাচন করার পরের এডিট অ্যাসারশন বক্স (লাল রঙে চিহ্নিত)।

একটি অ্যাসারশন তৈরি করার সময়, আপনি আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করা চালিয়ে যেতে পারেন, এমনকি ' রেকর্ড ইওর টেস্ট' উইন্ডোর মধ্যে অ্যাসারশন প্যানেলগুলো খোলা থাকলেও। এসপ্রেসো টেস্ট রেকর্ডার আপনার কার্যকলাপ লগ করতে থাকবে, কিন্তু আপনি যে অ্যাসারশনটি সম্পাদনা করছেন, সেটি সেভ হয়ে গেলে এই ইন্টারঅ্যাকশনগুলোর আগে প্রদর্শিত হবে। অ্যাসারশনের স্ক্রিনশটটিও সেই লেআউটটি ধরে রাখে যা 'অ্যাড অ্যাসারশন' বোতামটি চাপার সময় ডিভাইস বা এমুলেটরে ছিল।

একটি রেকর্ডিং সংরক্ষণ করুন

আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করা এবং অ্যাসারশন যোগ করা শেষ হলে, আপনার রেকর্ডিং সংরক্ষণ করতে ও এসপ্রেসো টেস্ট তৈরি করতে নিম্নলিখিত ধাপগুলো অনুসরণ করুন:

  1. রেকর্ডিং সম্পূর্ণ করুন -এ ক্লিক করুন। আপনার পরীক্ষার জন্য একটি টেস্ট ক্লাসের নাম বেছে নেওয়ার উইন্ডোটি প্রদর্শিত হবে।
  2. এসপ্রেসো টেস্ট রেকর্ডার চালু করা অ্যাক্টিভিটির নামের উপর ভিত্তি করে আপনার টেস্টকে তার প্যাকেজের মধ্যে একটি অনন্য নাম দেয়। প্রস্তাবিত নামটি পরিবর্তন করতে চাইলে ‘টেস্ট ক্লাস নেম’ টেক্সট ফিল্ডটি ব্যবহার করুন। ‘সেভ’ বাটনে ক্লিক করুন।
    • আপনি যদি আপনার অ্যাপে Espresso ডিপেন্ডেন্সিগুলো যোগ না করে থাকেন, তাহলে আপনার টেস্টটি সেভ করার চেষ্টা করার সময় একটি ‘Missing Espresso dependencies’ ডায়ালগ বক্স দেখা যাবে। আপনার build.gradle ফাইলে ডিপেন্ডেন্সিগুলো স্বয়ংক্রিয়ভাবে যোগ করতে ‘Yes’- এ ক্লিক করুন।
  3. Espresso Test Recorder ফাইলটি তৈরি করার পর তা স্বয়ংক্রিয়ভাবে খুলে যায় এবং Android Studio-র IDE-র প্রজেক্ট উইন্ডোতে টেস্ট ক্লাসটিকে নির্বাচিত হিসেবে দেখায়।
    • টেস্টটি কোথায় সেভ হবে তা আপনার ইন্সট্রুমেন্টেশন টেস্ট রুটের অবস্থান এবং চালু করা অ্যাক্টিভিটির প্যাকেজ নামের উপর নির্ভর করে। উদাহরণস্বরূপ, নোটস টেস্টিং অ্যাপের টেস্টগুলো সেই অ্যাপ মডিউলের src > androidTest > java > com.example.username.appname ফোল্ডারে সেভ হয়, যেখানে আপনি টেস্টটি রেকর্ড করেছেন।

স্থানীয়ভাবে একটি এসপ্রেসো পরীক্ষা চালান

এসপ্রেসো পরীক্ষা চালানোর জন্য, প্রজেক্টটি ব্যবহার করুন অ্যান্ড্রয়েড স্টুডিও আইডিই-এর বাম দিকের উইন্ডো:

  1. কাঙ্ক্ষিত অ্যাপ মডিউল ফোল্ডারটি খুলুন এবং যে টেস্টটি চালাতে চান সেখানে যান। টেস্টটির অবস্থান আপনার ইন্সট্রুমেন্টেশন টেস্ট রুটের অবস্থান এবং চালু করা অ্যাক্টিভিটির প্যাকেজ নামের উপর নির্ভর করে। নিম্নলিখিত উদাহরণগুলিতে দেখানো হয়েছে যে নোটস টেস্টিং অ্যাপের জন্য একটি টেস্ট কোথায় সেভ হবে:
    • আপনি যদি উইন্ডোর মধ্যে অ্যান্ড্রয়েড ভিউ ব্যবহার করেন, তাহলে java > com.example.username.appname (androidTest) -এ যান।
    • আপনি যদি উইন্ডোর ভিতরে প্রজেক্ট ভিউ ব্যবহার করেন, তাহলে মডিউল ফোল্ডারের মধ্যে src > androidTest > java > com.example.username.appname- এ যান।
  2. টেস্টটির উপর রাইট-ক্লিক করুন এবং 'testName' রান করুন।
    • বিকল্পভাবে, আপনি টেস্ট ফাইলটি খুলে তৈরি হওয়া টেস্ট ক্লাস বা মেথডের উপর রাইট-ক্লিক করতে পারেন। কীভাবে টেস্ট চালাতে হয় সে সম্পর্কে আরও জানতে 'আপনার অ্যাপ পরীক্ষা করুন' পৃষ্ঠাটি পড়ুন।
  3. 'Select Deployment Target' উইন্ডোতে, সেই ডিভাইসটি বেছে নিন যেটিতে আপনি পরীক্ষাটি চালাতে চান। প্রয়োজনে, একটি নতুন Android Virtual Device তৈরি করুন'OK' ক্লিক করুন।

IDE-এর নিচের দিকে থাকা রান উইন্ডোতে আপনার টেস্টের অগ্রগতি পর্যবেক্ষণ করুন। অ্যান্ড্রয়েড স্টুডিও আপনার প্রোজেক্টের একটি সম্পূর্ণ বিল্ড চালায় এবং রান উইন্ডোতে আপনার টেস্টের নামে একটি ট্যাব খোলে, যেমনটি চিত্র ৩-এ দেখানো হয়েছে। এই ট্যাবে আপনি দেখতে পারেন আপনার টেস্টটি পাস করেছে নাকি ফেল করেছে, এবং টেস্টটি চলতে কতক্ষণ সময় লেগেছে। টেস্টটি শেষ হলে, ট্যাবটিতে "Tests ran to completion" লেখাটি লগ হবে।

চিত্র ৩। স্থানীয়ভাবে এসপ্রেসো পরীক্ষা চালানোর পর রান উইন্ডোতে প্রাপ্ত নমুনা আউটপুট।

টেস্ট রান কনফিগারেশন লেখা সম্পর্কে আরও জানতে, ' Create and Edit Run/Debug Configurations ' বইয়ের 'Defining a test configuration for a class or method' অংশটি পড়ুন।

অ্যান্ড্রয়েডের জন্য ফায়ারবেস টেস্ট ল্যাব দিয়ে একটি এসপ্রেসো পরীক্ষা চালান।

আপনি Espresso Test Recorder দ্বারা তৈরি টেস্টগুলো Firebase Test Lab-এর সাথে ব্যবহার করে শত শত ডিভাইস কনফিগারেশনে ক্লাউডে আপনার অ্যাপ পরীক্ষা করতে পারেন। Spark প্ল্যানের বিনামূল্যের দৈনিক কোটার মধ্যে Test Lab দিয়ে আপনার অ্যাপ পরীক্ষা করার জন্য কোনো চার্জ নেই। Firebase Test Lab দিয়ে Espresso টেস্টগুলো চালানোর জন্য, আপনার অ্যাপের জন্য একটি Firebase প্রজেক্ট তৈরি করুন এবং তারপর Android Studio থেকে Firebase Test Lab দিয়ে আপনার টেস্টগুলো চালানোর জন্য নির্দেশাবলী অনুসরণ করুন।

চিত্র ৪। একাধিক ডিভাইসে ফায়ারবেস টেস্ট ল্যাব ব্যবহার করে পরীক্ষা চালানোর পর রান উইন্ডোতে প্রাপ্ত নমুনা আউটপুট।