End-to-End (E2E) টেস্টিং হল একটি টেস্টিং প্রক্রিয়া যেখানে পুরো অ্যাপ্লিকেশনটি পরীক্ষা করা হয় যাতে নিশ্চিত করা যায় যে সব সিস্টেম কম্পোনেন্ট একসাথে সঠিকভাবে কাজ করছে। Angular অ্যাপ্লিকেশনগুলির জন্য দুইটি জনপ্রিয় E2E টেস্টিং টুল হলো Protractor এবং Cypress। এই টিউটোরিয়ালে আমরা আলোচনা করবো কীভাবে Angular অ্যাপ্লিকেশনে Protractor এবং Cypress ব্যবহার করে E2E টেস্টিং করা যায়।
Protractor হল Angular অ্যাপ্লিকেশনের জন্য একটি প্রাথমিক E2E টেস্টিং টুল, যা Angular স্পেসিফিক কার্যকারিতা যেমন ng-model, ng-bind ইত্যাদি সাপোর্ট করে। এটি Selenium WebDriver এর উপর ভিত্তি করে কাজ করে এবং Angular অ্যাপ্লিকেশনের UI টেস্টিং করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে।
Protractor দিয়ে E2E টেস্টিং শুরু করতে প্রথমে আপনাকে Protractor ইনস্টল করতে হবে।
npm install protractor --save-dev
Protractor ব্যবহার করার জন্য, আপনাকে webdriver-manager
ইনস্টল এবং আপডেট করতে হবে:
npm install -g webdriver-manager
webdriver-manager update
protractor.conf.js
ফাইল তৈরি করুন:
exports.config = {
directConnect: true,
framework: 'jasmine',
specs: ['e2e/**/*.spec.js'], // আপনার টেস্ট স্পেসিফিকেশন ফাইলের লোকেশন
capabilities: {
'browserName': 'chrome'
},
jasmineNodeOpts: {
defaultTimeoutInterval: 30000
}
};
আপনি e2e/
ফোল্ডারের মধ্যে টেস্ট ফাইল তৈরি করে সেখানে টেস্ট লিখতে পারবেন। যেমন:
describe('Angular App', function() {
it('should have a title', function() {
browser.get('http://localhost:4200');
expect(browser.getTitle()).toEqual('My Angular App');
});
});
এখন টেস্ট রান করার জন্য নিচের কমান্ডটি ব্যবহার করুন:
protractor protractor.conf.js
এটি আপনার Angular অ্যাপ্লিকেশনটি খুলবে এবং নির্দিষ্ট টেস্ট ফাইলগুলো চালাবে।
Cypress হল একটি আধুনিক JavaScript টেস্টিং ফ্রেমওয়ার্ক যা দ্রুত এবং নির্ভুলভাবে End-to-End টেস্টিং করার জন্য ব্যবহৃত হয়। এটি ডেভেলপারদের জন্য উন্নত ডিবাগিং এবং দ্রুত টেস্ট রান করার সুবিধা প্রদান করে। Cypress প্রকৃতপক্ষে ব্রাউজারের মধ্যেই চলে, যা দ্রুত এবং স্টেবল টেস্টিং সেশন নিশ্চিত করে।
Cypress দিয়ে E2E টেস্টিং শুরু করার জন্য প্রথমে আপনাকে Cypress ইনস্টল করতে হবে।
npm install cypress --save-dev
Cypress ইনস্টল হওয়ার পর, আপনি Cypress GUI খুলতে পারেন:
npx cypress open
এটি Cypress এর GUI খুলবে, যেখানে আপনি টেস্ট ফাইলগুলি তৈরি এবং রান করতে পারবেন।
Cypress নিজে থেকেই একটি cypress.json
কনফিগারেশন ফাইল তৈরি করে, যেখানে আপনার প্রয়োজনীয় সেটিংস থাকবে। আপনি সেটি কাস্টমাইজ করতে পারেন।
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');
});
});
Cypress GUI খুলে আপনার টেস্ট রান করুন বা টার্মিনালে রান করুন:
npx cypress run
এটি টেস্ট রান করবে এবং টেস্ট রেজাল্ট টার্মিনালে প্রদর্শিত হবে।
বৈশিষ্ট্য | Protractor | Cypress |
---|---|---|
পারফরম্যান্স | Selenium WebDriver ব্যবহার করে, তাই কিছুটা স্লো। | দ্রুত, ব্রাউজারের মধ্যে চলে। |
সাপোর্ট | Angular অ্যাপ্লিকেশন স্পেসিফিক। | যেকোনো ওয়েব অ্যাপ্লিকেশন সাপোর্ট করে। |
ডিবাগিং | ডিবাগিং সহজ নয়, তবে browser.debug() এর মাধ্যমে কিছু সাহায্য পাওয়া যায়। | উন্নত ডিবাগিং সুবিধা, ব্রাউজারের কনসোল থেকে সরাসরি। |
কম্প্লেক্সিটি | কনফিগারেশন এবং সেটআপ অনেকটা কমপ্লেক্স। | সহজ সেটআপ এবং কনফিগারেশন। |
ব্রাউজার সাপোর্ট | শুধুমাত্র Chrome এবং Firefox সাপোর্ট। | সব ব্রাউজারে কাজ করে। |
Protractor এবং Cypress উভয়ই Angular অ্যাপ্লিকেশনগুলির জন্য End-to-End টেস্টিং সরঞ্জাম হিসেবে ব্যবহৃত হয়। Protractor Angular-র জন্য তৈরি করা হলেও, Cypress একটি আধুনিক টেস্টিং টুল যা দ্রুত, নির্ভুল এবং উন্নত ডিবাগিং সুবিধা প্রদান করে। Protractor এবং Cypress এর মধ্যে পার্থক্য রয়েছে, তবে Cypress নতুন এবং উন্নত প্রকল্পগুলির জন্য আরও জনপ্রিয় হয়ে উঠছে, কারণ এটি দ্রুত, স্থিতিশীল এবং ডেভেলপার-বান্ধব।
Read more