উদাহরণ সহ সাইপ্রাসে ধাপে ধাপে পৃষ্ঠা অবজেক্ট মডেল

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

সুচিপত্র:

সাইপ্রেস পেজ অবজেক্ট মডেল
সাইপ্রেস পেজ অবজেক্ট মডেল

পেজ অবজেক্ট মডেল কি?

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

বিবেচনা করুন আমাদের অ্যাপ্লিকেশনে আমাদের একাধিক পৃষ্ঠা রয়েছে যেমন লগইন পৃষ্ঠা, নিবন্ধন পৃষ্ঠা এবং বুক ফ্লাইট পৃষ্ঠা।

  • লগইন পৃষ্ঠায় লগইন কার্যকারিতার সমস্ত ওয়েব উপাদান রয়েছে
  • নিবন্ধন নিবন্ধন প্রক্রিয়ার সমস্ত পদ্ধতি এবং ওয়েব উপাদান রয়েছে
  • বুক ফ্লাইটে ফ্লাইট বুকিং পৃষ্ঠার ওয়েব উপাদান থাকে

TC1, TC2, এবং TC3 নামে তিনটি টেস্ট কেস আছে।

  • TC1 লগইন পরীক্ষার ক্ষেত্রে রয়েছে।
  • TC2 লগইন এবং নিবন্ধন পরীক্ষার ক্ষেত্রে রয়েছে
  • TC3- এ লগইন, রেজিস্ট্রেশন এবং ফ্লাইট বুকিং টেস্ট কেস রয়েছে
POM ছাড়া উদাহরণ

এখন, লগইন পৃষ্ঠা টিসি 1 এর সাথে ইন্টারঅ্যাক্ট করে।

রেজিস্ট্রেশন পৃষ্ঠা টিসি 1 এবং টিসি 2 এর সাথে যোগাযোগ করতে হবে, এবং

ফ্লাইট বুকিং পৃষ্ঠা টিসি 1, টিসি 2 এবং টিসি 3 এর সাথে যোগাযোগ করতে হবে

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

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

পৃষ্ঠা অবজেক্ট মডেল ফ্রেমওয়ার্ক আর্কিটেকচার

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

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

পৃষ্ঠা অবজেক্ট মডেল

সাইপ্রাসে পেজ অবজেক্ট মডেল ব্যবহারের সুবিধা

  1. পদ্ধতিগুলো হলো পুনর্ব্যবহারযোগ্য পুরো প্রকল্প জুড়ে এবং যখন প্রকল্পটি বড় হয় তখন বজায় রাখা সহজ। কোডের লাইন হয়ে যায় কম সুপাঠ্য এবং অপ্টিমাইজ করা।
  2. পৃষ্ঠা অবজেক্ট প্যাটার্ন প্রস্তাব করে যে আমরা অপারেশন এবং প্রবাহ যেটা থেকে আমরা UI তে পারফর্ম করছি প্রতিপাদন পদক্ষেপ যখন আমরা POM প্যাটার্ন অনুসরণ করি, তখন আমাদের লেখার প্রবণতা থাকে পরিষ্কার এবং সহজেই বোধগম্য কোড.
  3. পেজ অবজেক্ট মডেলের সাথে, বস্তু এবং পরীক্ষার ক্ষেত্রে একে অপরের থেকে স্বাধীন। আমরা প্রজেক্ট জুড়ে যে কোন জায়গায় বস্তুকে কল করতে পারি। এইভাবে, যদি আমরা বিভিন্ন সরঞ্জাম যেমন TestNG/JUnit ব্যবহার করে থাকি কার্যকরী পরীক্ষার জন্য বা শসা গ্রহণযোগ্যতা পরীক্ষার জন্য, তাহলে এটি সহজেই প্রবেশযোগ্য.

উদাহরণ সহ ধাপে ধাপে পৃষ্ঠা অবজেক্ট মডেল সাইপ্রেস

এই বিভাগটি বুঝতে পারবে কিভাবে একটি পেজ অবজেক্ট মডেল তৈরি করতে হয় রিয়েল-টাইম উদাহরণ সহ সাইপ্রেস যা আমরা প্রকল্পে বাস্তবায়ন করতে পারি। আমরা একটি পেজ অবজেক্ট মডেল তৈরির জন্য প্রাথমিক সেটআপ এবং ধাপে ধাপে প্রক্রিয়াটি বুঝতে পারব।

