সবাইকে অভিবাদন! আমি সর্বদা একটি দ্বৈত উদ্দেশ্য - UI এবং API পরীক্ষার কভারেজ সহ পরীক্ষার অটোমেশন ফ্রেমওয়ার্কগুলিতে সন্দেহের দৃষ্টিতে দেখতাম। সাধারণত, আপনি বিভিন্ন টেস্ট রানে (বা ইভেন্ট প্রজেক্ট) পরীক্ষার বিভিন্ন স্তর চালাবেন, কারণ তাদের প্রতিটিরই সম্ভবত নিজস্ব আছে , এবং . নির্ভরতা কনফিগারেশন, পরিবেশ ভেরিয়েবল সম্প্রতি, আমি পরীক্ষার পরিপ্রেক্ষিতে কী অফার করতে হবে তা দেখেছি এবং আমার অভিজ্ঞতার সাথে এটির তুলনা করেছি, তাই এখানে আমি আপনাদের সবার সাথে ভাগ করে নেওয়ার জন্য কী পেয়েছি… এপিআই নাট্যকারকে সাইপ্রেস সাইপ্রেস কিছুক্ষণ আগে পরীক্ষা করা সম্ভব করেছে। উদাহরণ সহ পরীক্ষার ক্ষেত্রে এই টুলটি কতটা দুর্দান্ত সে সম্পর্কে আপনি খুঁজে পেতে পারেন। সাইপ্রেস এপিআই API শিখন পোর্টালে একটি নিবন্ধ ইনস্টলেশন কর্মক্ষমতা পরীক্ষা চালানোর জন্য, আপনাকে আপনার প্রকল্প নির্ভরতা ইনস্টল করতে হবে, ঠিক? ঠিক আছে, সহ আসে, এবং আপনি যদি একচেটিয়াভাবে পরীক্ষা চালাতে চান তবে এটি ইনস্টল করা বেশ অপ্রয়োজনীয় (এবং সময়সাপেক্ষ) হতে পারে (আসুন, আপনি UI এবং API পরীক্ষা চালানোর জন্য CI তে আলাদা চাকরি পেয়েছেন, যা সাধারণত হয়)। সাইপ্রেস একটি ইলেক্ট্রন ব্রাউজার API ভালো লাগছে না, তাই না? ☝️ এছাড়াও, আপনি যখন পরীক্ষা চালান - এটি যেভাবেই হোক একটি ব্রাউজার চালু করে। API পরীক্ষার উদাহরণ সাথে একটি সাধারণ পরীক্ষা এইরকম দেখতে হবে: সাইপ্রেসের API it('Sign in with valid credentials', () => { cy.request('POST', '/auth', { login: Cypress.env('username'), password: Cypress.env('password'), }).should(response => { expect(response.body.token).to.be.a('string') expect(response.status).to.eq(200) }) }) দেখতে বেশ সহজ এবং সোজা, হাহ? এখানে বলা জরুরী যে এটি একটি সাধারণ সিনট্যাক্স - , প্রতিটি আউটপুটকে ভেরিয়েবলে লেখার পরিবর্তে (যদিও )। সাইপ্রেস অর্থাৎ চেইনিং স্টাফ এটি কিছু পরিবর্তনের সাথে সম্ভব নাট্যকার মতো, হল একটি পরীক্ষা অটোমেশন ফ্রেমওয়ার্ক - আপনি একচেটিয়াভাবে ব্যবহার করতে পারেন, বা (টেস্ট রানার, অ্যাসারশন লাইব্রেরি, ব্রাউজার অটোমেশন টুল, HTTP ক্লায়েন্ট, রিপোর্টার, ইত্যাদি) ব্যবহার করতে পারেন৷ সাইপ্রেসের নাট্যকার শুধুমাত্র একটি ব্রাউজার অটোমেশন টুল পুরো ফ্রেমওয়ার্ক ইনস্টলেশন কর্মক্ষমতা এখানে পার্থক্য হল বাক্সের বাইরে কোনো ব্রাউজার নিয়ে আসে না - আপনাকে সেগুলি একটি পৃথক কমান্ড দিয়ে ইনস্টল করতে হবে (যদি আপনি চান)। নাট্যকার এটি এখানে একটি বিশাল পার্থক্য করে, যেমন একচেটিয়াভাবে পরীক্ষা চালানোর ক্ষেত্রে, এটি কোনও ব্রাউজার বা অন্য কোনও ডেস্কটপ অ্যাপ চালাবে না এবং আপনার মেশিনে কিছু রান টাইম এবং সংস্থান সংরক্ষণ করবে না। API পরীক্ষার উদাহরণ সাথে একটি সাধারণ পরীক্ষা এইরকম দেখতে হবে: নাট্যকারের API import {test, expect} from '@playwright/test' test('Sign in with valid credentials', async ({request}) => { const response = await request.post('/auth', { data: { login: process.env.USERNAME, password: process.env.PASSWORD, }, }) expect(response.status()).toEqual(200) expect(await response.json()).toEqual({ token: expect.any(String), }) }) আমি বস্তু জাহির করার হাইলাইট করতে চাই: একটি জেস্ট-এর মতো সিনট্যাক্স expect(await response.json()).toEqual({ token: expect.any(String), }) এই সিনট্যাক্সটি আপনাকে শুধুমাত্র একটি কলের মাধ্যমে বস্তুর সম্পূর্ণ কাঠামো যাচাই করতে দেয় ☝️ expect উপসংহার এপিআই পরীক্ষাগুলি ছোট এবং লাইটওয়েট বলে মনে করা হয় কারণ তাদের চালানোর জন্য খুব বেশি প্রয়োজন হয় না। আসুন উপরের উপাদানগুলিকে সংক্ষিপ্ত করি… ইনস্টলেশন কর্মক্ষমতা ✅ একটি বাক্সের বাইরে দ্রুত পরিষ্কার ইনস্টলেশনের সাথে জিতেছেন। নাট্যকার 13 গুণ ℹ️ আপনি এ ইনস্টলেশনের সময় কমাতে পারেন যদি বা আপনার । CI- সাইপ্রেস আগে থেকে ইনস্টল করা নির্ভরতা সহ একটি ছবি ব্যবহার করেন CI স্টোরেজে ক্যাশে করেন পারফরম্যান্স চালান ✅ বিজয়ী হন কারণ API পরীক্ষা চালানোর জন্য ব্রাউজারের প্রয়োজন হয় না, তাই এটি সরাসরি পয়েন্টে যায়। নাট্যকার ℹ️ API পরীক্ষায় ব্রাউজারটিকে "চালাতে না দেওয়ার" কোন উপায় নেই, কারণ এটি ফ্রেমওয়ার্কের যুক্তির অংশ৷ সিনট্যাক্স পরীক্ষা করুন এখানে একজন বিজয়ী বাছাই করা যাবে না, কারণ বা জন্য কোন উদ্দেশ্যমূলক সুবিধা নেই। সাইপ্রেস নাট্যকারের তারা উভয়ই সামান্য পার্থক্য সহ বেশ সহজবোধ্য সিনট্যাক্স পেয়েছে। আমি বলব যে তারা এখানে যা পছন্দ করে তা বেছে নেওয়ার পরীক্ষকের সিদ্ধান্ত। সামগ্রিকভাবে আমি স্পষ্টভাবে বলতে পারি যে এটির পারফরম্যান্সের কারণে টেস্ট অটোমেশনের জন্য ব্যবহার করা যথেষ্ট নিরাপদ। আপনি যদি ইতিমধ্যে এই কাঠামোর সাথে পরীক্ষা করে থাকেন তবে এটি একটি ন্যায্য সমাধান হবে। API প্লেরাইট UI যারা পরীক্ষার জন্য ব্যবহার করেন এবং স্তরটি কভার করতে চান তাদের জন্য আমার পরামর্শ - অন্য কিছু ব্যবহার করুন ( + , আপনি একটি উদাহরণ দেখতে পারেন)। UI সাইপ্রেস API Jest Axios সেখানে