Dynamic data for Test Automation

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/

হ্যাপি লার্নিং 😊

To view or add a comment, sign in

More articles by Sadia Islam

  • Automating CSV Data for Reliable API Testing

    Recently, I tackled a practical challenge in my API automation work and wanted to share both the problem and my…

    2 Comments
  • Why Your API Call is Hitting Twice: Understanding Preflight & XHR

    প্রায় সময়েই ডেভ টুলসের নেটওয়ার্ক ট্যাবে আমি একই এপিআই দুইবার কল যাচ্ছে দেখতে পাই। একই API দুইবার কল হলেও এদের টাইপ…

    4 Comments
  • Host your Allure Report on GitHub Pages with GitHub Actions

    আমরা সবাই শুনেছি বা আমাদের দৈনন্দিন জীবনে Allure Report ব্যবহার করেছি। এছাড়াও, গিটহাব অ্যাকশন এবং গিটহাব পেজ সাধারণত…

    2 Comments
  • Improving Your Software Testing Workflow with Chrome Dev Tools: Learn Essential Features

    আমরা সবাই কমবেশি DevTool এই শব্দটার সাথে পরিচিত। সব ব্রাউজারেই Dev Tool রয়েছে। এর মধ্যে Chrome DevTools সবথেকে বেশি…

    5 Comments
  • findElement() and findElements() in Selenium WebDriver

    আমরা যদি কোন ওয়েব পেইজের সাথে ইন্টারেক্ট করতে চাই তাহলে ওয়েব পেইজের ওয়েব এলিমেন্ট গুলো কোথায় আছে সেটা সবার আগে বের…

    2 Comments

Explore content categories