ডেটা চালিত, কীওয়ার্ড চালিত ও হাইব্রিড সেলেনিয়াম ফ্রেমওয়ার্ক তৈরি করা



এই ব্লগটি সেলেনিয়াম কাঠামো কী, এর উপকারিতা এবং সেলেনিয়ামে কীভাবে ডেটা ড্রাইভন, কীওয়ার্ড চালিত ও হাইব্রিড ফ্রেমওয়ার্কগুলি প্রয়োগ করতে হয় তা ব্যাখ্যা করে।

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

সেলেনিয়াম কাঠামো কী?

সেলেনিয়াম কাঠামোটি কোড রক্ষণাবেক্ষণকে সহজতর করার জন্য কোড কাঠামো এবং কোডের পাঠযোগ্যতা আরও ভাল। একটি কাঠামোর মধ্যে পুরো কোডটি কোডের ছোট ছোট টুকরো টুকরো করে বিভক্ত করা হয়, যা একটি নির্দিষ্ট কার্যকারিতা পরীক্ষা করে।





কোডটি এমনভাবে গঠন করা হয় যে, 'ডেটা সেট 'টিকে প্রকৃত' টেস্ট কেস 'থেকে পৃথক করা হয় যা ওয়েব অ্যাপ্লিকেশনটির কার্যকারিতা পরীক্ষা করবে। এটি এমনভাবে কাঠামোযুক্তও করা যেতে পারে যেখানে পরীক্ষার কেসগুলি কার্যকর করা দরকার তাকে বাহ্যিক অ্যাপ্লিকেশন (.csv এর মত) থেকে আহ্বান করা হয় (অনুরোধ করা হয়)।

সেখানে বেশ কয়েকটি ফ্রেমওয়ার্ক রয়েছে, তবে 3 সাধারণত ব্যবহৃত সেলেনিয়াম কাঠামো হ'ল:



এই ফ্রেমওয়ার্কগুলি এই ব্লগে একটি ডেমো নিয়ে আলোচনা করা হবে। তবে আরও কিছু করার আগে, আমি আপনাকে বলি কেন সেলেনিয়াম কাঠামোটি স্থানে থাকা দরকার এবং সেগুলি ব্যবহার করে আপনি কী কী উপকার পাবেন।

আমাদের কেন সেলেনিয়াম কাঠামো দরকার?

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

যেহেতু একটি ফ্রেমওয়ার্ক কার্যকর করা হয়েছে, এর ফলে ছোট তবে একাধিক কোড টুকরা হবে, এতে বিভিন্ন সুবিধা রয়েছে।



সেলেনিয়াম কাঠামোর সুবিধা

  • কোড পুনঃব্যবহার বৃদ্ধি
  • কোড পঠনযোগ্যতা উন্নত
  • উচ্চতর বহনযোগ্যতা
  • হ্রাস স্ক্রিপ্টরক্ষণাবেক্ষণ

এখন আপনি ফ্রেমওয়ার্কের বেসিকগুলি জানেন, তবে আমি তাদের প্রত্যেককে বিশদভাবে ব্যাখ্যা করি।

ডেটা চালিত ফ্রেমওয়ার্ক

সেলেনিয়ামের একটি ডেটা চালিত কাঠামো হ'ল 'ডেটা সেট' কে আসল 'টেস্ট কেস' (কোড) থেকে আলাদা করার কৌশল। এই কাঠামো পুরোপুরি ইনপুট পরীক্ষার ডেটার উপর নির্ভর করে। পরীক্ষার ডেটা বাহ্যিক উত্স যেমন একটি এক্সেল ফাইল, .CSV ফাইল বা কোনও ডাটাবেস থেকে খাওয়ানো হয়।

ডেটা চালিত কাঠামো - সেলেনিয়াম কাঠামো - এডুরেকা

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

এর বাইরে, আপনি সহজেই কতটা ডেটা পরীক্ষা করতে হবে তাও নিয়ন্ত্রণ করতে পারেন। আপনি এক্সেল ফাইলটিতে আরও ব্যবহারকারীর নাম এবং পাসওয়ার্ড ক্ষেত্র যুক্ত করে (বা অন্যান্য উত্স) সহজেই পরীক্ষার পরামিতিগুলির সংখ্যা বাড়িয়ে তুলতে পারেন।

