ঘর্ষণহীন, স্বয়ংক্রিয় পরীক্ষার জন্য Chrome থেকে সরঞ্জাম

পরীক্ষা গুরুত্বপূর্ণ। আপনি যা তৈরি করেছেন তা ব্যবহারকারীদের কাছে পৌঁছে দেওয়ার আগে এটি একটি মূল পদক্ষেপ—সেটি একটি সম্পূর্ণ সাইট বা অ্যাপ্লিকেশন, বা একটি নতুন বৈশিষ্ট্য—তা প্রত্যাশিতভাবে কাজ করে কিনা তা পরীক্ষা করা। যাইহোক, অনেক পরীক্ষা এখনও ম্যানুয়ালি হয়, সহকর্মী বা পরীক্ষা প্রকৌশলীদের নতুন বৈশিষ্ট্যটি পরীক্ষা করতে এবং সমস্যার রিপোর্ট করতে বলা হয়।

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

এই কারণেই ক্রোম টিম স্বয়ংক্রিয় পরীক্ষার গুরুত্বে বিশ্বাস করে৷ একটি টেস্ট স্যুট ব্যবহার করে যেটি আপনার বৈশিষ্ট্যটি ভাঙ্গনের জন্য নির্ভরযোগ্যভাবে এবং বারবার পরীক্ষা করে, আপনি নিশ্চিত হতে পারেন যে প্রতিটি ছোট বিবরণ পরীক্ষা করা হয়েছে, এখন এবং ভবিষ্যতের বিকাশের পরে। একটি বৈশিষ্ট্যের বিকাশকারী হিসাবে আপনার জ্ঞান একটি পরীক্ষায় অন্তর্ভুক্ত করা হয়েছে।

যাইহোক, আমরা জানি যে স্বয়ংক্রিয় পরীক্ষা চ্যালেঞ্জিং হতে পারে। এই কারণেই Chrome টিম এটিকে আপনার জন্য যতটা সম্ভব ঘর্ষণহীন করতে নিম্নলিখিত সরঞ্জাম এবং নির্দেশিকা প্রদান করে৷

পুতুল

Puppeteer হল একটি Node.js লাইব্রেরি। এটি আপনাকে ব্যবহার করা সহজ, উচ্চ-স্তরের API সহ Chrome, Chromium এবং Firefox স্বয়ংক্রিয় করতে দেয়৷

যদিও এই APIটি মূলত Chrome DevTools প্রোটোকলের উপর ভিত্তি করে তৈরি করা হয়েছিল, লক্ষ্য হল নতুন, উন্নত WebDriver BiDi প্রোটোকলকে বছরের শেষ নাগাদ Puppeteer-এর ভিত্তি তৈরি করা। WebDriver BiDi, সমস্ত প্রধান ব্রাউজার বিক্রেতাদের দ্বারা সহ-নির্মিত, অনেকগুলি অটোমেশন ব্যবহারের ক্ষেত্রে সহজ করে এবং অনেকগুলি নতুনকে সক্ষম করে, এবং ক্রস-ব্রাউজার সামঞ্জস্যপূর্ণ।

তবে অপেক্ষা করার দরকার নেই। Puppeteer's API ইতিমধ্যেই অনেকগুলি অটোমেশন ব্যবহারের ক্ষেত্রে সক্ষম করে, যা শুধুমাত্র WebDriver BiDi-এর সাথে উন্নত হবে। টেস্টিং থেকে শুরু করে ভিজ্যুয়াল ক্রলিং এবং প্রসেস অটোমেশন পর্যন্ত আপনি পেজের ইন্টারঅ্যাকশন , রিকোয়েস্ট ইন্টারসেপশন এবং স্ক্রিনশটের মতো ফিচার দিয়ে অনেক কিছু করতে পারেন। এমনকি আপনি WebGPU এবং WebGL ব্যবহার করে ক্লাউডে আপনার ওয়েব AI মডেলগুলি পরীক্ষা করতে এটি ব্যবহার করতে পারেন।

Puppeteer এছাড়াও WebdriverIO , একটি পূর্ণাঙ্গ ব্রাউজার টেস্টিং ফ্রেমওয়ার্ক, এবং গোপনীয়তা স্যান্ডবক্স বিশ্লেষণ টুলের মতো সরঞ্জাম দ্বারা ব্যবহৃত হয়, যা আপনাকে আপনার সাইটে কুকি এবং ব্যবহারকারীর ডেটা ব্যবহার আরও ভালভাবে বুঝতে দেয়৷

ক্রোম মাথাবিহীন

আপনি যদি কখনও Puppeteer ব্যবহার করে ক্রোম স্বয়ংক্রিয় করে থাকেন তবে আপনি হয়তো আবিষ্কার করেছেন যে পরীক্ষা চলাকালীন কোনও ব্রাউজার উইন্ডো প্রদর্শিত হবে না। ডিফল্টরূপে Puppeteer হেডলেস মোডে Chrome শুরু করে। এর মানে হল আপনার অটোমেশন চলাকালীন কোন প্রকৃত ব্রাউজার উইন্ডো নেই।

