সাইপ্রেস উদাহরণ: ওপেন সাইপ্রস, ভেরিয়েবলস, প্রথম পরীক্ষার স্ক্রিপ্ট

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

সাইপ্রেস উদাহরণ
সাইপ্রেস উদাহরণ

সাইপ্রেস উদাহরণ

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

সুচিপত্র

সাইপ্রাস জেএসওএন উদাহরণ

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

আসুন এমন কয়েকটি উদাহরণ যা আমরা আমাদের সাইপ্রেস জেএসএন ফাইলটিতে কনফিগার করতে পারি তা খতিয়ে দেখি।

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

পছন্দডিফল্ট মানবিবরণ
বেস ইউআরএলঅকার্যকরএই বিকল্পটি একটি হিসাবে ব্যবহার করা যেতে পারে URL টি জন্য উপসর্গ cy.request () or cy.visit () কমান্ড।
ওয়াচফরফিলচ্যাঞ্জসসত্যএই বিকল্পটি ডিফল্টরূপে সত্য হিসাবে সেট করা আছে। এটি পরিবর্তনগুলির জন্য ফাইলগুলি পর্যবেক্ষণ করে এবং যখন কোনও পরিবর্তন করা হয় তখন সেগুলি পুনরায় চালু করে।

নীচে স্ন্যাপশটটি দেওয়া আছে যা আমরা আমাদেরতে বেস ইউআরএল এবং ওয়াচফোর্ডফাইচেনজ বৈশিষ্ট্যগুলি সংশোধন করেছি Cypress.json ফাইল.

দ্রষ্টব্য: আমরা পরে আলাদা বিষয় হিসাবে সাইপ্রেস কনফিগারেশনের সমস্ত বিকল্প নিয়ে আলোচনা করব।

সাইপ্রেস উদাহরণ
সাইপ্রেস.জসন ফাইল

সাইপ্রেস খুলুন

এর আগে, আমরা কীভাবে একটি সাইপ্রেস প্রকল্প তৈরি করব তা দেখেছি। এখানে, আমরা কীভাবে সিপ্রেস টেস্ট রানারকে খোলার এবং কার্যকর করতে হবে তা দেখব। তো আসুন ডুব দেই!

আপনি যদি এনপিএম এর মাধ্যমে সাইপ্রাস ইনস্টল করে থাকেন তবে এটি ./node_modules ডিরেক্টরিতে ইনস্টল করা হয়েছে। অতএব, আমরা আমাদের থেকে একটি এনপিএম কমান্ড পাস করে আমাদের সাইপ্রাস পরীক্ষা রানারটি খুলতে পারি আমাদের প্রকল্প ডিরেক্টরি এর মূল.

আমরা সাইপ্রেসকে নিম্নলিখিত কোনও একটিতে খুলতে পারি

1. পূর্ণ পথ কমান্ড দিয়ে

./node_modules/.bin/cypress open

2. এনপিএম বিনের শর্টকাট ব্যবহার করে

$(npm bin)/cypress open

3. এনপিএক্স ব্যবহার করে

এখানে এনপিএক্স কেবলমাত্র এনএমপি> ভি 5.2 এর সাহায্যে সমর্থিত, অথবা আমরা এটি আলাদাভাবে ইনস্টল করতে পারি।

npx cypress open

4. সুতা ব্যবহার করে

yarn run cypress open

এখন আমরা দেখব কীভাবে আমাদের টার্মিনালে পূর্ণ পাথ কমান্ডটি দিয়ে সাইপ্রাস খুলতে হয়।

১. আপনাকে উপরের পয়েন্ট 1 এ উল্লিখিত কমান্ডটি পাস করতে হবে এবং আপনি টার্মিনালে নিম্নলিখিতটি দেখতে পাবেন

সাইপ্রেস উদাহরণ: ওপেন সাইপ্রস, ভেরিয়েবলস, প্রথম পরীক্ষার স্ক্রিপ্ট
টার্মিনালে সাইপ্রেস খুলছে