উদাহরণস্বরূপ, যদি আমাকে কোনও ওয়েব পৃষ্ঠায় লগইন পরীক্ষা করতে হয় তবে আমি ব্যবহারকারীর নাম এবং পাসওয়ার্ড শংসাপত্রগুলির সেটটি একটি এক্সেল ফাইলে রাখতে পারি এবং ব্রাউজারে আলাদা জাভা ক্লাস ফাইলে অটোমেশন সম্পাদনের জন্য শংসাপত্রগুলি পাস করতে পারি।

সেলেনিয়াম ওয়েবড্রাইভার সহ অ্যাপাচি পিওআই ব্যবহার করা

ওয়েবড্রাইভার সরাসরি এক্সেল ফাইলগুলি পড়া সমর্থন করে না। অতএব আমরা ব্যবহার করি আপাচে পিওআই যে কোনও মাইক্রোসফ্ট অফিস ডকুমেন্টে / পড়ার জন্য। আপনি এপাচি পিওআই (জেআর ফাইলগুলির সেট) ডাউনলোড করতে পারেন এখানে । আপনার প্রয়োজনীয়তা অনুসারে জিপ ফাইল বা টার ফাইলটি ডাউনলোড করুন এবং সেলেনিয়াম জেআর সেট সহ তাদের রাখুন।

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

পরীক্ষার কেসটি বুঝতে নীচের কোডটি দেখুন। এটি একটি ফ্লাইট বুকিং অ্যাপ্লিকেশনটির লগইন কার্যকারিতা পরীক্ষা করার জন্য একটি সহজ কোড।

প্যাকেজ ডেটাড্রাইভেন আমদানি org.openqa.selenium.By আমদানি org.openqa.selenium.chrome.ChromeDriver আমদানি org.testng.আরসেট আমদানি org.testng.annotations.AfterMethod আমদানি org.testng.annotations.DataProvider আমদানি org.testng.annotations সার্বজনীন ক্লাস ডিডিটিইএক্সসেল D ক্রোমড্রাইভার ড্রাইভার @ টেস্ট (ডেটাপ্রোভিডার = 'টেস্টডেটা') সার্বজনীন শূন্য ডেমোপ্রজেক্ট (স্ট্রিং এর ব্যবহারকারীর নাম, স্ট্রিং পাসওয়ার্ড) বিঘ্নিত এক্সপ্রেশন {System.setProperty ('ওয়েবড্রাইভার.চ্রোম.ড্রাইভার', 'সি: ইউজারস ওয়ার্ডডাউনড্র্রো ক্রোমড্রাইভার = এক্স) নতুন ক্রোমড্রাইভার () ড্রাইভার.get ('http://newtours.demoaut.com/') ড্রাইভার.findElement (বাই.নাম ('ব্যবহারকারীর নাম'))। সেন্ডকি (ব্যবহারকারী নাম) ড্রাইভার.ফাইন্ডএলমেন্ট (বাই নাম এবং 'পাসওয়ার্ড') ))। সেন্ডকি (পাসওয়ার্ড) ড্রাইভার.findElement (বাই.নেম ('লগইন')) ক্লিক করুন () থ্রেড.স্লাইপ (5000) Assert.assertTrue (ড্রাইভার.জেটটাইটেল ()। ম্যাচ ('একটি ফ্লাইট সন্ধান করুন: বুধ ভ্রমণ): '),' অবৈধ শংসাপত্রসমূহ ') System.out.println (' লগইন সফল ')} @ আফটারমেথড শূন্য প্রোগ্রামের সংজ্ঞা () {ড্রাইভার.উইকিট ()} @ ডেটাপ্রোভিডার (নাম =' টেস্টডেটা ') পাবলিক অবজেক্ট [] [] টেস্টডা ট্যফিড () {ReadExcelFile কনফিগারেশন = নতুন ReadExcelFile ('সি: ব্যবহারকারীদের ওয়ার্ড ওয়ার্কস্পেসসেলেনিয়ামলগিনক্রেনডেন্টালস.এক্সলসেক্স') int সারি = config.getRowCount (0) অবজেক্ট [] [] শংসাপত্রগুলি = নতুন অবজেক্ট [সারি] [2] এর জন্য (int i = 0i)

আপনি যদি উপরে থেকে লক্ষ্য করেন তবে আমাদের কাছে 'টেস্টডেটাফিড ()' নামে একটি পদ্ধতি রয়েছে। এই পদ্ধতিতে, আমি 'ReadExcelFile' নামে অন্য শ্রেণীর একটি অবজেক্ট উদাহরণ তৈরি করেছি। এই অবজেক্টটি ইনস্ট্যান্ট করার সময়, আমি ডেটাযুক্ত আমার এক্সেল ফাইলের পথটি খাইয়ে দিয়েছি। এক্সেল ওয়ার্কবুক থেকে পাঠ্য পুনরুদ্ধার করার জন্য আমি লুপের জন্য আরও সংজ্ঞায়িত করেছি।

তবে, প্রদত্ত শীট নম্বর, কলাম নম্বর এবং সারি নম্বর থেকে ডেটা পড়ার জন্য, কলগুলি 'রিডএক্সেলফায়াল' শ্রেণিতে করা হয়। আমার 'ReadExcelFile' এর কোডটি নীচে।

প্যাকেজ ডেটাড্রাইভেন আমদানি java.io.File আমদানি java.io.FileInputStream আমদানি org.apache.poi.xssf.usermodel.XSSFSheet আমদানি org.apache.poi.xssf.usermodel.XSSF ওয়ার্কবুক পাবলিক ক্লাস রিডএক্সএসএফএসবারকব্যাট পাবলিক স্টাটএসএসএফএসএক্সএসএল এক্সেলপ্যাথ) {চেষ্টা করুন s ফাইল এসসিআর = নতুন ফাইল (এক্সেলপথ) ফাইলআইএনপুটস্ট্রিম fis = নতুন ফাইলআইপুটস্ট্রিম (এসসিআর) wb = নতুন এক্সএসএসএফওয়র্কবুক (fis)} ক্যাচ (ব্যতিক্রম ই) {System.out.println (e.getMessage ())}} সর্বজনীন স্ট্রিং getData (ইন শিটনম্বার, ইন সারি, ইন কলাম) {শিট = wb.getSheetAt (শিটনম্বার) স্ট্রিং ডেটা = শীটসেট (সারি) .getCell (কলাম) .getStringCellValue () রিটার্ন ডেটা} পাবলিক ইনট ররকাউন্ট (ইন শিটইন্ডেক্স) { int সারি = wb.getSheetAt (শীটইন্ডেক্স) .getLastRowNum () সারি = সারি + 1 রিটার্ন সারি}}

