End-to-End টেস্টিং (Protractor, Cypress)

Web Development - অ্যাঙ্গুলার হাই চার্ট (Angular High Charts) - ডিবাগিং এবং টেস্টিং |

End-to-End (E2E) টেস্টিং হল একটি টেস্টিং প্রক্রিয়া যেখানে পুরো অ্যাপ্লিকেশনটি পরীক্ষা করা হয় যাতে নিশ্চিত করা যায় যে সব সিস্টেম কম্পোনেন্ট একসাথে সঠিকভাবে কাজ করছে। Angular অ্যাপ্লিকেশনগুলির জন্য দুইটি জনপ্রিয় E2E টেস্টিং টুল হলো Protractor এবং Cypress। এই টিউটোরিয়ালে আমরা আলোচনা করবো কীভাবে Angular অ্যাপ্লিকেশনে Protractor এবং Cypress ব্যবহার করে E2E টেস্টিং করা যায়।


Protractor: E2E টেস্টিং

Protractor হল Angular অ্যাপ্লিকেশনের জন্য একটি প্রাথমিক E2E টেস্টিং টুল, যা Angular স্পেসিফিক কার্যকারিতা যেমন ng-model, ng-bind ইত্যাদি সাপোর্ট করে। এটি Selenium WebDriver এর উপর ভিত্তি করে কাজ করে এবং Angular অ্যাপ্লিকেশনের UI টেস্টিং করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে।

Protractor ইন্সটলেশন

Protractor দিয়ে E2E টেস্টিং শুরু করতে প্রথমে আপনাকে Protractor ইনস্টল করতে হবে।

  1. Protractor ইন্সটল করা:
npm install protractor --save-dev
  1. Protractor সেটআপ করা:

Protractor ব্যবহার করার জন্য, আপনাকে webdriver-manager ইনস্টল এবং আপডেট করতে হবে:

npm install -g webdriver-manager
webdriver-manager update
  1. Protractor কনফিগারেশন ফাইল তৈরি:

protractor.conf.js ফাইল তৈরি করুন:

exports.config = {
  directConnect: true,
  framework: 'jasmine',
  specs: ['e2e/**/*.spec.js'],  // আপনার টেস্ট স্পেসিফিকেশন ফাইলের লোকেশন
  capabilities: {
    'browserName': 'chrome'
  },
  jasmineNodeOpts: {
    defaultTimeoutInterval: 30000
  }
};
  1. E2E টেস্ট স্ক্রিপ্ট লিখুন:

আপনি e2e/ ফোল্ডারের মধ্যে টেস্ট ফাইল তৈরি করে সেখানে টেস্ট লিখতে পারবেন। যেমন:

describe('Angular App', function() {
  it('should have a title', function() {
    browser.get('http://localhost:4200');
    expect(browser.getTitle()).toEqual('My Angular App');
  });
});
  1. Protractor টেস্ট রান করা:

এখন টেস্ট রান করার জন্য নিচের কমান্ডটি ব্যবহার করুন:

protractor protractor.conf.js

এটি আপনার Angular অ্যাপ্লিকেশনটি খুলবে এবং নির্দিষ্ট টেস্ট ফাইলগুলো চালাবে।


Cypress: E2E টেস্টিং

Cypress হল একটি আধুনিক JavaScript টেস্টিং ফ্রেমওয়ার্ক যা দ্রুত এবং নির্ভুলভাবে End-to-End টেস্টিং করার জন্য ব্যবহৃত হয়। এটি ডেভেলপারদের জন্য উন্নত ডিবাগিং এবং দ্রুত টেস্ট রান করার সুবিধা প্রদান করে। Cypress প্রকৃতপক্ষে ব্রাউজারের মধ্যেই চলে, যা দ্রুত এবং স্টেবল টেস্টিং সেশন নিশ্চিত করে।

Cypress ইন্সটলেশন

Cypress দিয়ে E2E টেস্টিং শুরু করার জন্য প্রথমে আপনাকে Cypress ইনস্টল করতে হবে।

  1. Cypress ইন্সটল করা:
npm install cypress --save-dev
  1. Cypress টেস্ট রান করা:

Cypress ইনস্টল হওয়ার পর, আপনি Cypress GUI খুলতে পারেন:

npx cypress open

এটি Cypress এর GUI খুলবে, যেখানে আপনি টেস্ট ফাইলগুলি তৈরি এবং রান করতে পারবেন।

  1. Cypress কনফিগারেশন:

Cypress নিজে থেকেই একটি cypress.json কনফিগারেশন ফাইল তৈরি করে, যেখানে আপনার প্রয়োজনীয় সেটিংস থাকবে। আপনি সেটি কাস্টমাইজ করতে পারেন।

  1. E2E টেস্ট স্ক্রিপ্ট লিখুন:

Cypress টেস্টের জন্য একটি টেস্ট ফাইল তৈরি করুন যেমন cypress/integration/app.spec.js:

describe('Angular App', () => {
  it('should have a title', () => {
    cy.visit('http://localhost:4200');
    cy.title().should('eq', 'My Angular App');
  });
});
  1. Cypress টেস্ট রান করা:

Cypress GUI খুলে আপনার টেস্ট রান করুন বা টার্মিনালে রান করুন:

npx cypress run

এটি টেস্ট রান করবে এবং টেস্ট রেজাল্ট টার্মিনালে প্রদর্শিত হবে।


Protractor এবং Cypress এর মধ্যে পার্থক্য

বৈশিষ্ট্যProtractorCypress
পারফরম্যান্সSelenium WebDriver ব্যবহার করে, তাই কিছুটা স্লো।দ্রুত, ব্রাউজারের মধ্যে চলে।
সাপোর্টAngular অ্যাপ্লিকেশন স্পেসিফিক।যেকোনো ওয়েব অ্যাপ্লিকেশন সাপোর্ট করে।
ডিবাগিংডিবাগিং সহজ নয়, তবে browser.debug() এর মাধ্যমে কিছু সাহায্য পাওয়া যায়।উন্নত ডিবাগিং সুবিধা, ব্রাউজারের কনসোল থেকে সরাসরি।
কম্প্লেক্সিটিকনফিগারেশন এবং সেটআপ অনেকটা কমপ্লেক্স।সহজ সেটআপ এবং কনফিগারেশন।
ব্রাউজার সাপোর্টশুধুমাত্র Chrome এবং Firefox সাপোর্ট।সব ব্রাউজারে কাজ করে।

সারাংশ

Protractor এবং Cypress উভয়ই Angular অ্যাপ্লিকেশনগুলির জন্য End-to-End টেস্টিং সরঞ্জাম হিসেবে ব্যবহৃত হয়। Protractor Angular-র জন্য তৈরি করা হলেও, Cypress একটি আধুনিক টেস্টিং টুল যা দ্রুত, নির্ভুল এবং উন্নত ডিবাগিং সুবিধা প্রদান করে। Protractor এবং Cypress এর মধ্যে পার্থক্য রয়েছে, তবে Cypress নতুন এবং উন্নত প্রকল্পগুলির জন্য আরও জনপ্রিয় হয়ে উঠছে, কারণ এটি দ্রুত, স্থিতিশীল এবং ডেভেলপার-বান্ধব।

Content added By
Promotion