मराठी

सायप्रस, शक्तिशाली एंड-टू-एंड टेस्टिंग फ्रेमवर्कसाठी एक सर्वसमावेशक मार्गदर्शक, ज्यामध्ये इन्स्टॉलेशन, टेस्ट लिहिणे, डीबगिंग, CI/CD इंटिग्रेशन आणि सर्वोत्तम पद्धतींचा समावेश आहे.

सायप्रस: वेब ऍप्लिकेशन्ससाठी अल्टिमेट एंड-टू-एंड टेस्टिंग मार्गदर्शक

आजच्या वेगाने विकसित होणाऱ्या वेब डेव्हलपमेंटच्या जगात, वेब ऍप्लिकेशन्सची गुणवत्ता आणि विश्वसनीयता सुनिश्चित करणे अत्यंत महत्त्वाचे आहे. एंड-टू-एंड (E2E) टेस्टिंग वापरकर्त्याच्या दृष्टिकोनातून ऍप्लिकेशनचे सर्व घटक अखंडपणे एकत्र काम करत आहेत हे सत्यापित करण्यात महत्त्वपूर्ण भूमिका बजावते. सायप्रस एक आघाडीचे E2E टेस्टिंग फ्रेमवर्क म्हणून उदयास आले आहे, जे डेव्हलपर-फ्रेंडली अनुभव, शक्तिशाली वैशिष्ट्ये आणि उत्कृष्ट परफॉर्मन्स देते. हे सर्वसमावेशक मार्गदर्शक तुम्हाला सायप्रससह सुरुवात करण्यासाठी आणि तुमच्या वेब ऍप्लिकेशन्सची प्रभावीपणे चाचणी करण्यासाठी आवश्यक असलेल्या प्रत्येक गोष्टीबद्दल मार्गदर्शन करेल.

सायप्रस म्हणजे काय?

सायप्रस हे आधुनिक वेबसाठी तयार केलेले नेक्स्ट-जनरेशन फ्रंट-एंड टेस्टिंग टूल आहे. पारंपरिक टेस्टिंग फ्रेमवर्क जे ब्राउझरमध्ये टेस्ट चालवतात, त्यांच्या विपरीत, सायप्रस थेट ब्राउझरमध्येच कार्य करते, ज्यामुळे तुम्हाला तुमच्या ऍप्लिकेशनच्या वर्तनावर अतुलनीय नियंत्रण आणि दृश्यमानता मिळते. हे जलद, विश्वसनीय आणि वापरण्यास सोपे असण्यासाठी डिझाइन केलेले आहे, ज्यामुळे ते जगभरातील डेव्हलपर आणि QA इंजिनिअर्समध्ये एक लोकप्रिय पर्याय बनले आहे. सायप्रस जावास्क्रिप्टमध्ये लिहिलेले आहे आणि ब्राउझरमध्येच कार्यान्वित होते, ज्यामुळे ते खूप कार्यक्षम बनते आणि ऍप्लिकेशनच्या अंतर्गत भागांमध्ये अतुलनीय प्रवेश देते.

सायप्रस वापरण्याचे मुख्य फायदे

इन्स्टॉलेशन आणि सेटअप

सायप्रससह प्रारंभ करणे सोपे आहे. ते कसे स्थापित करायचे ते येथे आहे:

  1. पूर्व-आवश्यकता: तुमच्या सिस्टमवर Node.js आणि npm (Node Package Manager) स्थापित असल्याची खात्री करा. तुम्ही ते अधिकृत Node.js वेबसाइटवरून डाउनलोड करू शकता.
  2. सायप्रस स्थापित करा: तुमचे टर्मिनल किंवा कमांड प्रॉम्प्ट उघडा, तुमच्या प्रोजेक्ट डिरेक्टरीमध्ये नेव्हिगेट करा आणि खालील कमांड चालवा:
  3. npm install cypress --save-dev
  4. सायप्रस उघडा: एकदा इन्स्टॉलेशन पूर्ण झाल्यावर, तुम्ही खालील कमांड चालवून सायप्रस टेस्ट रनर उघडू शकता:
  5. npx cypress open

    ही कमांड सायप्रस टेस्ट रनर सुरू करेल, जो तुमच्या टेस्ट चालवण्यासाठी आणि डीबग करण्यासाठी ग्राफिकल इंटरफेस प्रदान करतो.

तुमची पहिली सायप्रस टेस्ट लिहिणे

एखाद्या वेबसाइटचे होमपेज योग्यरित्या लोड होते की नाही हे तपासण्यासाठी एक सोपी टेस्ट तयार करूया. तुमच्या प्रोजेक्टच्या `cypress/e2e` डिरेक्टरीमध्ये `example.cy.js` नावाची नवीन फाइल तयार करा.


// cypress/e2e/example.cy.js