প্রথম আমদানি করা লাইব্রেরিগুলি নোট করুন note আমি আমদানি করেছি অ্যাপাচি পিওআই এক্সএসএসএফ ফাইল পাঠাতে / লেখার জন্য ডেটা ব্যবহার করার জন্য ব্যবহৃত লাইব্রেরি। এখানে মানগুলি পাস করার জন্য আমি একটি কনস্ট্রাক্টর (একই পদ্ধতির অবজেক্ট) তৈরি করেছি: শীট নম্বর, সারি সংখ্যা এবং কলাম নম্বর। এই কাঠামোটি আরও ভালভাবে বুঝতে, আপনাকে অনুরোধ করছি নীচের ভিডিওটি অনুসরণ করার জন্য, যেখানে আমি এটি কাঠামোগত পদ্ধতিতে ব্যাখ্যা করেছি।

সেলেনিয়াম ওয়েবড্রাইভারে ডেটা চালিত ফ্রেমওয়ার্ক | সেলেনিয়াম টিউটোরিয়াল

এবার আসুন ফ্রেমওয়ার্কটিতে, যথা কীওয়ার্ড চালিত ফ্রেমওয়ার্কে।

কীওয়ার্ড চালিত ফ্রেমওয়ার্ক

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

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

উদাহরণস্বরূপ, ওয়েব অ্যাপ্লিকেশনটিতে লগ ইন করার জন্য, আমরা মূল পরীক্ষার ক্ষেত্রে একাধিক পদ্ধতি লিখতে পারি, যাতে প্রতিটি পরীক্ষার ক্ষেত্রে নির্দিষ্ট কার্যকারিতা পরীক্ষা করা হয়। ব্রাউজার ড্রাইভারটি ইনস্ট্যান্ট করার জন্য একটি পদ্ধতি থাকতে পারে, ব্যবহারকারীর নাম এবং পাসওয়ার্ড ক্ষেত্র সন্ধানের জন্য, কোনও পদ্ধতি থাকতে পারে, ওয়েব পৃষ্ঠায় নেভিগেট করার জন্য অন্য পদ্ধতি থাকতে পারে ইত্যাদি etc.

আপনি জাভা মধ্যে একটি অ্যারে করতে পারেন?