২.এক মুহুর্তের পরে, আমরা সাইপ্রাস টেস্ট রানারটি চালু হতে দেখতে পাচ্ছি এবং নীচের চিত্রের মতো টেস্ট রানারকে দেখতে সক্ষম হব। পরীক্ষক রানার চালু হওয়ার পরে, আপনি কয়েকটি নমুনা পরীক্ষার কেস দেখতে পাচ্ছেন। সাইপ্রেস আমাদের প্রকল্পের মূলটিতে একটি পরীক্ষার ফোল্ডার তৈরি করেছে যা আমাদের পরীক্ষার কেসগুলির প্রাথমিক সেটআপ এবং লেখার ক্ষেত্রে সহায়তা করে।

সাইপ্রেস উদাহরণ: ওপেন সাইপ্রস, ভেরিয়েবলস, প্রথম পরীক্ষার স্ক্রিপ্ট
টেস্ট রানার উদাহরণ ফাইল

এখন আসুন আমরা ভিএস কোডে ফিরে যাই। প্রথমে, আপনি কিছু ফোল্ডার স্ট্রাকচার দেখতে পারেন যা জনবসতিপূর্ণ। এখন আসুন আমরা ফোল্ডারের প্রতিটি কাঠামো ভেঙে ফেলি এবং সেগুলি বিস্তারিতভাবে দেখি।

সাইপ্রাসে ফোল্ডার কাঠামো

যেমনটি আমরা দেখছি, সাইপ্রেস আমাদের কোড সম্পাদকটিতে একটি ফোল্ডার কাঠামো তৈরি করেছে। আমরা তাদের বিস্তারিত আলোচনা করব।

