সেলেনিয়াম আইডিই: টেস্ট অটোমেশন-র ফ্রি টুল / প্লাগ-ইন
মে ২৪, ২০১৬, মঙ্গলবার।
নতুন একটা টুলের সম্পর্কে জানলাম, সেলেনিয়াম আইডিই (Selenium IDE ) । আসলে ঠিক ওই অর্থে টুল না, Firefox -র প্লাগ-ইন। বেশ কাজের একটা প্লাগ -ইন। আগের লেখার মত কেন ব্যবহার করছি তার একটু ভুমিকা দিয়ে মূল লেখায় যাবো।
আমাদের কাজের জায়গায় এখন জোরেসোরে একটা প্রজেক্ট চলছে। "ইন্টারন্যাশনাল পড" - নাম দিয়ে চলা এই প্রজেক্ট আসলে ইউরোপে এদের সার্ভিস চালু করার চেষ্টা করছে। ইউরোপীয় ইউনিয়ন বা EU -র দেশ গুলোর একটা বড় রেকুয়ার্মেন্ট হচ্ছে, ওদের দেশের লোকদের ডাটা ওদের দেশেই (অর্থাৎ ইউরোপে ) রাখতে হবে, আমারিকা বা অন্য কোনো দেশে রাখা যাবে না। আর এই কারণেই সব ঝামেলা।
আমাদের কাজের সম্পর্কে এর আগের এক লেখায় লিখেছিলাম। এদের কোডের বিরাট একটা অংশ ইউসার ডাটা নিয়ে কাজ করে। EU -র ডাটা EU -তে রাখলে সমস্যা নাই, তবে অনেক ডাটা-ই আসলে কমন। সেই কমন ডাটা আমারিকার ডাটাবেস -এ রেখে, ইউসার দের ডাটা ইউরোপে রাখার জন্য প্রায় পুরো সিস্টেমটাই নতুন করে ডিসাইন বা ঠিক করতে হচ্ছে।
ঝামেলার এইখানেই শেষ না। আরেকটা শর্ত হচ্ছে, বাইরের ডাটাও এনে ওদের (ইউরোপের) সিস্টেমে রাখা যাবে না। ফলে সব কাজ ঠিকঠাক মত শেষ হলেও নতুন সিস্টেম টেস্ট করার জন্য টেস্ট ডাটা ইম্পোর্ট করা যাবে না। নতুন করে টেস্ট ডাটা তৈরী করতে হবে। আর এই টেস্ট ডাটা তৈরি অটোমেশন করার জন্য টুল খুঁজতে গিয়েই Slenium IDE -র সম্পর্কে জানলাম।
এটা Firefox ব্রাউসারে ইউসার-এর ইন্টারঅ্যাকশন রেকর্ড করে। পরে রিপ্লে করে ওই একই ইন্টারঅ্যাকশন খুব সহজেই আবারও সিমুলেট করা যায়। সবচেয়ে বড় সুবিধা হচ্ছে, রেকর্ড করা স্ক্রিপ্ট প্যারামিটারাইজ করে একই স্ক্রিপ্ট বারবার চালানো যায়। ফলে অনেক টেস্ট ডাটা সহজেই আপনাআপনি বা অটোমেটিক্যালি তৈরী করা যায়।
প্লাগ-ইন টার একটা স্ক্রিনশট নিচে দিলাম:
প্লাগ-ইন টা ওপেন-সোর্স হওয়ায় এর কোর ফিচার বা মেথড অনেক। ঐগুলো ব্যবহার করে খুব সহজেই কোনো স্ক্রিপ্ট মডিফাই করে নিজের সুবিধা মত কাজ করিয়ে নেয়া যায়।
আর নিজেদের ডাটা যোগ করে প্যারামিটারাইজ করার জন্য একটা জাভাস্ক্রিপ্ট -এ ডাটা গুলো রেখে মেনু বার থেকে Options > Options গিয়ে ফাইলটার লোকেশন বলে দিলেই হলো। স্ক্রিপ্ট নিজে থেকেই ওই ফাইল পড়তে পারবে। নিচে তার স্ক্রীনশট দিলাম:
মে ২৪, ২০১৬, মঙ্গলবার।
নতুন একটা টুলের সম্পর্কে জানলাম, সেলেনিয়াম আইডিই (Selenium IDE ) । আসলে ঠিক ওই অর্থে টুল না, Firefox -র প্লাগ-ইন। বেশ কাজের একটা প্লাগ -ইন। আগের লেখার মত কেন ব্যবহার করছি তার একটু ভুমিকা দিয়ে মূল লেখায় যাবো।
আমাদের কাজের জায়গায় এখন জোরেসোরে একটা প্রজেক্ট চলছে। "ইন্টারন্যাশনাল পড" - নাম দিয়ে চলা এই প্রজেক্ট আসলে ইউরোপে এদের সার্ভিস চালু করার চেষ্টা করছে। ইউরোপীয় ইউনিয়ন বা EU -র দেশ গুলোর একটা বড় রেকুয়ার্মেন্ট হচ্ছে, ওদের দেশের লোকদের ডাটা ওদের দেশেই (অর্থাৎ ইউরোপে ) রাখতে হবে, আমারিকা বা অন্য কোনো দেশে রাখা যাবে না। আর এই কারণেই সব ঝামেলা।
আমাদের কাজের সম্পর্কে এর আগের এক লেখায় লিখেছিলাম। এদের কোডের বিরাট একটা অংশ ইউসার ডাটা নিয়ে কাজ করে। EU -র ডাটা EU -তে রাখলে সমস্যা নাই, তবে অনেক ডাটা-ই আসলে কমন। সেই কমন ডাটা আমারিকার ডাটাবেস -এ রেখে, ইউসার দের ডাটা ইউরোপে রাখার জন্য প্রায় পুরো সিস্টেমটাই নতুন করে ডিসাইন বা ঠিক করতে হচ্ছে।
ঝামেলার এইখানেই শেষ না। আরেকটা শর্ত হচ্ছে, বাইরের ডাটাও এনে ওদের (ইউরোপের) সিস্টেমে রাখা যাবে না। ফলে সব কাজ ঠিকঠাক মত শেষ হলেও নতুন সিস্টেম টেস্ট করার জন্য টেস্ট ডাটা ইম্পোর্ট করা যাবে না। নতুন করে টেস্ট ডাটা তৈরী করতে হবে। আর এই টেস্ট ডাটা তৈরি অটোমেশন করার জন্য টুল খুঁজতে গিয়েই Slenium IDE -র সম্পর্কে জানলাম।
এটা Firefox ব্রাউসারে ইউসার-এর ইন্টারঅ্যাকশন রেকর্ড করে। পরে রিপ্লে করে ওই একই ইন্টারঅ্যাকশন খুব সহজেই আবারও সিমুলেট করা যায়। সবচেয়ে বড় সুবিধা হচ্ছে, রেকর্ড করা স্ক্রিপ্ট প্যারামিটারাইজ করে একই স্ক্রিপ্ট বারবার চালানো যায়। ফলে অনেক টেস্ট ডাটা সহজেই আপনাআপনি বা অটোমেটিক্যালি তৈরী করা যায়।
প্লাগ-ইন টার একটা স্ক্রিনশট নিচে দিলাম:
ছবি ১: আমার মূল স্ক্রিপ্ট |
প্লাগ-ইন টা ওপেন-সোর্স হওয়ায় এর কোর ফিচার বা মেথড অনেক। ঐগুলো ব্যবহার করে খুব সহজেই কোনো স্ক্রিপ্ট মডিফাই করে নিজের সুবিধা মত কাজ করিয়ে নেয়া যায়।
আর নিজেদের ডাটা যোগ করে প্যারামিটারাইজ করার জন্য একটা জাভাস্ক্রিপ্ট -এ ডাটা গুলো রেখে মেনু বার থেকে Options > Options গিয়ে ফাইলটার লোকেশন বলে দিলেই হলো। স্ক্রিপ্ট নিজে থেকেই ওই ফাইল পড়তে পারবে। নিচে তার স্ক্রীনশট দিলাম:
ছবি ২: ডাটা ফাইলের লোকেশন যেভাবে চিনিয়ে দিতে হবে |
মনে রাখতে হবে, ডাটা ফাইলের লোকেশন দেয়ার পরে, তা ব্যবহার করার জন্য প্লাগ-ইন টা বন্ধ করে আবার চালু করতে হবে।
উদাহরণ দিয়ে বলি, প্রথম ছবিতে আমার স্ক্রিপ্ট-টা কয়েকটা ডামি বা মিথ্যা/কৃত্রিম ক্লায়েন্ট কোম্পানি তৈরীর কাজে ব্যবহার হবে। ওই কোম্পানির (উদ্ভট ) নাম গুলো data.js ফাইলে একটা Array তে রেখেছি :
ছবি ৩: ডাটা ফাইল : data.js |
এর পর ছবি ২ -এ দেখানো উপায়ে স্ক্রিপ্ট -এর সাথে ডাটা ফাইলটা যোগ করেছি। সবশেষে স্ক্রিপ্টে (প্রথম ছবিতে লাল তীর চিহ্ন দিয়ে দেখানো ) শুধু একটা লুপ ব্যবহার করে Array আইটেম গুলো পড়ে নিয়েছি। ব্যস, তাতেই হয়ে গেছে।
এই একই কাজ করার জন্য HP-র একটা টুল আছে, Unified Funtional Testing (UFT) নাম। তবে তা ওপেন সোর্স না, লাইসেন্সের অনেক দাম। আমাদের কথা হচ্ছে , একই কাজ যদি ফ্রি তে করা যায় , তাহলে কেন না? তাই আমাদের জন্য Selenium IDE -ই ভালো!
ধন্যবাদ
--ইশতিয়াক।
ডিসক্লেইমার (গুগল ট্রান্সলেট অনুযায়ী "দাবি পরিত্যাগী"!!) : আমি মাত্রই এই প্লাগ-ইনটা ব্যবহার করা শুরু করেছি। এখনো কিছুই জানি না। তবে শেয়ার করার লোভ সামলাতে পারলাম না। শেখার নতুন কোনো ভালো লিংক পেলে পরে এই পোস্টে এড করে দিবো। আর এই প্লাগ-ইন দিয়ে শেখা শুরু করে পরে Selenium Web Driver দিয়ে পুরো টেস্ট অটোমেশন শেখার ইচ্ছা আছে।
নিচের সবগুলো লেখাই পরে যোগ করছি:
দরকারী লিংক:
- উজ্জল দত্ত'র কাছ থেকে পাওয়া সেলেনিয়াম ওয়েবড্রাইভার 'র উপর গুরু৯৯ -র টিউটোরিয়াল
- . . .
No comments:
Post a Comment