ফ্রেমওয়ার্কটি কেমন দেখাচ্ছে তা বোঝার জন্য নীচের কোডটি একবার দেখুন। নীচের কোডে যে লাইনগুলি মন্তব্য করা হয়েছে সেগুলি ব্যাখ্যা হিসাবে কাজ করে যদি আপনি না বুঝতে পারেন।

প্যাকেজ কীওয়ার্ডড্রাইভেন আমদানি org.openqa.selenium.chrome.ChromeDriver আমদানি org.testng.Assert আমদানি org.testng.annotations.Test আমদানি java.util.concurrent.TimeUnit আমদানি org.openqa.selenium.By আমদানি org.openqa.selenium.ey আমদানি পাবলিক ক্লাস অ্যাকশনস {পাবলিক স্ট্যাটিক ওয়েবড্রাইভার ড্রাইভার পাবলিক স্ট্যাটিক শূন্য ওপেন ব্রোজার () {System.setProperty ('ওয়েবড্রাইভার.ক্রোম.ড্রাইভার'), সি: ইউজার্সবার্ডডাউনলোডসক্রোমড্রাইভার.এক্সি) ড্রাইভার = নতুন ক্রোমড্রাইভার ()} পাবলিক স্ট্যাটিক শূন্য নেভিগেট () .manage ()। সময়সীমা ()। স্পষ্টতই ওয়েট (10, টাইমউনিট.এসইএনএনডিএস) ড্রাইভার.কেট ('http://newtours.demoaut.com')} পাবলিক স্ট্যাটিক শূন্যপদ ইনপুট_ ব্যবহারকারীর নাম ()। ড্রাইভার.ফাইন্ড এলিমেন্ট (বাই.নেম (' ইউজারনেম '))। সেন্ডকি (' পারদ ')} পাবলিক স্ট্যাটিক শূন্য ইনপুটপ্যাসওয়ার্ড () {ড্রাইভার.ফাইন্ডইলেটমেন্ট (বাই.নেম (' পাসওয়ার্ড '))। সেন্ডকিস (' পারদ ') stat পাবলিক স্ট্যাটিক শূন্য ক্লিক_লোগিন () {ড্রাইভার.ফাইন্ডএলিমেন্ট (বাই.নেম ('লগইন')) ক্লিক করুন ()} @ সর্বস্তরের সর্বজনীন স্ট্যাটিক শূন্যতা যাচাই_লগিন () ring স্ট্রিং পেজ টাইটেল = ড্রাইভার.getTitle () Assert.assertEquals (পেজ টাইটেল, 'একটি ফ্লাইট সন্ধান করুন: বুধ ভ্রমণ) : ')} পাবলিক স্ট্যাটিক অকার্যকর ক্লোজব্রাউজার () {ড্রাইভার.কিউইট ()}}

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

ক্লাস ফাইল পদ্ধতি উদ্দীপনা, এটি।