describe('माझी पहिली टेस्ट', () => {
  it('किचन सिंकला भेट देते', () => {
    cy.visit('https://example.cypress.io')
    cy.contains('type').click()
    cy.url().should('include', '/commands/actions')

    cy.get('.action-email')
      .type('fake@email.com')
      .should('have.value', 'fake@email.com')
  })
})

चला या टेस्टचे विश्लेषण करूया:

ही टेस्ट कृतीत पाहण्यासाठी सायप्रस टेस्ट रनरमध्ये चालवा. तुम्हाला ब्राउझर सायप्रस किचन सिंक वेबसाइटवर नेव्हिगेट करताना, "type" लिंकवर क्लिक करताना आणि URL सत्यापित करताना दिसेल.

सायप्रस कमांड्स

सायप्रस तुमच्या ऍप्लिकेशनशी संवाद साधण्यासाठी विस्तृत कमांड्स प्रदान करते. येथे काही सर्वाधिक वापरल्या जाणाऱ्या कमांड्स आहेत:

या सायप्रसमध्ये उपलब्ध असलेल्या अनेक कमांड्सपैकी काही आहेत. कमांड्स आणि त्यांच्या पर्यायांच्या संपूर्ण सूचीसाठी सायप्रस डॉक्युमेंटेशनचा संदर्भ घ्या.

सायप्रसमधील असर्शन्स (Assertions)

तुमच्या ऍप्लिकेशनच्या अपेक्षित वर्तनाची पडताळणी करण्यासाठी असर्शन्स वापरले जातात. सायप्रस अंगभूत असर्शन्सचा एक समृद्ध संच प्रदान करते ज्याचा वापर तुम्ही घटकांची स्थिती, URL, शीर्षक आणि बरेच काही तपासण्यासाठी करू शकता. असर्शन्स `.should()` पद्धत वापरून सायप्रस कमांड्सनंतर जोडले जातात.

येथे काही सामान्य असर्शनची उदाहरणे आहेत:

तुम्ही तुमच्या विशिष्ट गरजांनुसार सानुकूल असर्शन्स देखील तयार करू शकता.

सायप्रस टेस्ट लिहिण्यासाठी सर्वोत्तम पद्धती

सर्वोत्तम पद्धतींचे पालन केल्याने तुम्हाला अधिक देखरेख करण्यायोग्य, विश्वसनीय आणि कार्यक्षम सायप्रस टेस्ट लिहिण्यास मदत होऊ शकते. येथे काही शिफारसी आहेत:

प्रगत सायप्रस तंत्र

स्टबिंग आणि मॉकिंग

सायप्रस तुम्हाला नेटवर्क रिक्वेस्ट आणि रिस्पॉन्स स्टब करण्याची परवानगी देते, ज्यामुळे तुम्हाला विविध परिस्थितींचे अनुकरण करता येते आणि तुमच्या ऍप्लिकेशनच्या एरर हँडलिंगची चाचणी करता येते. बाह्य APIs किंवा सेवांवर अवलंबून असलेल्या वैशिष्ट्यांची चाचणी करण्यासाठी हे विशेषतः उपयुक्त आहे.

नेटवर्क रिक्वेस्ट स्टब करण्यासाठी, तुम्ही `cy.intercept()` कमांड वापरू शकता. उदाहरणार्थ, खालील कोड `/api/users` वर GET रिक्वेस्ट स्टब करतो आणि एक मॉक प्रतिसाद देतो:


cy.intercept('GET', '/api/users', {
  statusCode: 200,
  body: [
    { id: 1, name: 'John Doe' },
    { id: 2, name: 'Jane Doe' }
  ]
}).as('getUsers')

त्यानंतर तुम्ही `cy.wait('@getUsers')` वापरून अडवलेल्या रिक्वेस्टची प्रतीक्षा करू शकता आणि तुमचे ऍप्लिकेशन मॉक प्रतिसादाला योग्यरित्या हाताळते याची पडताळणी करू शकता.

लोकल स्टोरेज आणि कुकीजसोबत काम करणे

सायप्रस लोकल स्टोरेज आणि कुकीजशी संवाद साधण्यासाठी कमांड्स प्रदान करते. तुम्ही तुमच्या टेस्टमध्ये लोकल स्टोरेज आणि कुकीज सेट करण्यासाठी, मिळवण्यासाठी आणि साफ करण्यासाठी या कमांड्सचा वापर करू शकता.

लोकल स्टोरेज आयटम सेट करण्यासाठी, तुम्ही विंडो ऑब्जेक्टमध्ये प्रवेश करण्यासाठी `cy.window()` कमांड वापरू शकता आणि नंतर `localStorage.setItem()` पद्धत वापरू शकता. उदाहरणार्थ:


cy.window().then((win) => {
  win.localStorage.setItem('myKey', 'myValue')
})

