Dynamic data for Test Automation
টেস্ট অটোমেশনের অনেক বড় একটা পার্ট হচ্ছে ফেক ডেটা জেনারেট করে সেটাকে ব্যবহার করা। অনেকই আমরা এক্সেল ফাইল ব্যবহার করি বা ইন্টারনেট থেকে ফেক ডেটা ফাইল ডাউনলোড করে ব্যবহার করি। এই সবই আমরা ম্যনুয়ালি করছি। আমার নিজের রিসেন্ট একটা অটোমেশন প্রজেক্টে অনেক ফেক ডেটার দরকার হচ্ছিলো। আগে কখনো এই বিষয় নিয়ে তেমন ঘাটাঘাটি করিনি , ম্যানুয়ালি-ই কাজ চালিয়ে নিয়েছি কিন্তু এইবার একরকম বিরক্তি থেকেই ঘাটাঘাটি শুরু করলাম। দেখলাম অনেক ধরনের লাইব্রেরী আছে যা ফেক ডেটা জেনারেট করে দেয়। আমি যেহেতু Selenium Java ব্যবহার করি তো আমি Java based কিছু লাইব্রেরী খুজে পাই।
Java Faker একটি লাইব্রেরী যেটা অনেক সহজেই existing ফ্রেমওয়ার্কে ইন্টিগ্রেট করে ফেক ডেটা জেনারেট করা যায়। এড্রেস থেকে শুরু করে ফোন নাম্বার সব ধরনের রিয়েল ডেটা জেনারেট করে দেয় এই লাইব্রেরি।
এই লাইব্রেরীর ফুল ইউসেজ এবং ডেস্ক্রিপশন সম্পর্কে আরো জানতে নিচের দেয়া লিংক থেকে রিপো চেক করতে পারেন
এখন আসি আমরা কিভাবে এটা ব্যবহার করতে পারি.
আপনি যদি Maven প্রজেক্ট ক্রিয়েট করে থাকেন তাহলে, Maven এর সেন্ট্রাল রিপোসিটোরিতে যেয়ে java-faker লিখে সার্চ করে , dependency কপি করে ,প্রজেক্টের pom.xml ফাইলে যেয়ে এড করে ফেলুন।
<dependency>
<groupId>com.github.javafaker</groupId>
<artifactId>javafaker</artifactId>
<version>1.0.2</version>
</dependency>
আর build tool গ্রেডেল ব্যবহার করলে build.gradle ফাইলে এড করে ফেলুন.
dependencies {
implementation 'com.github.javafaker:javafaker:1.0.2'
}
যেহেতু আমরা এটা বিভিন্ন পেইজ বা ক্লাসে ব্যবহার করবো random data input এর জন্য সেহেতু সবথেকে ভালো হয় একটা helper class ক্রিয়েট করে সেই ক্লাসে এই ডেটা রিলেটেড সকল মেথডকে একসাথে রাখা। প্রয়োজন অনুযায়ী faker class instantiate করে মেথড সহ কল করে নিতে হবে।
Faker Class Instantiation:
Faker faker = new Faker();
আপনি চাইলে দেশ অনুযায়ী ডেটা জেনারেট করতে পারেন। সেজন্য আপনাকে লোকাল মেনশন করে দিতে হবে। Java Faker অনেকগুলো লোকাল সাপোর্ট করে।
লোকাল মেনশন করার জন্য Faker class কে এইভাবে instantiate করুন.
Faker faker = new Faker(new Locale("YOUR_LOCALE"));
এতক্ষণ আমরা Java Faker সম্পর্কে জানলাম এখন আমরা আরেকটি লাইব্রেরি সম্পর্কে জানব যেটির নাম হচ্ছে Mockneat. এটি জাভাতে লিখা একটি লাইব্রেরী। এটা ব্যবহার করে সব ধরনের-ই মক ডেটা জেনারেট করা যায়। এখানে আমি ইমেল এর ডোমেইন আমার নিজের পছন্দমত সেট করতে পারি।
String fakEmail = emails().domain("yopmail.com").get()
// Possible Output: demojohn@yopmail.com;
কিন্তু জাভা ফেকারে ফিক্সড Hotmail সেট থাকার কারণে ইচ্ছামত ডোমেইন ব্যবহার করা যায় না। এটিতেও জাভা ফেকারের মত dependency set করতে হয় pom.xml or build.gradle -এ. অনেক সুন্দর একটি ডকুমেন্টেশন আছে এটির যেটা অনেক সহজেই বুঝা যায়।
আরেকটি লাইব্রেরি আছে যেটির নাম Data Faker.আপনারা চাইলে এটি ট্রাই করতে পারেন.
প্রয়োজনীয় লিংকঃ
My Github Repo: https://github.com/SMShoron/fake-data-library
Java Faker: https://github.com/DiUS/java-faker
Mockneat: https://www.mockneat.com/
Data Faker: https://www.datafaker.net/
হ্যাপি লার্নিং 😊