আসুন সেই দৃশ্যে আলোচনা করি যার উপর আমরা এই উদাহরণে ফাংশনগুলি লিখব।

  1. নেভিগেট করুন https://admin-demo.nopcommerce.com/ ওয়েবসাইট
  2. বৈধ ব্যবহারকারীর নাম এবং পাসওয়ার্ড লিখুন
  3. লগইন বাটনে ক্লিক করুন
  4. ইউআরএল এর সাথে যুক্ত কিনা তা যাচাই করুন /admin লগইন করার পর

আমরা দুটি ফাইল তৈরি করব - একটি PageObject ফাইল এবং একটি উদাহরণ ফাইল এই উদাহরণের জন্য। চলো আমরা শুরু করি!

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

PageObject নামে নতুন ফোল্ডার

ধাপ 2: নামে একটি ফাইল তৈরি করুন LoginPage.js অধীনে পেজঅবজেক্ট ফোল্ডার LoginPage.js এ, আমরা লগইন কার্যকারিতা জড়িত পদ্ধতিগুলি লিখব।

PageObject ফোল্ডারের অধীনে LoginPage.js সৃষ্টি

ধাপ 3: আসুন আমাদের প্রথম পরীক্ষা পদ্ধতি লিখতে শুরু করি LoginPage.js ফাইল আমাদের প্রথমে একটি ক্লাস তৈরি করতে হবে যা আমরা আমাদের স্পেক ফাইলে রপ্তানি করব। আমরা আমাদের ক্লাসকে ডাকব লগইন পৃষ্ঠায়

ক্লাস লগইন পৃষ্ঠা { }

আমাদের সিউডোকোডের উপর ভিত্তি করে, আমাদের প্রথম পদক্ষেপ হল URL- এ নেভিগেট করা। আমরা আমাদের পদ্ধতি হিসাবে কল করব navigate()। আমাদের নেভিগেট পদ্ধতির ভিতরে, আমরা যোগ করব cy.visit() সাইপ্রাস থেকে ফাংশন।

 নেভিগেট() { cy.visit('https://admin-demo.nopcommerce.com/') }

নেভিগেট পদ্ধতি

ধাপ 4: এখন, আমাদের আমাদের ইমেল ক্ষেত্রে ব্যবহারকারীর নাম লিখতে হবে। আমরা আমাদের পদ্ধতির নাম দেব ইমেইল প্রদান করুন()। প্রথমত, আমাদের ইমেল ক্ষেত্রের লোকেটার পাওয়া উচিত এবং তাদের মাধ্যমে অ্যাক্সেস করা উচিত cy.get() কমান্ড তারপর আমরা ব্যবহার করে ক্ষেত্র পরিষ্কার করব clear() কমান্ড এবং ব্যবহার করে ব্যবহারকারীর নাম যোগ করুন type() কমান্ড আমাদের পদ্ধতিতে, আমরা একটি প্যারামিটার পাস করি ব্যবহারকারীর নাম স্পেক ফাইলে মান পাস করতে। এইভাবে, আমরা যদি এই পদ্ধতিটি অ্যাক্সেস করতে জেনেরিক রাখি যদি একটি ভিন্ন ইমেল আইডি প্রয়োজন হয়।

এন্টার ইমেইল(ব্যবহারকারীর নাম) { cy.get('[id=Email]').clear() cy.get('[id=Email]').type(username); এটা ফেরত দাও}

এর পরিবর্তে cy.get() উপরের কোডে দুবার কমান্ড করুন, আমরা কেবল তাদের সাথে লুপ করতে পারি ডট অপারেটর।

  এন্টার ইমেইল(ব্যবহারকারীর নাম) { cy.get('[id=Email]') .clear() .type(username); এটা ফেরত দাও}

enterEmail পদ্ধতি

আপনি হয়তো লক্ষ্য করেছেন return this লাইন 9 এ। এই ইঙ্গিত দেয় যে ইমেইল প্রদান করুন পদ্ধতি বিশেষের অন্তর্গত লগইন পৃষ্ঠায় শ্রেণী মূলত, এই শ্রেণীর প্রতিনিধিত্ব করে।