लोकल स्टोरेज आयटम मिळवण्यासाठी, तुम्ही `cy.window()` कमांड वापरू शकता आणि नंतर `localStorage.getItem()` पद्धत वापरू शकता. उदाहरणार्थ:


cy.window().then((win) => {
  const value = win.localStorage.getItem('myKey')
  expect(value).to.equal('myValue')
})

कुकी सेट करण्यासाठी, तुम्ही `cy.setCookie()` कमांड वापरू शकता. उदाहरणार्थ:


cy.setCookie('myCookie', 'myCookieValue')

कुकी मिळवण्यासाठी, तुम्ही `cy.getCookie()` कमांड वापरू शकता. उदाहरणार्थ:


cy.getCookie('myCookie').should('have.property', 'value', 'myCookieValue')

फाइल अपलोड हाताळणे

सायप्रस `cypress-file-upload` नावाचा एक प्लगइन प्रदान करते जो तुमच्या टेस्टमध्ये फाइल अपलोड सुलभ करतो. प्लगइन स्थापित करण्यासाठी, खालील कमांड चालवा:

npm install -D cypress-file-upload

नंतर, तुमच्या `cypress/support/commands.js` फाइलमध्ये खालील ओळ जोडा:


import 'cypress-file-upload';

त्यानंतर तुम्ही फाइल अपलोड करण्यासाठी `cy.uploadFile()` कमांड वापरू शकता. उदाहरणार्थ:


cy.get('input[type="file"]').attachFile('example.txt')

IFrames सोबत काम करणे

IFrames ची चाचणी करणे अवघड असू शकते, परंतु सायप्रस त्यांच्याशी संवाद साधण्याचा एक मार्ग प्रदान करते. तुम्ही IFrame लोड होण्याची प्रतीक्षा करण्यासाठी `cy.frameLoaded()` कमांड वापरू शकता आणि नंतर IFrame चा डॉक्युमेंट ऑब्जेक्ट मिळवण्यासाठी `cy.iframe()` कमांड वापरू शकता.


cy.frameLoaded('#myIframe')
cy.iframe('#myIframe').find('button').click()

सायप्रस आणि कंटीन्यूअस इंटिग्रेशन/कंटीन्यूअस डिप्लॉयमेंट (CI/CD)

तुमच्या ऍप्लिकेशनची गुणवत्ता सुनिश्चित करण्यासाठी सायप्रसला तुमच्या CI/CD पाइपलाइनमध्ये समाकलित करणे आवश्यक आहे. तुम्ही तुमच्या CI/CD वातावरणात हेडलेस मोडमध्ये सायप्रस टेस्ट चालवू शकता. ते कसे करायचे ते येथे आहे:

  1. सायप्रस स्थापित करा: सायप्रस तुमच्या प्रोजेक्टमध्ये अवलंबित्व (dependency) म्हणून स्थापित असल्याची खात्री करा.
  2. CI/CD कॉन्फिगर करा: प्रत्येक बिल्डनंतर सायप्रस टेस्ट चालवण्यासाठी तुमची CI/CD पाइपलाइन कॉन्फिगर करा.
  3. सायप्रस हेडलेस चालवा: हेडलेस मोडमध्ये सायप्रस टेस्ट चालवण्यासाठी `cypress run` कमांड वापरा.

उदाहरण CI/CD कॉन्फिगरेशन (GitHub Actions वापरून):


name: सायप्रस टेस्ट्स

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  cypress-run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
      - name: अवलंबित्व स्थापित करा
        run: npm install
      - name: सायप्रस रन
        uses: cypress-io/github-action@v5
        with:
          start: npm start
          wait-on: 'http://localhost:3000'

हे कॉन्फिगरेशन जेव्हा `main` ब्रांचवर कोड पुश केला जाईल किंवा `main` ब्रांचवर पुल रिक्वेस्ट तयार केली जाईल तेव्हा सायप्रस टेस्ट चालवेल. `cypress-io/github-action` ऍक्शन GitHub Actions मध्ये सायप्रस टेस्ट चालवण्याची प्रक्रिया सुलभ करते.

सायप्रस टेस्ट डीबग करणे

सायप्रस तुमच्या टेस्टमधील समस्या ओळखण्यात आणि दुरुस्त करण्यात मदत करण्यासाठी उत्कृष्ट डीबगिंग साधने प्रदान करते. सायप्रस टेस्ट डीबग करण्यासाठी येथे काही टिपा आहेत:

सायप्रस विरुद्ध इतर टेस्टिंग फ्रेमवर्क्स

सायप्रस एक शक्तिशाली एंड-टू-एंड टेस्टिंग फ्रेमवर्क असले तरी, ते इतर लोकप्रिय पर्यायांशी कसे तुलना करते हे समजून घेणे आवश्यक आहे. येथे एक संक्षिप्त आढावा आहे:

फ्रेमवर्कची निवड तुमच्या प्रोजेक्टच्या विशिष्ट गरजा आणि आवश्यकतांवर अवलंबून असते. आधुनिक वेब ऍप्लिकेशन्ससाठी सायप्रस एक उत्कृष्ट पर्याय आहे ज्यांना जलद, विश्वसनीय आणि डेव्हलपर-फ्रेंडली एंड-टू-एंड टेस्टिंगची आवश्यकता असते.

सायप्रसचे प्रत्यक्ष वापराची उदाहरणे

चला विविध प्रकारच्या वेब ऍप्लिकेशन्सची चाचणी घेण्यासाठी सायप्रस कसे वापरले जाऊ शकते याची काही प्रत्यक्ष उदाहरणे पाहूया:

ई-कॉमर्स ऍप्लिकेशनची चाचणी

तुम्ही ई-कॉमर्स ऍप्लिकेशनमधील विविध वापरकर्ता प्रवाहांची चाचणी घेण्यासाठी सायप्रस वापरू शकता, जसे की:

येथे एका सायप्रस टेस्टचे उदाहरण आहे जे वापरकर्ता यशस्वीरित्या कार्टमध्ये उत्पादन जोडू शकतो हे सत्यापित करते:


it('कार्टमध्ये एक उत्पादन जोडते', () => {
  cy.visit('/products')
  cy.get('.product-card').first().find('button').click()
  cy.get('.cart-count').should('have.text', '1')
})

सोशल मीडिया ऍप्लिकेशनची चाचणी

तुम्ही सोशल मीडिया ऍप्लिकेशनमधील वापरकर्ता परस्परसंवादाची चाचणी घेण्यासाठी सायप्रस वापरू शकता, जसे की:

येथे एका सायप्रस टेस्टचे उदाहरण आहे जे वापरकर्ता यशस्वीरित्या नवीन पोस्ट तयार करू शकतो हे सत्यापित करते:


it('एक नवीन पोस्ट तयार करते', () => {
  cy.visit('/profile')
  cy.get('#new-post-textarea').type('हॅलो, वर्ल्ड!')
  cy.get('#submit-post-button').click()
  cy.get('.post').first().should('contain', 'हॅलो, वर्ल्ड!')
})

बँकिंग ऍप्लिकेशनची चाचणी

बँकिंग ऍप्लिकेशन्ससाठी, सायप्रस गंभीर कार्यक्षमतेची चाचणी करण्यासाठी वापरले जाऊ शकते जसे की:

निधी हस्तांतरण सत्यापित करण्यासाठी एक टेस्ट (सुरक्षेसाठी योग्य स्टबिंगसह) अशी दिसू शकते:


it('यशस्वीरित्या निधी हस्तांतरित करते', () => {
  cy.visit('/transfer')
  cy.get('#recipient-account').type('1234567890')
  cy.get('#amount').type('100')
  cy.intercept('POST', '/api/transfer', { statusCode: 200, body: { success: true } }).as('transfer')
  cy.get('#transfer-button').click()
  cy.wait('@transfer')
  cy.get('.success-message').should('be.visible')
})

निष्कर्ष

सायप्रस एक शक्तिशाली आणि बहुमुखी एंड-टू-एंड टेस्टिंग फ्रेमवर्क आहे जे तुम्हाला तुमच्या वेब ऍप्लिकेशन्सची गुणवत्ता आणि विश्वसनीयता सुनिश्चित करण्यात मदत करू शकते. त्याचा डेव्हलपर-फ्रेंडली API, शक्तिशाली वैशिष्ट्ये आणि उत्कृष्ट कामगिरी यामुळे ते जगभरातील डेव्हलपर आणि QA इंजिनिअर्समध्ये एक लोकप्रिय पर्याय बनले आहे. या मार्गदर्शकामध्ये नमूद केलेल्या सर्वोत्तम पद्धतींचे पालन करून, तुम्ही प्रभावी सायप्रस टेस्ट लिहू शकता जे तुम्हाला विकास प्रक्रियेत लवकर बग्स पकडण्यास आणि तुमच्या वापरकर्त्यांना उच्च-गुणवत्तेचे सॉफ्टवेअर वितरित करण्यात मदत करतील.

जसजसे वेब ऍप्लिकेशन्स विकसित होत राहतील, तसतसे एंड-टू-एंड टेस्टिंगचे महत्त्व वाढतच जाईल. सायप्रस स्वीकारणे आणि ते तुमच्या विकास कार्यप्रवाहात समाकलित करणे तुम्हाला अधिक मजबूत, विश्वसनीय आणि वापरकर्ता-अनुकूल वेब अनुभव तयार करण्यास सक्षम करेल.