সাইপ্রেস উদাহরণ: ওপেন সাইপ্রস, ভেরিয়েবলস, প্রথম পরীক্ষার স্ক্রিপ্ট
সাইপ্রস উদাহরণে ফোল্ডার
  1. রাজধানী - ফিক্সচার ফোল্ডারে এমন ডেটা রয়েছে যা স্থির এবং পুরো প্রকল্পে পুনরায় ব্যবহারযোগ্য। একটি সেরা অনুশীলন আমাদের পরীক্ষাগুলিতে হার্ড ডেটা (শংসাপত্র যেমন পরীক্ষার বার্তা) নয়। পরিবর্তে, আমরা একটি JSON, CSV, বা এইচটিএমএল ফাইলের মাধ্যমে এগুলি অ্যাক্সেস করি। আমাদের ফিক্স ফোল্ডারের অধীনে আমাদের ডেটা ফাইলগুলি তৈরি করা উচিত। আমরা আমাদের পরীক্ষায় এই ফাইলটি ব্যবহার করে অ্যাক্সেস করি সাই কমান্ড।
  2. ইন্টিগ্রেশন - এই ফোল্ডারের অধীনে আমরা প্রকৃত পরীক্ষার কেসগুলি লিখি যা আমরা সাধারণত একটি নির্দিষ্ট ফাইলকে কল করি। ইন্টিগ্রেশন ফোল্ডারের অভ্যন্তরে আমরা আমাদের প্রকল্পের প্রয়োজনীয়তার ভিত্তিতে প্রতিটি ফোল্ডারের অধীনে একাধিক ফোল্ডার এবং অনেকগুলি পরীক্ষার ফাইল তৈরি করতে পারি। আপনি কয়েকটি উদাহরণ সহ উত্পাদিত কিছু ডিফল্ট স্পেক ফাইলও দেখতে পারেন।
  3. প্লাগইন - প্লাগইন ফোল্ডারে এমন ফাইল রয়েছে যা আপনাকে সাইপ্রেসের অভ্যন্তরীণ আচরণগত আচরণটি ট্যাপ, অ্যাক্সেস এবং সংশোধন করতে সক্ষম করে। প্লাগইনগুলির সাহায্যে আপনি কাস্টম কোডটি লিখতে পারেন যা আপনাকে আপনার কোড কাঠামোর প্রতিটি অংশে (কার্যকর হওয়ার আগে বা পরে) সরাসরি অ্যাক্সেস রয়েছে এমন পরীক্ষা আদেশগুলি কার্যকর করতে সহায়তা করতে পারে। ডিফল্টরূপে, সাইপ্রাস এই পথে প্লাগইন তৈরি করে cypress/plugin/index.js
  4. সহায়তা - সমর্থন ফোল্ডারের অধীনে, আমাদের কাছে এমন ফাইল রয়েছে যা আমাদের স্ট্যান্ডার্ড বা পুনরায় ব্যবহারযোগ্য পদ্ধতি সরবরাহ করতে সহায়তা করে। প্রতিটি বৈশিষ্ট্য চালানোর আগে সাইপ্রাস সমর্থন ফোল্ডারটি চালায়। সুতরাং অন্যান্য প্রতিটি ফাইলে সমর্থন ফাইলটি আমদানি করার দরকার নেই। এই ফোল্ডারটি পুনরায় ব্যবহারযোগ্য পদ্ধতি বা অন্যান্য সমস্ত স্পষ্ট ফাইলের জন্য প্রয়োজনীয় গ্লোবাল ফাংশন যুক্ত করার জন্য সঠিক জায়গা।
  5. নোড মডিউল - এই ফোল্ডারে আমাদের ইনস্টল করা সমস্ত এনপিএম প্যাকেজ রয়েছে। নোড মডিউলগুলি কোনও নোড প্রকল্প চালানোর জন্য তাৎপর্যপূর্ণ। আমাদের সাইপ্রাস প্রকল্পের সমস্ত ফাংশন আমাদের নোড মডিউল ফোল্ডারের ভিতরে লেখা থাকে। আমরা নোড মডিউলগুলির মধ্যে কোনও ফাইল সংশোধন করব না।
  6. সাইপ্রেস.জসন - আমরা আমাদের একাধিক কনফিগারেশন যুক্ত করতে পারেন সাইপ্রেস.জসন ফাইল। উদাহরণস্বরূপ, আমরা সাইপ্রাস কনফিগারেশন ফাইলের ডিফল্ট বিকল্পগুলিকে ওভাররাইড করতে পরিবেশের ভেরিয়েবল, বেস URL, টাইমআউট বা অন্য কোনও বিকল্প যুক্ত করতে পারি।

ভেরিয়েবল এবং উপাধি

আমরা সাইপ্র্রেসের ভেরিয়েবল এবং উপাত্ত সম্পর্কে বিস্তারিত আলোচনা করব।

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

সাইপ্রাসে মান ফেরত দিন

সমস্ত সাইপ্রাস কমান্ড হয় সারিবদ্ধ হয়নি এবং চালান অ্যাসিঙ্ক্রোনাস। অতএব, আমরা কোনও রিটার্ন মানগুলি বরাদ্দ করতে বা ইন্টারঅ্যাক্ট করতে পারে না যে কোনও সাইপ্রাস কমান্ড। আমরা এর একটি সামান্য উদাহরণ দেখতে পাবেন।

const button = cy.get("login-btn");  //this command is to get the element with the button attribute

button.click()

বন্ধ

উপরে বর্ণিত কমান্ডের মাধ্যমে আমরা বোতামের বৈশিষ্ট্যগুলি অ্যাক্সেস করতে পারি না। পরিবর্তে, আমরা। তম () ব্যবহার করে সাইপ্রাস কমান্ডগুলি সরবরাহ করতে পারি। আমরা এই কল বন্ধ.

.তখন ()

.ঠিন () আপনাকে পূর্ববর্তী কমান্ড থেকে প্রাপ্ত থ্রেডটিতে অ্যাক্সেস করতে সহায়তা করে। যদি বুঝে থাকেন দেশীয় প্রতিশ্রুতি, এটি একই উপায়ে .পরে () সাইপ্রাসের সাথে কাজ করে। আমরা ভিতরে বিভিন্ন কমান্ড বাসাতে পারি .ত ()। প্রতিটি নেস্টেড কমান্ড লুপে পূর্ববর্তী কমান্ডটি অ্যাক্সেস করতে পারে। আমরা একটি উদাহরণ সহ এটি দেখতে পাবেন।