ধাপ 5: আমাদের enterEmail পদ্ধতির অনুরূপ পাসওয়ার্ডের জন্য একটি পদ্ধতি তৈরি করতে হবে। আমরা আমাদের পাসওয়ার্ড পদ্ধতি হিসাবে কল করব enterPassword()। প্রাথমিকভাবে, আমরা পাসওয়ার্ডের জন্য লোকেটার পাব, ক্ষেত্রটি সাফ করব এবং ইনপুট মান লিখব। আমরা আমাদের পদ্ধতিতে একটি পরামিতি পাস করব যাকে বলা হয় pswd এবং প্রবেশাধিকার type() কমান্ড।

enterPassword(pswd) { cy.get('[id=Password]').clear().type(pswd) এটি ফেরত দিন }
enterPassword পদ্ধতি

ধাপ 6: আমাদের শেষ পদ্ধতি হবে লগইন বাটনে ক্লিক করা। আমরা আমাদের পদ্ধতির নাম দেব submit()। আমরা লোকেটার পাব এবং বোতামটি ক্লিক করে click() সাইপ্রাস থেকে পদ্ধতি।

 সাবমিট() { cy.get('[type=submit]').click() }

জমা দেওয়ার পদ্ধতি

ধাপ 7: এখন, আমাদের স্পেস ফাইল জুড়ে এই ক্লাসটি ব্যবহার করতে আমাদের রপ্তানি করতে হবে। এর জন্য, আমরা আমাদের ক্লাসের বাইরে শুধু একটি লাইন যোগ করি, এবং আমরা সহজেই আমাদের স্পেক ফাইলে এটি অ্যাক্সেস করতে পারি।

ডিফল্ট লগইন পৃষ্ঠা রপ্তানি করুন

এক্সপোর্ট কমান্ড

হুররে! আমরা আমাদের প্রকল্পের জন্য একটি পৃষ্ঠা অবজেক্ট ফাইল তৈরি করেছি। এটা বেশ সহজ এবং সহজ ছিল!

স্পেক ফাইলে পেজ অবজেক্ট অ্যাক্সেস করা

এখন আমাদের টেস্ট কেস ফাইলে যাওয়া যাক। আমাদের ইন্টিগ্রেশন ফোল্ডারে একটি স্পেক ফাইল তৈরি করতে হবে। আমরা আমাদের স্পেক ফাইল কল করব POMDemo.spec.js.

POMDemo.spec.js ফাইল তৈরি

ধাপ 1: LoginPage.js ফাইলে আমাদের পদ্ধতিগুলি অ্যাক্সেস করতে, আমাদের অবশ্যই আমদানি সেগুলো আমাদের স্পেক ফাইলে। আমরা আমদানি বিবৃতি ব্যবহার করে আমদানি করি। আমাদের ব্যবহার করে LoginPage.js ফাইলে নেভিগেট করা উচিত ../

আমাদের ক্ষেত্রে, পথ হল ../integration/PageObject/LoginPage। সুতরাং, আমদানি বিবৃতি নীচের মত কিছু দেখতে হবে।

"../integration/PageObject/LoginPage" থেকে লগইনপৃষ্ঠা আমদানি করুন

ধাপ 2: যেহেতু আমরা মোচা ব্যবহার করি, তাই আমরা আমাদের টেস্ট কেস ভিতরে লিখব describe() এবং it() ব্লক বর্ণনা () একটি প্রতিনিধিত্ব করে পরীক্ষা স্যুট, এবং এটি () একটি প্রতিনিধিত্ব করে পরীক্ষা ক্ষেত্রে। উভয় ব্লক একটি ফাংশন এবং একটি স্ট্রিং প্যারামিটার গ্রহণ করে যার মধ্যে রয়েছে বিবরণ পরীক্ষার

বর্ণনা করুন ("সাইপ্রেস POM টেস্ট স্যুট", ফাংশন () { })

ব্লকের বর্ণনা দাও

বর্ণনা ব্লকের ভিতরে, আমরা আমাদের লিখব it() বৈধ শংসাপত্র সহ লগইন হিসাবে বর্ণনা যোগ করে।

এটি("বৈধ শংসাপত্রের সাথে লগইন করুন", ফাংশন () { })

এটা ব্লক

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

                                               const login = new LoginPage();
একটি ক্লাসের দৃষ্টান্ত

