পরীক্ষার অটোমেশনের সেরা অনুশীলনগুলির মধ্যে একটি হল পরীক্ষার ফাইলগুলি থেকে পরীক্ষার ডেটা আলাদা করা। পরীক্ষার কাঠামো ডিজাইন করার সময় এই দিকটি প্রাথমিক প্রয়োজনীয়তার একটি। সাইপ্রেস পরীক্ষার ডেটা আলাদা করার ক্ষমতা আমাদের সাহায্য করে সরলবর্গীয় চিরহরিৎ বৃক্ষবিশেষ রাজধানী. এই বিষয়ে, আমরা সম্পর্কে আলোচনা করা হবে হ্যান্ড-অন বাস্তবায়ন এবং বাস্তব সময়ের উদাহরণ সহ সাইপ্রেস ফিক্সচার
সুচিপত্র
- সাইপ্রেস একটি ফিক্সচার কি?
- পরীক্ষায় সাইপ্রেস ফিক্সচার কীভাবে ব্যবহার করবেন?
- সাইপ্রেসের ফিক্সচার থেকে ডেটা কীভাবে পড়তে হয়?
- ফিক্সচার ফাইল থেকে টেস্ট ফাইলে মানগুলি অ্যাক্সেস করা
- সাইপ্রেস একাধিক ফিক্সচার
সাইপ্রেস একটি ফিক্সচার কি?
সাইপ্রেস ফিক্সচার ব্যবহার করা যেতে পারে বাহ্যিক ফাইল থেকে তথ্য উৎস. সাইপ্রেসের ফিক্সচার আপনাকে সাহায্য করে ফাইল থেকে পড়ুন বা লিখুন. টেস্ট অটোমেশনের একটি জনপ্রিয় ফ্রেমওয়ার্ক হল ডেটা-চালিত ফ্রেমওয়ার্ক যেখানে আমরা টেস্ট ফাইল থেকে ডেটা আলাদা করি। আমরা সাধারণত এক্সটার্নাল ফাইলে ডেটা রাখি এবং এক্সটার্নাল লাইব্রেরি ব্যবহার করে পড়ি। সাইপ্রেস আমাদের ফাইল থেকে ডেটা পড়ার জন্য একই বৈশিষ্ট্য প্রদান করে।
সাইপ্রেস আমাদের নামে একটি ফোল্ডার প্রদান করে ফিক্সচার, যেখানে আমরা JSON ফাইল তৈরি করতে পারি এবং এটি থেকে ডেটা পড়তে পারি যেখানে আমরা সেই ফাইলগুলিকে একাধিক টেস্ট ফাইলে পড়তে পারি। আমরা ডেটা হিসাবে সংরক্ষণ করব প্রকৃত মূল্য জোড়া এবং তাদের অ্যাক্সেস.
টেস্টে সাইপ্রেস ফিক্সচার কিভাবে ব্যবহার করবেন?
আমরা নীচে দেওয়া নিম্নলিখিত সিনট্যাক্সের মাধ্যমে সাইপ্রেস ফিক্সচারগুলি অ্যাক্সেস করতে পারি
cy.fixture(filePath)
cy.fixture(filePath, encoding)
cy.fixture(filePath, options)
cy.fixture(filePath, encoding, options)
আমরা ফিক্সচারে পাস করা যেতে পারে যে পরামিতি বুঝতে হবে
ফাইল পাথ - যেখানে আপনি আপনার পরীক্ষার তথ্য সংরক্ষণ করেছেন সেই পথ
এনকোডিং - একটি ফাইল ব্যবহার করার সময় ব্যবহৃত এনকোডিং। কিছু এনকোডিং হল ascii, base64, hex, binary ইত্যাদি
অপশন - বিকল্পগুলিতে, আমরা পাস করতে পারি সময় শেষ প্রতিক্রিয়া এটি সমাধান করার সময়সীমা নির্দিষ্ট করা cy.fixture ()
সাইপ্রেসের ফিক্সচার থেকে ডেটা কীভাবে পড়তে হয়?
আমরা এর অধীনে একটি ফাইলে পরীক্ষার ডেটা সংজ্ঞায়িত করব চোকান ফোল্ডার আমরা সাইপ্রেস ফিক্সচার ব্যবহার করে পরীক্ষার স্ক্রিপ্টে JSON ফাইল থেকে পরীক্ষার ডেটা অ্যাক্সেস করব।
এখন, আসুন একটি বোঝা যাক সাইপ্রেসের উদাহরণ ফিক্সচার আমরা ইউজারনেম এবং পাসওয়ার্ড ব্যবহার করে ইউআরএলে লগ ইন করব। সুতরাং আসুন একটি ফাইলে ব্যবহারকারীর নাম এবং পাসওয়ার্ডের মান সংরক্ষণ করি।
নামে একটি ফাইল তৈরি করা যাক credentials.json ফিক্সচার ফোল্ডারের অধীনে। আমরা JSON বিন্যাসে ভেরিয়েবলগুলি সংজ্ঞায়িত করব।
{
"username" : "admin@yourstore.com",
"password" : "admin",
"adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}

ফিক্সচার ফাইল থেকে টেস্ট ফাইলে মানগুলি অ্যাক্সেস করা
যেহেতু আমরা আমাদের JSON মানগুলিকে সংজ্ঞায়িত করেছি৷ credentials.json ফাইল, আমরা সাইপ্রেস ফিক্সচার ব্যবহার করে আমাদের টেস্ট ফাইলে কীভাবে সেগুলি অ্যাক্সেস করতে পারি তা আমরা দেখব।
আমরা ব্যবহার করে ফিক্সচার ডেটা অ্যাক্সেস করব this
আগের হুকের মধ্যে কীওয়ার্ড
বর্ণনা কর
উপরের উদাহরণে, আমরা এর মাধ্যমে আমাদের JSON ফাইল অ্যাক্সেস করছি cy.fixture('প্রমাণপত্র'). যেহেতু আমাদের JSON ফাইলের নাম credentials.json, আমরা cy.fixture() এ ফাইলের নাম পাস করা হচ্ছে. এখন আমরা উপনাম ধারণা ব্যবহার করছি এবং আমাদের ডেটা সংজ্ঞায়িত করছি টেস্টডাটা. পরিবর্তনশীল সঙ্গে টেস্টডাটা, আমরা আমাদের পরীক্ষা ফাইলে ব্যবহারকারীর নাম এবং পাসওয়ার্ডের মান ব্যবহার করতে পারি
বর্ণনা কর ", ফাংশন () { cy.visit(this.testdata.adminUrl) cy.get('[id=Email]').clear() cy.get('[id=Email]').type(this.testdata .username) cy.get('[id=Password]').clear() cy.get('[id=Password]').type(this.testdata.password) cy.get('[type=submit] ').ক্লিক(); cy.url().should('be.equal', this.testdata.adminUrl) }); });
আপনি উপরে দেখতে পারেন, ইন .type()
আমরা আমাদের credentials.json ফাইল থেকে মান পাস করছি this.testdata.username. একইভাবে, পাসওয়ার্ডের জন্য আমরা ব্যবহার করে মান অ্যাক্সেস করছি this.testdata.password. ইউআরএল-এর জন্য, আমরা ব্যবহারকারীর নাম এবং পাসওয়ার্ডের মতোই ব্যবহার করছি।
যখন আমরা টেস্ট কেস চালাই, তখন আপনি দেখতে পাবেন মানটি ড্যাশবোর্ডে মুদ্রিত হচ্ছে। এইভাবে, আমরা সাইপ্রেস ফিক্সচার ব্যবহার করে আমাদের টেস্ট কেসটি কার্যকর করেছি

সাইপ্রেস মাল্টিপল ফিক্সচার
এই বিভাগে, আমরা বুঝতে পারব কিভাবে সাইপ্রেস ফিক্সচার একাধিক ফিক্সচার ফাইলের সাথে ব্যবহার করতে হয়।
যদি আমরা একই পরীক্ষার ফাইলের জন্য বিভিন্ন ফিক্সচার ডেটা ব্যবহার করতে চাই, উদাহরণস্বরূপ, লগইন পৃষ্ঠার জন্য আমাদের যাচাই করার জন্য দুটি শংসাপত্রের সেট আছে, আমরা কীভাবে ফাইলগুলি অ্যাক্সেস করতে পারি?
এক উপায় হল একাধিক লেখা it ব্লক যা একই কোড বারবার প্রতিলিপি করবে। অন্য উপায়, আমরা ব্যবহার করতে পারেন সাইপ্রেস ফিক্সচার বিভিন্ন পরীক্ষা অ্যাক্সেস করতে spec ফাইলে ডেটা। আসুন দেখি কিভাবে আমরা সাইপ্রেস ফিক্সচার ব্যবহার করে তা অর্জন করতে পারি
আমরা ইতিমধ্যে একটি ফিক্সচার নামক ফাইল আছে credentials.json.
{
"username" : "admin@yourstore.com",
"password" : "admin",
"adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
এখন আরেকটি ফিক্সচার ফাইল তৈরি করা যাক userData.json যেখানে আমরা বিভিন্ন অবৈধ ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহার করব।
{
"username" : "user@yourstore.com",
"password" : "user",
"adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
এখন দেখা যাক কিভাবে আমরা আমাদের টেস্ট ফাইলে দুটি ভিন্ন ডেটা অ্যাক্সেস করতে পারি।
আমরা দুটি ভিন্ন ফিক্সচার ফাইল ব্যবহার করার শর্ত ব্যবহার করে একই পরীক্ষা ফাইল রিফ্যাক্টর করব।
const testValueFixtures = [ { "name": "প্রমাণপত্র", "context": "1" }, { "name": "userData", "context": "2" } ] describe('অটোমেশন টেস্ট স্যুট - ফিক্সচার', ফাংশন () { // উভয় ফিক্সচারের মাধ্যমে লুপ করা testValueFixtures.forEach((fixtureData) => { describe(fixtureData.context, () => { // ফিক্সচার ফাইল থেকে পরীক্ষার ডেটা অ্যাক্সেস করার আগে(function () { cy. fixture(fixtureData.name). তারপর(function (testData) { this.testData = testData; }) }) এটি("লগইন", ফাংশন () { cy.visit('https://admin-demo.nopcommerce.com /admin/') cy.get('[id=Email]').clear() cy.get('[id=Email]').type(this.testData.username) cy.get('[id= পাসওয়ার্ড]').clear() cy.get('[id=Password]').type(this.testData.password) cy.get('[type=submit]').click(); cy.url( .should('be.equal', this.testData.adminUrl) }) }) }) })

প্রাথমিকভাবে, আমরা একটি ভেরিয়েবল তৈরি করছি testValueFixtures হিসাবে একটি বিন্যাস যেখানে আমরা দুটি ফিক্সচার ফাইলের প্রসঙ্গ তৈরি করছি। প্রথম প্রেক্ষাপটে, আমরা নামটি পাস করছি 'পরিচয়পত্র'এবং দ্বিতীয়টি' হিসেবেব্যবহারকারী তথ্য' , যেহেতু তারা আমাদের JSON ফাইলের নামগুলিকে উপস্থাপন করে যেখানে আমরা আমাদের মান সংজ্ঞায়িত করেছি।
দ্বিতীয়ত, আমরা বর্ণনা ব্লকে উভয় ফিক্সচার ভেরিয়েবলের মাধ্যমে লুপ করছি। এবং যেমন আমরা আগে আলোচনা করেছি, আমরা ব্লক ব্যবহার করার আগে ডেটা অ্যাক্সেস করছি .this()
বাকি কোড একই, যেখানে আমরা ডেটা পাস করছি cy.get()
যখন আমরা আমাদের পরীক্ষা চালাই, তখন এটি দুটি সেটে চলবে যেখানে প্রথম কেসটি বৈধ শংসাপত্র সহ পাস করে এবং দ্বিতীয়টি অবৈধ শংসাপত্রের কারণে ব্যর্থ হয়

আপনি স্ন্যাপশটে উপরে দেখতে পাচ্ছেন, প্রথম টেস্ট কেস পাস হয়েছে এবং এটি প্রথম ফিক্সচার ফাইল থেকে মান প্রবেশ করেছে credentials.json

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