cy.get('login').then(($btn) => {

  // store the button's text
  const buttonText = $btn.text()

  // we are comparing the two buttons' text
  // and ensuring they are different
  cy.get('login').should(($btn2) => {
    expect($btn2.text()).not.to.eq(buttonText)
  })
})

আমরা ব্যবহার করেছেন বন্ধ উপরের উদাহরণে, আমাদের পূর্ববর্তী কমান্ডের রেফারেন্সটি লুপে রাখতে সক্ষম করে।

ভেরিয়েবল

সাধারণত, আমরা একটি ভেরিয়েবলের মান নির্ধারণ করি। তবে সাইপ্রেসে আমরা সবেই ব্যবহার করি const, var, এবং let। যখন আমরা ক্লোজারগুলি ব্যবহার করছি, আমরা ফলনযোগ্য বস্তুগুলিকে কোনও ভেরিয়েবলের জন্য নিযুক্ত না করে অ্যাক্সেস করতে পারি।

তবে কিছু ক্ষেত্রে রয়েছে যখন আমরা একটি পরিবর্তনশীল ঘোষণা করতে পারি যখন হয় অবজেক্টের অবস্থা পরিবর্তন হয় (পরিবর্তনযোগ্য বস্তু) উদাহরণস্বরূপ, যদি আমাদের কোনও বস্তুর পূর্ববর্তী মানের সাথে তুলনা করা প্রয়োজন, তবে পরবর্তী মানের সাথে এটির তুলনা করার জন্য আমরা তাদেরকে একটি চলক হিসাবে ঘোষণা করব। আসুন আমরা এর জন্য একটি উদাহরণ সন্ধান করি।

<button>increment</button>

You clicked button <span id="num">0</span> times

এখানে, 0 টি গণনা সহ স্প্যান প্রতিবার বাটনে ক্লিক করার সময় বাড়তে থাকে। সুতরাং বাটন বস্তু প্রতিবার তার রাজ্য পরিবর্তন করতে ঝোঁক।

এখন আসুন আমরা কীভাবে আমাদের সাইপ্রেস কোডে ভেরিয়েবলের জন্য এটি নির্ধারণ করতে পারি তা খতিয়ে দেখা যাক।

cy.get('#num').then(($span) => {
  // we are capturing the number by assigning it to a variable
  const num1 = parseFloat($span.text())

  cy.get('button')
    .click()  //we have clicked the button once
    .then(() => {
      // we are capturing the number again by assigning it to another variable
      const num2 = parseFloat($span.text())

      // we are ensuring that num1+1 is equal to num2
      expect(num2).to.eq(num1 + 1)
    })
})

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

ওরফে

পূর্বে, আমরা দেখেছি সাইপ্রেসে কী পরিবর্তনশীল এবং এর সীমাবদ্ধতা। এই সীমাবদ্ধতা কাটিয়ে উঠতে, উপাধিগুলি ছবিতে আসে। সাইপ্রাসের অন্যতম শক্তিশালী কনস্ট্রাক্ট আলিয়াস। উদাহরণ সহ আমরা এটিকে বিস্তারিতভাবে দেখব।

সাধারণত, এলিয়াস আপনাকে ভেরিয়েবল হিসাবে কাজ করতে সহায়তা করতে পারে। যাইহোক, কিছু ব্যবহারের কেস রয়েছে যেখানে ভেরিয়েবলের পরিবর্তে কোনও উপাস আমাদের সহায়তা করতে পারে।

1. ডোম উপাদানসমূহ পুনরায় ব্যবহার করুন

আমরা DOM উপাদানগুলি উপন্যাস করতে পারি এবং পরে তাদের পুনরায় ব্যবহারের জন্য অ্যাক্সেস করতে পারি। উপনামগুলিও এর সীমাবদ্ধতাগুলি অতিক্রম করে .তখন () কমান্ড।