বিঃদ্রঃ: ভেরিয়েবলের সাথে login, আমরা পৃষ্ঠা অবজেক্ট ক্লাস থেকে পদ্ধতিগুলি অ্যাক্সেস করতে পারি। যখন আমরা টাইপ করা শুরু করি login। , vscode LoginPage.js ফাইলে উপলব্ধ সমস্ত পদ্ধতির পরামর্শ তালিকাভুক্ত করবে। এটি আমাদের যাচাই করতে সাহায্য করে যে আমরা আমাদের ক্লাস সঠিকভাবে রপ্তানি ও আমদানি করেছি!

ধাপ 4: আসুন আমাদেরকে কল করি navigate() ইউআরএল দেখার পদ্ধতি। এটি আমাদের পরীক্ষার ক্ষেত্রে প্রথম পদক্ষেপ।

/// "./PageObject/LoginPage" থেকে লগইনপেজ আমদানি করুন বর্ণনা করুন("সাইপ্রেস POM টেস্ট স্যুট", ফাংশন () { এটি("বৈধ শংসাপত্রের সাথে লগইন করুন", ফাংশন () { const login = new LoginPage(); login.navigate(); });});

ধাপ 5: আমাদের ইমেল ক্ষেত্রে ব্যবহারকারীর নাম লিখতে হবে। আমরা অ্যাক্সেস করি enterEmail() সাথে লগইন অবজেক্ট। enterEmail() পদ্ধতি একটি প্যারামিটার গ্রহণ করে ব্যবহারকারীর নাম। সুতরাং আমাদের ব্যবহারকারীর নামের মান a হিসাবে পাস করা উচিত স্ট্রিং আমাদের স্পেক ফাইলে

/// "./PageObject/LoginPage" থেকে লগইনপেজ আমদানি করুন বর্ণনা করুন("সাইপ্রেস POM টেস্ট স্যুট", ফাংশন () { এটি("বৈধ শংসাপত্রের সাথে লগইন করুন", ফাংশন () { const login = new LoginPage(); login.navigate(); login.enterEmail('admin@yourstore.com'); }) })

ধাপ 6: ধাপ 5 এর অনুরূপ, আমাদের আমাদের কল করা উচিত enterPassword() স্ট্রিং এ প্যারামিটার হিসেবে পাসওয়ার্ড পাস করার পদ্ধতি।

/// "./PageObject/LoginPage" থেকে লগইনপেজ আমদানি করুন বর্ণনা করুন("সাইপ্রেস POM টেস্ট স্যুট", ফাংশন () { এটি("বৈধ শংসাপত্রের সাথে লগইন করুন", ফাংশন () { const login = new LoginPage(); login.navigate(); login.enterEmail('admin@yourstore.com'); login.enterPassword('admin'); }) })

ধাপ 7: পরবর্তী, আমাদের লগইন বোতামে ক্লিক করতে হবে। আমরা পদ্ধতি কল করব submit() আমাদের পৃষ্ঠা অবজেক্ট ফাইল থেকে।

/// "./PageObject/LoginPage" থেকে লগইনপেজ আমদানি করুন বর্ণনা করুন("সাইপ্রেস POM টেস্ট স্যুট", ফাংশন () { এটি("বৈধ শংসাপত্রের সাথে লগইন করুন", ফাংশন () { const login = new LoginPage(); login.navigate(); login.enterEmail('admin@yourstore.com'); login.enterPassword('admin'); login.submit(); }) })

ধাপ 8: লগ ইন করার পরে, আমাদের URL টি দৃert় করতে হবে। আমরা ইউআরএল কিনা তা যাচাই করব সমান লগইন করার পর URL- এ। দৃer়তার জন্য, আমরা ব্যবহার করব চা অ্যাসারশন লাইব্রেরি, যা সাইপ্রেস দিয়ে অন্তর্নির্মিত।

/// "./PageObject/LoginPage" থেকে লগইনপেজ আমদানি করুন বর্ণনা করুন("সাইপ্রেস POM টেস্ট স্যুট", ফাংশন () { এটি("বৈধ শংসাপত্রের সাথে লগইন করুন", ফাংশন () { const login = new LoginPage(); login.navigate(); login.enterEmail('admin@yourstore.com'); login.enterPassword('admin'); login.submit(); cy.url().should('be.equal', 'https://admin-demo) .nopcommerce.com/admin/') }) })

