דלג לתוכן
חזור

אוטומציית בדיקות - בדיקות מונעות נתונים (DDT) עם Playwright TypeScript באמצעות Excel

פורסם:

מבוא

באוטומציית בדיקות מודרנית, היכולת להריץ את אותה בדיקה עם מערכי נתונים שונים היא קריטית לכיסוי בדיקות מקיף. בדיקות מונעות נתונים מאפשרות לנו לאמת את התנהגות היישום שלנו על פני תרחישים שונים מבלי לשכפל קוד בדיקה. מאמר זה בוחן יישום בדיקות מונעות נתונים באמצעות Playwright TypeScript וקבצי Excel, ומציע פתרון מעשי לניהול נתוני בדיקה חיצוניים.

שיתפתי את הפתרון המוצג במאמר זה בפרויקט הדוגמה שלי Playwright Typescript example project.

הכלים הטכנולוגיים המשמשים למימוש הפתרון הם:

מדוע בדיקות מונעות נתונים חשובות?

בדיקות מונעות נתונים מפרידות את לוגיקת הבדיקה מנתוני הבדיקה, ומספקות מספר יתרונות מרכזיים:

מימוש הפתרון

בואו נפרק את המימוש למרכיבי הליבה שלו:

1. מחלקת כלי עזר לקבצים

ראשית, אנו יוצרים מחלקת כלי עזר לטיפול בפעולות קבצי Excel:

import xlsx from "xlsx";

/**
 * Utility class for file operations
 */
export class FileUtils {
  /**
   * Reads data from an Excel file and converts it to a JSON array.
   * @param {string} filePath - The path to the Excel file.
   * @returns {Promise<{ [key: string]: any }[]>} - A promise that resolves to an array of JSON objects representing the data in the Excel file.
   */
  static async readExcelFile(
    filePath: string
  ): Promise<{ [key: string]: any }[]> {
    const file = xlsx.readFile(filePath);
    const data: any[] = [];
    const sheets = file.SheetNames;
    for (let i = 0; i < sheets.length; i++) {
      const sheetData = xlsx.utils.sheet_to_json(file.Sheets[sheets[i]]);
      data.push(...sheetData);
    }
    return data;
  }
}

מחלקה זו:

2. הרצת תסריטי בדיקה

כך אנו מריצים תסריטי בדיקה מונעי הנתונים:

import { Constants } from "../utilities/constants";
import { FileUtils } from "../utilities/fileUtils";
import { expect, test } from "@playwright/test";
import path from "path";

const data = await FileUtils.readExcelFile(
  path.join(Constants.DATA_PATH, "data.xls")
);

data.forEach(record => {
  test(`Login test for ${record.description}`, async ({ page }) => {
    await page.goto("https://www.saucedemo.com/");
    if (record.user) {
      await page.fill('input[data-test="username"]', record.user);
    }
    if (record.password) {
      await page.fill('input[data-test="password"]', record.password);
    }
    await page.click('input[data-test="login-button"]');
    const errorMessage = page.locator('[data-test="error"]');
    await expect(errorMessage).toHaveText(record.error);
  });
});

בואו נפרק מה קורה כאן:

טעינת נתונים:

יצירת בדיקה

3. מבנה נתוני Excel

קובץ ה-Excel שלנו data.xls צריך לכלול עמודות התואמות לדרישות הבדיקה:

4. גילוי בדיקות במצב ממשק משתמש של Playwright

Playwright ui mode test discovery

אחת התכונות הנהדרות של Playwright היא מצב ממשק המשתמש המובנה שלו, המאפשר לנו לזהות ולהריץ תסריטי בדיקות באופן ויזואלי. במצב ממשק המשתמש, Playwright יקצה אוטומטית שמות תיאוריים לבדיקות מונעות הנתונים בהתבסס על המידע בקובץ ה-Excel. זה מקל על צוות הבדיקות להבין ולהריץ במהירות את תסריטי הבדיקות השונים, בנפרד או יחדיו כסוויטת בדיקות. מנוע הבדיקות של Playwright מספק ממשק נוח לניהול והרצת הבדיקות האוטומטיות, ומשפר עוד יותר את זרימת העבודה של בדיקות מונעות נתונים.

מסקנה

בדיקות מונעות נתונים עם Playwright TypeScript ו-Excel מספקות פתרון חזק לניהול נתוני בדיקה בנפרד מקוד הבדיקה. גישה זו הופכת את הבדיקות ליותר ניתנות לתחזוקה, ניתנות להרחבה ונגישות לחברי צוות שאינם טכניים.

שילוב יכולות הבדיקה החזקות של Playwright עם הממשק המוכר של Excel יוצר זרימת עבודה יעילה לביצוע כיסוי בדיקות נרחב. על ידי הפרדת נתוני הבדיקה מלוגיקת הבדיקה, אנו יכולים להוסיף בקלות מקרי בדיקה חדשים מבלי לשנות קוד, מה שהופך את סוויטת הבדיקות שלנו לגמישה וניתנת לתחזוקה יותר.

בדיקות מהנות!


הציעו שינויים

מוכנים לבנות את מפת הדרכים שלכם? נתחיל כאן


הפוסט הקודם
אוטומציית בדיקות - כיצד לצרף כתובת IP ציבורית לדוח Allure באמצעות Playwright TypeScript Auto Fixtures
הפוסט הבא
אוטומציית בדיקות - בחירת אלמנטים יעילה עם Playwright Typescript באמצעות מזהי בדיקה