2. প্রসঙ্গ ভাগ করা হচ্ছে

সহজ অর্থায়, ভাগ করে নেওয়ার প্রসঙ্গ হুক এবং পরীক্ষার মধ্যে অবজেক্টটি ভাগ করে নিচ্ছে। প্রসঙ্গটি ভাগ করে নেওয়ার জন্য প্রাথমিক ব্যবহারের ক্ষেত্রে কাজ করা cy.fixture - যা কোনও ফাইলের মধ্যে একটি নির্দিষ্ট সেট ডেটা লোড করা হয়।

কীভাবে এক্সেস করবেন?

এখানে, আমরা কীভাবে অ্যালিয়াসগুলি অ্যাক্সেস করব তা দেখব। আমরা ব্যবহার করা হবে .as() পরে ব্যবহারের জন্য উপাদান বরাদ্দ করতে কমান্ড। প্রয়োজনীয় প্যারামিটারটি হ'ল উপনাম। উপনামের নামটি একটি এর মধ্যে রেফারেন্স হিসাবে ব্যবহৃত হয় cy.get() or cy.wait() ব্যবহার করে @ উপসর্গ

কীভাবে অ্যালিয়াস অ্যাক্সেস করবেন তার একটি উদাহরণ আমরা দেখব।

cy.get('#user_login').as('username')
cy.get('@username').type('abc@gmail.com')

প্রথম লাইনে আমরা DOM থেকে ব্যবহারকারী_লগিনের আইডি পাচ্ছি। আমরা তখন ব্যবহার করছি .as() এবং একটি নাম ব্যবহারকারীর নাম দিয়ে ঘোষণা। দ্বিতীয় লাইনে আমরা এর সাথে আমাদের ওরফে অ্যাক্সেস করছি @ প্রতীক এবং সম্পাদন আদর্শ কর্ম.

সাইপ্রাস পরীক্ষা উদাহরণ

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

বেসিক সাইপ্রাস নির্মাণ

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

  • বর্ণনা করুন () - সমস্ত পরীক্ষার কেসগুলিকে একক বৃহত্তর পরীক্ষার সাথে একত্রিত করে এবং তাদের একত্রে গোষ্ঠীভুক্ত করে। এটি দুটি পরামিতি নেয় - পরীক্ষার বিবরণ এবং একটি কলব্যাক ফাংশন।
  • এটি () - আমরা আমাদের এটিতে () ব্লকে পৃথক পরীক্ষার কেস লিখি। এই ব্লকটি দুটি পরামিতিও নেয় - একটি পরীক্ষা কী করে এবং দ্বিতীয় প্যারামিটারটি কলব্যাক ফাংশন।
  • () পরে - এটি স্পেক ফাইলের সমস্ত পরীক্ষার পরে কার্যকর করে।
  • প্রতিটির পর() - এটি প্রতিটি পৃথক পরীক্ষার ক্ষেত্রে চালিত হয়।
  • আগে() - স্পেক ফাইলের সমস্ত পরীক্ষার আগে চলে।
  • পূর্ববর্তী প্রতিটি () - প্রতিটি পৃথক পরীক্ষার মামলার আগে মৃত্যুদন্ড কার্যকর করে।

কিভাবে একটি পরীক্ষার মামলা লিখবেন?

আমরা শুরু করার আগে, আমাদের জানতে হবে একটি পরীক্ষার কেস কী, এটি লিখুন এবং একটি মৌলিক পরীক্ষার ক্ষেত্রে কী পদক্ষেপ রয়েছে।

1. পূর্ব-প্রয়োজনীয় - আমরা যে আবেদনটি পরীক্ষা করতে যাচ্ছি তার স্থিতি state

2. কর্ম - আমরা অ্যাপ্লিকেশনটিতে কিছু পদক্ষেপ নিই।