লগইন টেস্ট কেস

উপরের ছবিটি লগইন পরীক্ষার ক্ষেত্রে প্রতিনিধিত্ব করে। আমরা খুব কম সহজ ধাপে একটি পেজ অবজেক্ট মডেল দিয়ে একটি টেস্ট কেস লিখতে পেরেছি। এখন আসুন আমরা টেস্ট কেস চালাই এবং ফলাফল দেখি।

আমরা সাইপ্রেস টেস্ট রানার খুলব এবং স্পেক ফাইলে ক্লিক করে আমাদের টেস্ট কেস চালাব। এটা যাচাই কর প্রবন্ধ কিভাবে সাইপ্রেস টেস্ট রানার খুলবেন।

সাইপ্রাসে পরীক্ষার ফলাফল

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

আমরা আরেকটি প্যাটার্ন দেখব যা আমরা প্রকল্পে ব্যবহার করতে পারি। এই পদ্ধতিটি পুরোপুরি সূক্ষ্মভাবে কাজ করবে।

এই প্রকারে, আমরা আমাদের পদ্ধতিতে শুধুমাত্র লোকেটার ফাংশন ফিরিয়ে দেব এবং পরীক্ষা ফাইলে কর্ম সম্পাদন করব। আমরা উপরে দেখেছি একই দৃশ্যের জন্য কোড লিখব।

পৃষ্ঠা বস্তু - LoginPage.js

ক্লাস লগইনপেজ { নেভিগেট() { cy.visit('https://admin-demo.nopcommerce.com/') } enterEmail() { return cy.get('[id=Email]') } enterPassword() { ফেরত cy.get('[id=Password]') } submit() { return cy.get('[type=submit]') } } ডিফল্ট লগইনপেজ রপ্তানি করুন

আমরা উপরে দেখেছি, আমরা আমাদের ফাংশনের ভিতরে শুধুমাত্র লোকেটার লিখছি এবং সেগুলি ফিরিয়ে দিচ্ছি। রিটার্ন প্রতিনিধিত্ব করে যে নির্দিষ্ট পদ্ধতিটি অন্তর্গত ক্লাস LoginPage.js। আমরা আমাদের পদ্ধতিতে কোন কর্ম যোগ করছি না।

পৃষ্ঠা অবজেক্ট ফাইলের উদাহরণ

স্পেক ফাইল - POMDemo.spec.js

আমরা spec ফাইলের পদ্ধতিগুলি অ্যাক্সেস করার উদাহরণটি দেখব।

/// "./PageObject/LoginPage" থেকে লগইনপেজ আমদানি করুন বর্ণনা করুন("সাইপ্রেস POM টেস্ট স্যুট", ফাংশন () { এটি("বৈধ শংসাপত্রের সাথে লগইন করুন", ফাংশন () { const login = new LoginPage(); login.navigate(); login.enterEmail().clear() login.enterEmail().type('admin@yourstore.com'); login.enterPassword().clear() login.enterPassword().type('admin'); লগইন। submit().click(); cy.url().should('be.equal', 'https://admin-demo.nopcommerce.com/admin/') }); });

স্পেক ফাইলের উদাহরণ

এখানে, আমরা PageObject ফাইল থেকে পদ্ধতিটি কল করি এবং টেস্ট কেস অ্যাকশন করি। তাই প্রথমে, আমরা আমাদের রেফারেন্স ভেরিয়েবল কল করছি লগইন এবং তারপর পদ্ধতি সঙ্গে এটি যোগ করা enterEmail() এবং পরিশেষে কর্ম যোগ করা আদর্শ। আমাদের মাঝে type(), আমরা ব্যবহারকারীর নাম পাস করছি মূল্য.

পরীক্ষার ফলাফল

আপনি দেখতে পাচ্ছেন, সমস্ত আদেশ কার্যকর করা হয়েছে, এবং পরীক্ষার কেসটি পাস হয়েছে!

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

সাইপ্রাসে পেজ অবজেক্ট মডেলের টেস্ট ডেটা সোর্স হিসেবে ফিক্সচার কিভাবে ব্যবহার করবেন?

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