কিন্তু আপনি কি জানেন যে ক্রোমের হেডলেস মোডটি কেবল ক্রোম-একটি-উইন্ডো ছাড়াই নয়, আসলে ক্রোমের সম্পূর্ণ আলাদাভাবে রক্ষণাবেক্ষণ করা সংস্করণ ছিল? দীর্ঘ সময়ের জন্য যা বিভ্রান্তির দিকে পরিচালিত করে এবং বাগ এবং সমস্যাগুলি ট্র্যাকডাউন করা কঠিন।

Chrome 112 থেকে আমরা একটি নতুন হেডলেস মোড প্রবর্তন করেছি, যা এখন নিয়মিত ক্রোমের মতো একই কোডবেসের উপর ভিত্তি করে। এটি শুধুমাত্র পূর্ববর্তী বিভ্রান্তি কমায় না বরং কার্যকারিতা নিয়ে আসে যা আগে সম্ভব ছিল না, যেমন অটোমেশনের সময় এক্সটেনশন ব্যবহার করা।

Puppeteer সংস্করণ 22 থেকে এই নতুন হেডলেস মোডটি ডিফল্ট হিসাবে ব্যবহার করছে৷ আপনি যদি অন্যান্য অটোমেশন সমাধানগুলির মাধ্যমে Chrome হেডলেস ব্যবহার করেন তবে আপনি --headless=new কমান্ড-লাইন সুইচের সাথে নতুন হেডলেস মোডটিকে জোর করতে পারেন৷

Chrome-এর নতুন হেডলেস মোড আরও শক্তিশালী হলেও, এটি পুরানো হেডলেস মোডের মতো হালকা নয়৷ আপনি যদি সুপার রিসোর্স সীমাবদ্ধ হন বা আপনার Chrome এর সমস্ত বৈশিষ্ট্যের প্রয়োজন না হয়, আপনি chrome-headless-shell হিসাবে পুরানো হেডলেস মোড ব্যবহার করতে পারেন।

পরীক্ষার জন্য ক্রোম

আপনি যখন পরীক্ষা করেন, তখন আপনার পরীক্ষার পরিবেশের উপর আপনার সূক্ষ্ম নিয়ন্ত্রণ প্রয়োজন: অপারেটিং সিস্টেম, ব্রাউজার এবং ব্রাউজার সংস্করণ। Chrome-এর স্বতঃ-আপডেট সহ এটি কঠিন হতে পারে।

এই কারণেই আমরা পরীক্ষার জন্য ক্রোম তৈরি করেছি—অটো-আপডেট ছাড়াই ক্রোমের একটি সংস্করণ, Chrome-এর প্রতিটি সংস্করণের পাশাপাশি প্রকাশিত, প্রতিটি প্রধান অপারেটিং সিস্টেমের জন্য, একটি সংস্করণযুক্ত সংরক্ষণাগার থেকে অ্যাক্সেসযোগ্য৷ এটি আপনাকে ক্রোমের একটি নির্দিষ্ট সংস্করণের বিরুদ্ধে আপনার অটোমেশন ওয়ার্কফ্লোগুলিকে খুব বেশি ঝামেলা ছাড়াই চালাতে দেয়৷

আপনি ক্রোম ফর টেস্টিং বাইনারিতে অ্যাক্সেস করতে পারেন ক্রোম ফর টেস্টিং অ্যাভাইবিলিটি ড্যাশবোর্ড , JSON API , অথবা Puppeteer কমান্ড-লাইন ইউটিলিটি দিয়ে।


Puppeteer, Chrome-এর আপডেট করা হেডলেস মোড, এবং Chrome for Testing ব্রাউজার অটোমেশন এবং আপনার জন্য যতটা সম্ভব মসৃণ পরীক্ষা চালানোর জন্য আমাদের দল বর্তমানে যে কাজ করছে তারই অংশ। এবং সম্পর্কিত সরঞ্জাম, যেমন DevTools Recorder , আপনাকে পরীক্ষা তৈরিতে সহায়তা করে: Chrome-এ একটি ব্যবহারকারীর প্রবাহ রেকর্ড করুন এবং Puppeteer-এ পুনরায় চালান।

web.dev-এ পরীক্ষা শিখুন

এই পোস্টে কভার করা টুলগুলি আপনাকে আপনার স্বয়ংক্রিয় পরীক্ষা উন্নত করতে সাহায্য করবে। কিন্তু, আপনি যদি সবেমাত্র শুরু করেন তাহলে অনেক কিছু বোঝার এবং শেখার মতো মনে হতে পারে। তাই, আমরা একটি নতুন 10টি মডিউল কোর্স তৈরি করেছি— web.dev-এ পরীক্ষা শিখুন । এই গভীর কোর্সটি পরীক্ষার মূল ধারণাগুলি কভার করে, কোথায় এবং কীভাবে পরীক্ষা চালানো হয়, পরীক্ষার ধরন এবং আসলে কী পরীক্ষা করা উচিত। এটি আপনার পরীক্ষার যাত্রার জন্য একটি দুর্দান্ত সূচনা পয়েন্ট। আপনার কাছে প্রয়োজনীয় জিনিসগুলি হয়ে গেলে, আরও নির্দিষ্ট পরীক্ষার প্রশ্নগুলিতে গভীর ডাইভ এবং ব্যবহারিক টিপস সহ আমাদের টেস্ট অটোমেশন সংগ্রহে নির্দ্বিধায় এগিয়ে যান।