3. কথন - আমরা আমাদের ক্রিয়া সম্পর্কিত পরিবর্তিত আচরণকে দৃsert়তা বা বৈধতা দিয়েছি।

আমরা বিবেচনা করব লামদাগিক্স আমাদের পরীক্ষার উদাহরণের জন্য আবেদন। একই পদ্ধতি সহ, আমরা নিম্নলিখিত দৃশ্যের স্বয়ংক্রিয়করণ বিবেচনা করব

1. ওয়েবসাইট দেখুন https://lambdageeks.com/

2. শিরোনাম হোম - লাম্বদা গিকস কিনা তা যাচাই করুন
সাইপ্রাস ব্যবহার করে cy এটির ধরণের সংজ্ঞা হিসাবে আমরা সংযোজন করা হবে cy কমান্ড যেকোন পদ্ধতিতে অনুরোধ জানাতে।
প্রথমত, আসুন আমাদের কোড সম্পাদকে একটি নতুন ফাইল তৈরি করুন।

1. নামে একটি নতুন ফোল্ডার তৈরি করুন ডেমো ইন্টিগ্রেশন ফোল্ডারের অধীনে।

সাইপ্রেস উদাহরণ: ওপেন সাইপ্রস, ভেরিয়েবলস, প্রথম পরীক্ষার স্ক্রিপ্ট
নতুন ভাঁজ তৈরিr

২. ডেমো ফোল্ডারের নীচে একটি নতুন ফাইল তৈরি করুন নমুনা.জেএস। আমরা এই ফাইলটিতে আমাদের প্রথম পরীক্ষার কেস লিখব।

সাইপ্রেস উদাহরণ: ওপেন সাইপ্রস, ভেরিয়েবলস, প্রথম পরীক্ষার স্ক্রিপ্ট
নতুন ফাইল তৈরি করা

এখন আসুন আমাদের পরীক্ষার মামলাগুলি লেখা শুরু করুন!

1. প্রথমত, আমরা ব্যবহার করে পৃষ্ঠাটি পরিদর্শন করব পরিদর্শন () সাইপ্রাসে পদ্ধতি। এই কমান্ডটি আমাদের সরবরাহ করা URL- তে নেভিগেট করবে। আমরা এগুলি একটি বর্ণনা () এবং এটি () ব্লকের ভিতরে encেকে রাখব।

//type definition for Cypress object 'cy'
/// <reference types="cypress" />