প্যাকেজ কীওয়ার্ডড্রাইভেন পাবলিক ক্লাসের ড্রাইভারস্ক্রিপ্ট {পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) ব্যতিক্রম ছুঁড়ে মারছে {// এক্সেল ফাইলের স্ট্রিং এসপ্যাথ = 'সি'র নাম সহ এক্সেল ফাইলের পথ ঘোষণা করা: ইউজারওয়ার্ড ওয়ার্কস্পেসসেলেনিয়াম ফ্রেমওয়ার্কস ডিওডাটাএজাইন.এক্সলসেক্স // এখানে এক্সেল ফাইলের সাথে সংযোগ স্থাপনের জন্য আমরা এক্সেল পাথ এবং শিটনামটি অতিক্রম করে যাচ্ছি ReadExcelData.setExcelFile (sPath, 'Sheet1') // এখনি জন্য হার্ড কোডিং মানগুলি এক্সেল সারি এবং কলামগুলির জন্য ব্যবহৃত হয় // হার্ড কোডিং মানগুলি এক্সেল সারি এবং এখনের জন্য কলাম // পরবর্তী অধ্যায়গুলিতে আমরা এই হার্ড কোডিং মানগুলিকে ভেরিয়েবলগুলির সাথে প্রতিস্থাপন করব // এটি কলাম 3 (অ্যাকশন কীওয়ার্ড) এর মানগুলি পড়ার জন্য লুপটি (ইন আইআরও = 1 আইরও) জন্য সারিতে থাকবে<=7iRow++) { String sActions = ReadExcelData.getCellData(iRow, 1) //Comparing the value of Excel cell with all the keywords in the 'Actions' class if(sActions.equals('openBrowser')) { //This will execute if the excel cell value is 'openBrowser' //Action Keyword is called here to perform action Actions.openBrowser() } else if(sActions.equals('navigate')) { Actions.navigate() } else if(sActions.equals('input_Username')) { Actions.input_Username() } else if(sActions.equals('input_Password')) { Actions.input_Password() } else if(sActions.equals('click_Login')) { Actions.click_Login() } else if(sActions.equals('verify_Login')) { Actions.verify_login() } else if(sActions.equals('closeBrowser')) { Actions.closeBrowser() } } } } 

এবং ক্লাস ফাইল যা এক্সেল মানগুলি পড়ছে এটি হ'ল।

প্যাকেজ কীওয়ার্ডড্রাইভেন আমদানি java.io.FileInputStream আমদানি org.apache.poi.xssf.usermodel.XSSFSheet আমদানি org.apache.poi.xssf.usermodel.XSSFWorkbook আমদানি org.apache.poi.xssf.usermodel.XSSFCll স্ট্যাটাস পাবলিক ক্লাস পড়ুনএক্সএসএফসিএল স্ট্যাটাস স্টেট এক্সএসএসএফএসশিট এক্সেলডাব্লিজিট প্রাইভেট স্ট্যাটিক এক্সএসএসএফ ওয়ার্কবুক এক্সেলসবুক প্রাইভেট স্ট্যাটিক এক্সএসএসএফসিএল সেল // এই পদ্ধতিটি ফাইলের পথ নির্ধারণ করা এবং এক্সেল ফাইলটি // এই পদ্ধতিতে পাস করার জন্য এক্সেল পাথ এবং শিটনামটি পাবলিক স্ট্যাটিক শূন্যতম সেটএক্সেলফিল (স্ট্রিং পাথ, স্ট্রিং শিটনাম) ছোঁড়ে ব্যতিক্রম {ফাইলআইপুটপ্রবাহ এক্সেলফিল = নতুন ফাইলআইপুটপ্রবাহ (পাথ) এক্সেলডবুক = নতুন এক্সএসএফএফওয়ার্কবুক (এক্সেলফিল) এক্সেলডব্লশীট = এক্সেলডবুক.সেটপত্রক (শিটনাম)} // এই পদ্ধতিটি এক্সেল সেল থেকে পরীক্ষার ডেটা পড়তে হবে // এতে আমরা প্যারামিটার / যুক্তিগুলি পার করছি যেমন সারি নুম এবং কর্ন নুম পাবলিক স্ট্যাটিক স্ট্রিং getCellData (int RowNum, int ColNum) ব্যতিক্রম ছুঁড়ে ফেলেছে {সেল = এক্সেলওয়েশিট.সেটর (রোএনম) স্ট্রিং সেলডাটা = সেল.টেট্রিংসেলভ্যালু () সেলডাটা} return

এখন, এই সেলেনিয়াম ফ্রেমওয়ার্ক ব্লগের চূড়ান্ত অংশে চলে আসি, যেখানে আমি আপনাকে হাইব্রিড ফ্রেমওয়ার্ক কীভাবে তৈরি করব তা দেখাব।

হাইব্রিড কাঠামো

হাইব্রিড ফ্রেমওয়ার্ক হ'ল একটি কৌশল যা আমরা ডেটা ড্রাইভ এবং কীওয়ার্ড চালিত সেলেনিয়াম ফ্রেমওয়ার্ক (গুলি) উভয়েরই সর্বোত্তম ব্যবহার করতে পারি। এই ব্লগে উপরে বর্ণিত উদাহরণগুলি ব্যবহার করে আমরা একটি এক্সেল ফাইলে (কীওয়ার্ড চালিত পদ্ধতির) এক্সিকিউট করার পদ্ধতিগুলি সংরক্ষণ করে এবং এই পদ্ধতির নামগুলি পাস করে একটি হাইব্রিড কাঠামো তৈরি করতে পারি জাভা প্রতিবিম্ব ক্লাস (ডেটা চালিত পদ্ধতির) পরিবর্তে একটি তৈরি করুন অন্যথায় যদি 'ড্রাইভারস্ক্রিপ্ট' শ্রেণিতে লুপ করুন।

নীচের কোড স্নিপেটে পরিবর্তিত 'ড্রাইভারস্ক্রিপ্ট' শ্রেণীটি দেখুন।এখানে, একাধিক if / অন্য লুপগুলি ব্যবহারের পরিবর্তে, এক্সেল ফাইল থেকে পদ্ধতির নামগুলি পড়তে ডেটা চালিত পদ্ধতির ব্যবহার করা হয়।

প্যাকেজ হাইব্রিড ফ্রেমওয়ার্ক আমদানি java.lang.reflect.Method পাবলিক ক্লাস ড্রাইভারস্ক্রিপ্ট জাভা {// এটি একটি শ্রেণীর অবজেক্ট, এটি 'পাবলিক স্ট্যাটিক' হিসাবে ঘোষণা করা হয়েছে // যাতে এটি মূল [] পদ্ধতির পাবলিক স্ট্যাটিক অ্যাকশন কর্মের সুযোগের বাইরে ব্যবহার করা যায় কীওয়ার্ড পাবলিক স্ট্যাটিক স্ট্রিং এসএকশনস // এটি প্রতিচ্ছবি শ্রেণীর অবজেক্ট, এটি 'পাবলিক স্ট্যাটিক' হিসাবে ঘোষণা করা হয়েছে // যাতে এটি মূল [] পদ্ধতির পাবলিক স্ট্যাটিক পদ্ধতি পদ্ধতির বাইরে ব্যবহার করা যেতে পারে [] পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আর্কস) ব্যতিক্রম ছোঁড়ে {// এক্সেল ফাইলের স্ট্রিং এসপথের নাম সহ 'এক্সেল ফাইলের পাথ ঘোষণা করা' স্ট্রিং এসপ্যাথ = 'সি: ইউজারস ওয়ার্ড ওয়ার্কসপেসসলেেনিয়াম ফ্রেমওয়ার্কস ডিমডাটাএঙ্গাইন.এক্সলেক্স' // এখানে আমরা এক্সেল ফাইলের সাথে সংযোগের জন্য এক্সেল পাথ এবং শিটনাম পাশ করছি // এই পদ্ধতি পূর্বে ReadExcelData.setExcelFile (sPath, 'Sheet1') তৈরি করা হয়েছিল // হার্ড কোডিং মানগুলি আপাতত এক্সেল সারি এবং কলামগুলির জন্য ব্যবহৃত হয় // পরে, আমরা এই হার্ড কোডিং মানটি আরও দক্ষতার সাথে ব্যবহার করব // এটি পড়ার জন্য লুপ কলামের মান (অ্যাকশন কীওয়ার্ড) সারি সারি দ্বারা // এর অর্থ এই লুপটি পরীক্ষার ধাপগুলি শীটের জন্য পরীক্ষার জন্য বর্ণিত সমস্ত পদক্ষেপগুলি সম্পাদন করবে (int iRow = 1iRow)<=7iRow++) { sActions = ReadExcelData.getCellData(iRow, 1) //A new separate method is created with the name 'execute_Actions' //You will find this method below of the this test //So this statement is doing nothing but calling that piece of code to execute execute_Actions() } } //This method contains the code to perform some action //As it is completely different set of logic, which revolves around the action only, it makes sense to keep it separate from the main driver script //This is to execute test step (Action) private static void execute_Actions() throws Exception { //Here we are instantiating a new object of class 'Actions' actionKeywords = new Actions() //This will load all the methods of the class 'Actions' in it. //It will be like array of method, use the break point here and do the watch method = actionKeywords.getClass().getMethods() //This is a loop which will run for the number of actions in the Action Keyword class //method variable contain all the method and method.length returns the total number of methods for(int i = 0i

ডেটা চালিত, কীওয়ার্ড চালিত ও হাইব্রিড চালিত ফ্রেমওয়ার্কের এই ধারণাটি আরও ভালভাবে বুঝতে, আমি আপনাকে নীচের ভিডিওটি দেখার জন্য অনুরোধ করছি।

জাভা ব্যবহার করে সেলেনিয়াম ফ্রেমওয়ার্ক সেলেনিয়াম টিউটোরিয়াল | সেলেনিয়াম প্রশিক্ষণ অনলাইন

আমি আশা করি এই ব্লগটি আপনার পক্ষে কার্যকর ছিল এবং সেলেনিয়াম কাঠামো কী, কীভাবে এটি উপকারী এবং এই 3 সেলেনিয়াম ফ্রেমওয়ার্কগুলি ব্যবহার করে আপনার কোড কাঠামো কীভাবে তৈরি করবেন সে সম্পর্কে একটি পরিষ্কার ধারণা পেয়েছি। এই সিরিজের আরও ব্লগে থাকুন।

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

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।