HeadlinesBriefing HeadlinesBriefing.com

E2exe: বড় পরিসরে Windows ডেস্কটপ অটোমেশন

Hacker News •
×

Windows ডেস্কটপ অ্যাপ পরীক্ষা করা দীর্ঘদিন ধরে গ্রাহকদের সবচেয়ে বেশি অনুরোধ করা বৈশিষ্ট্যগুলোর একটি, কারণ প্রতি মাসে এমন হাজার হাজার পরীক্ষা একসঙ্গে চালানোর অবকাঠামো কারও ছিল না। ওয়েব পরীক্ষা তুলনামূলকভাবে সহজ: একটি হেডলেস ব্রাউজার সেকেন্ডের মধ্যে একটি Linux কনটেইনারে চালু হয়, খরচ এক সেন্টের একটি ভগ্নাংশ, এবং পরীক্ষা শেষ হলে সেটি ফেলে দেওয়া হয়। Windows ডেস্কটপ পরীক্ষার কোনো সমতুল্য নেই। প্রতিটি পরীক্ষার জন্য একটি সম্পূর্ণ ভার্চুয়াল মেশিন প্রয়োজন, কারণ Windows কনটেইনারে গ্রাফিক্যাল ডেস্কটপ থাকে না। একটি ঠান্ডা Windows VM বুট হতে ২ থেকে ৩ মিনিট সময় নেয়, এবং কাউকে লগইন করা থাকতে হয়, কারণ Windows UI Automation কেবল একটি সক্রিয় ডেস্কটপ সেশনের ভেতরেই কাজ করে। মেশিনগুলো প্রতিটি রানের মধ্যে ইনস্টল করা ফাইল, রেজিস্ট্রি কী, ব্যবহারকারীর প্রোফাইল এবং সংরক্ষিত লগইনও ধরে রাখে, যেখানে প্রতিটি অ্যাপ নিজের ইনস্টলার, অ্যাডমিন প্রম্পট ও প্রথমবার চালানোর ডায়ালগ নিয়ে আসে। দূরবর্তী Windows মেশিনে কোনো অন্তর্নির্মিত ট্রেস, লগ বা স্ক্রিনশট থাকে না, এবং বেশিরভাগ পরীক্ষা অবকাঠামো Linux-কে কেন্দ্র করে তৈরি হয়েছিল।

দলের সমাধান ছিল Windows মেশিনগুলোকে ফোনের মতো বিবেচনা করা: একটি ডিভাইস যা একটি পরীক্ষা দখল করে, একবার ব্যবহার করে, তারপর ফেলে দেয়। এই স্থাপত্যটি তাদের মোবাইল পরীক্ষা অবকাঠামো থেকে ধার নেওয়া। Kubernetes-এর একটি কাস্টম ডিভাইস শিডিউলার একটি ডিভাইস ক্লেইমের (Device Claim) মাধ্যমে Google Compute Engine-এ একটি Windows VM বরাদ্দ করে, এবং পরীক্ষা WebdriverIO ও Appium দিয়ে এটি দূর থেকে নিয়ন্ত্রণ করে। ডিভাইস মডেলে দুটি সম্প্রসারণ প্রয়োজন হয়েছিল: ডিভাইস ক্লাস্টারের বাইরে থাকতে পারে, এবং ক্লেইম ব্রাউজারের জন্য CDP সহ ডেস্কটপ সংযোগের ঠিকানা ফেরত দিতে পারে।

সিস্টেমটির তিনটি অংশ রয়েছে: Windows VM-এর একটি প্রিওয়ার্মড পুল বজায় রাখা একটি কন্ট্রোলার, পরীক্ষার কোড চালানো একটি Linux রানার পড, এবং পরীক্ষাধীন অ্যাপ ও একটি ছোট ডেস্কটপ এজেন্ট চালানো Windows VM নিজে। রানার ব্রাউজারের কনটেন্টের জন্য Playwright-এর CDP, নেটিভ অ্যাপের জন্য Appium, এবং একটি WebRTC স্ট্রিমের মাধ্যমে সংযুক্ত হয়, যা মানুষকে পরীক্ষা সরাসরি দেখতে এবং পরে রেকর্ডিং পর্যালোচনা করতে দেয়।

প্রতিটি VM ব্যবহার-শেষে ফেলে দেওয়ার মতো। কেউ এতে লগইন করে না, প্যাচ করে না, বা সপ্তাহের পর সপ্তাহ চালু রাখে না, এবং ব্যবহারের পর প্রতিটির জায়গায় একটি নতুন মেশিন বসানো হয়।

উৎস: Hacker News · সারাংশ: HeadlinesBriefing