describe("Testing the application", function() {
    it("launch the application", function() {
        // visit the lambdageeks page
        cy.visit('https://lambdageeks.com/')

২. একবার অ্যাপ্লিকেশনটি খোলা হয়ে গেলে আমরা শিরোনামটি ব্যবহার করে যাচাই করব get() সাইপ্রাসে পদ্ধতি .get() ডিওএম থেকে সমস্ত সিএসএস নির্বাচককে নিয়ে আসে।

আমরা ব্যবহার করে শিরোনাম অ্যাক্সেস করছি title() পদ্ধতিটি, এবং আমরা কমান্ডটি দিয়ে চাই লাইব্রেরিটি প্রথম প্যারামিটারটিকে সমান হিসাবে পাস করার পরে ব্যবহার করতে পারি eq। দ্বিতীয় প্যারামিটার হ'ল স্ট্রিং যা আমরা প্রত্যাশা করি।

 cy.title().should('eq','Home - Lambda Geeks')

হুররে! দুটি সহজ পদক্ষেপ সহ, আমরা আমাদের সাইপ্রাস টেস্ট কেস লিখেছি।

আমাদের পরীক্ষার মামলার সম্পূর্ণ কোড এখানে

//type definition for Cypress object 'cy'
/// <reference types="cypress" />

describe("Testing the application", function() {
    it("launch the application", function() {

        // visit the lambdageeks page
        cy.visit('https://lambdageeks.com/')

        // validate the title
        cy.title().should('eq','Home - Lambda Geeks')
       
    });
});
সাইপ্রেস উদাহরণ: ওপেন সাইপ্রস, ভেরিয়েবলস, প্রথম পরীক্ষার স্ক্রিপ্ট
সাইপ্রেস উদাহরণ: প্রথম পরীক্ষার কেস

সাইপ্রাস লগইন উদাহরণ

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

1. আমরা ওয়েবসাইটটি ভিজিট করি https://demo.applitools.com/ ব্যবহার করে cy.visit কমান্ড।

 cy.visit('https://demo.applitools.com/')

টাইপ কমান্ড ব্যবহার করে ব্যবহারকারীর নাম ক্ষেত্রের মধ্যে ব্যবহারকারীর নাম লিখুন। প্যারামিটার হিসাবে আমরা স্ট্রিং হিসাবে ব্যবহারকারীর নামটি পাস করব।

 cy.get('#username').type('test123')

৩. একইভাবে, আমরা পাসওয়ার্ড লিখতে একই কমান্ডটি লিখি

 cy.get('#password').type('123')

৪. এখন, আমরা ব্যবহার করে লগইন বোতামটি ক্লিক করি click() সাইপ্রাসে পদ্ধতি।

cy.get('#log-in').click();

5. লগ ইন করার পরে, আমরা অ্যাপ পৃষ্ঠায় অবতরণ করব। সুতরাং আমরা জোর দিয়েছি যে ইউআরএল এর আছে /app ব্যবহার করে এক্সটেনশন .include() চাবিতে কীওয়ার্ড। আমাদের প্রথম প্যারামিটারটি হ'ল মূলশব্দটি আমরা বলছি এবং দ্বিতীয় প্যারামিটারটি প্রত্যাশিত ফলাফল।

cy.url().should('include', '/app')

আমরা পাঁচটি সহজ ধাপে লগইন কার্যকারিতার জন্য একটি সম্পূর্ণ কোড লিখেছি। নীচে আপনার রেফারেন্সের জন্য সম্পূর্ণ কোড দেওয়া আছে।

//type definition for Cypress object 'cy'
/// <reference types="cypress" />

describe("Testing the application", function() {
    it("should login with username and password", function() {

        // visit the lambdageeks page
        cy.visit('https://demo.applitools.com/')

        cy.get('#username').type('test123')

        cy.get('#password').type('123')

        cy.get('#log-in').click();

        cy.url().should('include', '/app')

    });
});
সাইপ্রেস উদাহরণ: ওপেন সাইপ্রস, ভেরিয়েবলস, প্রথম পরীক্ষার স্ক্রিপ্ট
লগইন পরীক্ষার কেস

সাইপ্রাস এবং এফএকিউ শুরু করার সময় সাধারণ সমস্যার সমাধান

আমরা সাইপ্রাস চালু করার চেষ্টা করার সময় আমরা কিছু সাধারণ সমস্যাগুলির মুখোমুখি হতে পারি। আমরা কয়েকটি সাধারণ বিষয় নিয়ে আলোচনা করব।

1. ওপেন সাইপ্রেস কমান্ড চলাকালীন 'সাইপ্রেস' কমান্ড খুঁজে পাচ্ছে না

ইনস্টলেশন করার পরে, আমাদের প্রকল্প ডিরেক্টরিটির মূল থেকে ওপেন সাইপ্রেস কমান্ডটি পাস করা উচিত। উদাহরণস্বরূপ, আপনি সাইপ্রেস প্রজেক্ট নামে একটি প্রকল্প তৈরি করেছেন; আপনার পাস করা উচিত npm init সাইপ্রসপ্রজেক্ট ফোল্ডারে নেভিগেট করে কমান্ড। টার্মিনালে নীচের কমান্ডটি দিয়ে আপনি নেভিগেট করতে পারেন

cd CypressProject

আপনি একবার প্রকল্পের মূলে থাকলে, তারপর পাস করুন npm init নির্ভরতা ডাউনলোড করতে কমান্ড।

এখন সাইপ্রাস খুলতে কিছু লোক নেভিগেট করার চেষ্টা করে /node_modules ফোল্ডার এবং ./bin এবং তারপরে সাইপ্রেস ওপেন কমান্ডটি পাস করুন। তবে এটি এইভাবে কাজ করে না। সুতরাং পরিবর্তে, সাইপ্রেস খুলতে প্রকল্প ডিরেক্টরিটির মূল থেকে পুরো ওপেন কমান্ডটি দিন।

./node_modules/.bin/cypress open

এছাড়াও, স্ল্যাশ সম্পর্কে সতর্ক থাকুন '/’। সর্বদা এটি সরবরাহ করুন '/’ সাইপ্রাস খুলতে।

2. সরলবর্গীয় চিরহরিৎ বৃক্ষবিশেষ লোড করা যায় না কারণ চলমান স্ক্রিপ্টগুলি এতে অক্ষম রয়েছে পদ্ধতি

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

Set-ExecutionPolicy RemoteSigned

ধাপ পুনর্গঠন কর:

  • ওপেন পাওয়ারশেল
  • এই আদেশটি চালান Set-ExecutionPolicy RemoteSigned
  • আদর্শ Yes
  • এখন পাশ দিয়ে সাইপ্রাস খুলুন ./node_modules/.bin/cypress open। টেস্ট রানার এখন খুলবে।

প্রশ্ন উত্তর

1. সাইপ্রাস দ্বারা সমর্থিত অপারেটিং সিস্টেমগুলি কোনটি?

সাইপ্রাস সমর্থন করে ম্যাক, উইন্ডোজ, এবং লিনাক্স অপারেটিং সিস্টেম

2. সাইপ্রস কি দেশীয় মোবাইল অ্যাপ্লিকেশনগুলিতে অটোমেশন সমর্থন করে?

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

৩. সাইপ্রস কেবল জাভাস্ক্রিপ্ট-ভিত্তিক অ্যাপ্লিকেশন সমর্থন করে কিনা?

না! সাইপ্রেস রবি অন রেলস, নোড, পিএইচপি, সি # এর মতো ভাষায় লিখিত যে কোনও ওয়েব ব্রাউজারের সাথে যোগাযোগ করতে পারে। তবে আমরা জাভাস্ক্রিপ্টে আমাদের পরীক্ষাগুলি লিখব। অন্যথায়, সাইপ্রাস যে কোনও সামনের প্রান্ত, পিছনের দিক, ভাষা এবং কাঠামোর সাথে যোগাযোগ করতে পারে।

Aboutশ্বরিয়া লক্ষ্মী সম্পর্কে

সাইপ্রেস উদাহরণ: ওপেন সাইপ্রস, ভেরিয়েবলস, প্রথম পরীক্ষার স্ক্রিপ্টআমি একটি পরীক্ষার উত্সাহী এবং পরীক্ষার ডোমেনে প্রায় 2+ বছরের অভিজ্ঞতা আছে। আমি পরীক্ষার বিষয়ে আগ্রহী এবং আমার ক্ষেত্রে নতুন জিনিসগুলি অন্বেষণ করতে এবং সেগুলি আমার সমবয়সীদের সাথে ভাগ করে নিতে ভালোবাসি। আমি আমার ফ্রি সময়ে সবচেয়ে সহজ তবে কার্যকর উপায়ে ব্লগ লেখা উপভোগ করি। পরীক্ষক হিসাবে, আমি নিখুঁত জিনিস পেতে পছন্দ করি, তাই আমি আমার পাঠকদের প্রযুক্তির নিখুঁত বোঝার আশা করি। আমি পরীক্ষার সাথে সম্পর্কিত নতুন প্রযুক্তিগুলির সাথে নিজেকে আপডেট রাখি এবং সেগুলি বোঝার জন্য সময় ব্যয় করি। শিক্ষার্থীদের পরীক্ষার ধারণাগুলি বুঝতে সাহায্য করতে পেরে আমি আনন্দিত।
লিঙ্কডইন - https://www.linkedin.com/in/aishwarya-lakshmi-n-46903217a এর মাধ্যমে সংযোগ করি

en English
X