"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > الاختبار المبني على البيانات في السرو: دليل شامل

الاختبار المبني على البيانات في السرو: دليل شامل

تم النشر بتاريخ 2024-07-30
تصفح:767

Data-Driven Testing in Cypress: A Comprehensive Guide

مقدمة

يعد الاختبار المبني على البيانات أسلوبًا قويًا يسمح لك بإجراء نفس الاختبار باستخدام مجموعات متعددة من البيانات. تعتبر هذه الطريقة مفيدة بشكل خاص للتحقق من سلوك التطبيق باستخدام مجموعات الإدخال المختلفة، مما يضمن تغطية شاملة لسيناريوهات مختلفة. في هذا المنشور، سنستكشف كيفية تنفيذ الاختبار المبني على البيانات في Cypress، مع الاستفادة من قدراته لإنشاء اختبارات فعالة وقابلة للصيانة.

ما هو الاختبار المبني على البيانات؟

يتضمن الاختبار المبني على البيانات فصل منطق الاختبار عن بيانات الاختبار، مما يسمح بتنفيذ الاختبارات عدة مرات بمدخلات مختلفة. يساعد هذا الأسلوب في تحديد حالات الحافة، والتحقق من صحة منطق الأعمال، والتأكد من أن التطبيق يتعامل مع نطاق واسع من البيانات بشكل صحيح.

فوائد الاختبار المبني على البيانات

  • زيادة تغطية الاختبار: يضمن اختبار التطبيق الخاص بك باستخدام مدخلات وسيناريوهات مختلفة.
  • تحسين قابلية الصيانة: يبسط صيانة الاختبار عن طريق فصل البيانات عن منطق الاختبار.
  • الكفاءة: يقلل من تكرار التعليمات البرمجية عن طريق إعادة استخدام نفس منطق الاختبار مع مجموعات بيانات مختلفة.
  • قابلية التوسع: تسهل إضافة حالات اختبار جديدة ببساطة عن طريق إضافة مجموعات بيانات جديدة.

تنفيذ الاختبار المبني على البيانات في السرو

توفر Cypress عدة طرق لتنفيذ الاختبارات المعتمدة على البيانات، بما في ذلك استخدام المصفوفات والتركيبات والمكتبات الخارجية. دعونا نستكشف هذه الطرق مع الأمثلة.

1. استخدام المصفوفات
يمكنك استخدام المصفوفات لتخزين مجموعات مختلفة من بيانات الاختبار والتكرار عليها باستخدام طريقة forEach.

مثال:

const testData = [
    { username: 'user1', password: 'password1' },
    { username: 'user2', password: 'password2' },
    { username: 'user3', password: 'password3' }
];

describe('Data-Driven Testing with Arrays', () => {
    testData.forEach((data) => {
        it(`should log in successfully with username: ${data.username}`, () => {
            cy.visit('/login');
            cy.get('input[name="username"]').type(data.username);
            cy.get('input[name="password"]').type(data.password);
            cy.get('button[type="submit"]').click();
            cy.url().should('include', '/dashboard');
        });
    });
});

2. استخدام التركيبات
المباريات هي ملفات خارجية تخزن بيانات الاختبار بتنسيق JSON. يتيح لك Cypress تحميل ملفات التثبيت واستخدام البيانات في اختباراتك.

مثال:

  1. أنشئ ملفًا ثابتًا cypress/fixtures/users.json:
[
    { "username": "user1", "password": "password1" },
    { "username": "user2", "password": "password2" },
    { "username": "user3", "password": "password3" }
]
  1. قم بتحميل واستخدام بيانات التثبيت في الاختبار الخاص بك:
describe('Data-Driven Testing with Fixtures', () => {
    before(() => {
        cy.fixture('users').then(function (data) {
            this.users = data;
        });
    });

    it('should log in successfully with multiple users', function () {
        this.users.forEach((user) => {
            cy.visit('/login');
            cy.get('input[name="username"]').type(user.username);
            cy.get('input[name="password"]').type(user.password);
            cy.get('button[type="submit"]').click();
            cy.url().should('include', '/dashboard');
            cy.visit('/logout'); // Log out after each login
        });
    });
});

3. استخدام المكتبات الخارجية
بالنسبة لسيناريوهات الاختبار المعتمدة على البيانات الأكثر تعقيدًا، يمكنك استخدام مكتبات خارجية مثل لقطات cypress-plugin أو cypress-data-driven.

مثال على بيانات السرو:

  1. تثبيت المكتبة:
npm install cypress-data-driven --save-dev
  1. استخدم المكتبة في الاختبار الخاص بك:
import dataDriven from 'cypress-data-driven';

const testData = [
    { username: 'user1', password: 'password1', expectedUrl: '/dashboard1' },
    { username: 'user2', password: 'password2', expectedUrl: '/dashboard2' },
    { username: 'user3', password: 'password3', expectedUrl: '/dashboard3' }
];

describe('Data-Driven Testing with External Library', () => {
    dataDriven(testData).forEach((data) => {
        it(`should log in successfully with username: ${data.username}`, () => {
            cy.visit('/login');
            cy.get('input[name="username"]').type(data.username);
            cy.get('input[name="password"]').type(data.password);
            cy.get('button[type="submit"]').click();
            cy.url().should('include', data.expectedUrl);
        });
    });
});

أفضل الممارسات للاختبار المبني على البيانات

  • استخدام البيانات المفيدة: تأكد من أن بيانات الاختبار الخاصة بك تغطي جميع السيناريوهات المحتملة، بما في ذلك حالات الحافة والمدخلات غير الصالحة.
  • حافظ على فصل البيانات: قم بتخزين بيانات الاختبار بشكل منفصل عن منطق الاختبار لتحسين إمكانية الصيانة.
  • إنشاء البيانات تلقائيًا: استخدم البرامج النصية أو الأدوات لإنشاء مجموعات كبيرة من بيانات الاختبار تلقائيًا.
  • التحقق من صحة بيانات الاختبار: قم بمراجعة بيانات الاختبار الخاصة بك والتحقق من صحتها بانتظام للتأكد من أنها تظل ذات صلة ودقيقة.

خاتمة

يعد الاختبار المبني على البيانات أسلوبًا قيمًا يعزز تغطية الاختبار وقابلية الصيانة والكفاءة. من خلال الاستفادة من إمكانات Cypress واستخدام المصفوفات أو التركيبات أو المكتبات الخارجية، يمكنك تنفيذ اختبارات قوية تعتمد على البيانات والتي تضمن أن تطبيقك يتعامل مع نطاق واسع من المدخلات بشكل صحيح. ومن خلال اتباع أفضل الممارسات، يمكنك تحسين موثوقية وفعالية اختباراتك.

اختبار سعيد!

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/aswani25/data-driven-testing-in-cypress-a-comprehensive-guide-25ai?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3