আমরা আগে যেমনটা আলোচনা করেছিলাম, ফিক্সচার একটি JSON ফাইল বা এক্সেল ফাইলে ডেটা সঞ্চয় করতে সাহায্য করে, অথবা Apache POI এর মতো একটি বাহ্যিক লাইব্রেরিতে। আমরা একটি ভেরিয়েবল তৈরি করে এই ডেটা ব্যবহার করব এবং সেগুলি আমাদের স্পেক ফাইলে অ্যাক্সেস করব। আসুন একটি উদাহরণ দিয়ে বুঝতে পারি।

সাইপ্রেস একটি ফোল্ডার সরবরাহ করে যার নাম "ফিক্সচার। ” আমরা একটি তৈরি করব তাদেরকে JSON ফাইল বলা হয় পরিচয়পত্র.JSON 'ফিক্সচার' ফোল্ডারের অধীনে।

JSON ফাইল তৈরি

আসুন আমাদের ব্যবহারকারীর নাম, পাসওয়ার্ড এবং ইউআরএল মানগুলি ঘোষণা করি যা আমাদের JSON ফর্ম্যাটে যাচাই করতে হবে credentials.json ফাইল.

{ "ব্যবহারকারীর নাম" : "admin@yourstore.com", "password" : "admin", "adminUrl" : "https://admin-demo.nopcommerce.com/admin/" }

Credentials.json ফাইলে মান পাস করা

পরীক্ষার কেস ফাইলে JSON ফাইল থেকে মানগুলি অ্যাক্সেস করা

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

বর্ণনা কর

cy.fixture ('প্রমাণপত্রাদি')। তারপর (ফাংশন (testdata) {this.testdata = testdata}) - এই লাইনটি প্রতিনিধিত্ব করে যে আমরা পাস করছি credentials.json আমাদের প্যারামিটার হিসাবে ফাইল cy.fixture () কমান্ড এখানে, এটি একটি JSON ফাইল কিনা তা আমাদের পাস করার প্রয়োজন নেই। শুধু ফাইলের নাম একাই পাস করুন। পরে, আমরা পাস টেস্টডাটা ফাংশনে একটি প্যারামিটার হিসাবে এবং অ্যাক্সেস করুন টেস্টডাটা পরিবর্তনশীল ব্যবহার করে এই.

/// "./PageObject/LoginPage" থেকে লগইনপেজ আমদানি করুন বর্ণনা করুন("সাইপ্রেস POM টেস্ট স্যুট", ফাংশন () { আগে(ফাংশন () { cy.fixture('প্রমাণপত্র')। তারপরে(ফাংশন (টেস্টডেটা) { this.testdata = testdata }) }) এটি("বৈধ প্রমাণপত্রের সাথে লগইন করুন", ফাংশন () { const login = new LoginPage(); login.navigate(); login.enterEmail(this.testdata.username) login.enterPassword(this.testdata.password ) login.submit(); cy.url().should('be.equal', this.testdata.adminUrl) }); });

login.enterEmail (this.testdata.username) - এটি credentials.json ফাইল থেকে ইউজারনেম মান আনবে এবং ইমেইল ফিল্ডে পূরণ করবে।

login.enterPassword (this.testdata.password) - এটি credentials.json ফাইল থেকে পাসওয়ার্ড মান আনবে এবং পাসওয়ার্ড ফিল্ডে পূরণ করবে

cy.url ()। উচিত ('be.equal', this.testdata.adminUrl) - এটি credentials.json ফাইল থেকে adminUrl পাবে এবং দাবীতে যাচাই করবে

JSON ফাইল থেকে স্পেক ফাইলে ডেটা পাস করা

এখন, আসুন ফলাফলের জন্য টেস্ট কেস চালাই।

পরীক্ষার ফলাফল

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

সচরাচর জিজ্ঞাস্য

সাইপ্রাস কি পৃষ্ঠা অবজেক্ট মডেল সমর্থন করে?

অবশ্যই. সাইপ্রেস সংগ্রহস্থলে পৃষ্ঠা এবং বস্তুর সাথে খেলার সমস্ত নমনীয়তা দেয়। এটি বাস্তবায়ন করা সহজ।

উপরের উদাহরণ থেকে কোন পৃষ্ঠা অবজেক্ট মডেল ব্যবহার করা উচিত?

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

সাইপ্রাসে পেজ অবজেক্ট মডেলে কেন আমি ফিক্সচার ব্যবহার করব?

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

উপরে যান