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

אוטומציית בדיקות - כיצד לצרף כתובת IP ציבורית לדוח Allure באמצעות Playwright TypeScript Auto Fixtures

פורסם:

מבוא

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

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

מדוע עלינו לצרף את כתובת ה-IP שלנו לדוח?

  1. זה נעשה בעיקר למטרות דיבאגינג- אם האוטומציה נכשלת, אנו יכולים לסנן את הלוגים במערכת רישום מרכזית כמו Amazon CloudWatch.
  2. ה-IP גם עוזר לזהות מכונה בעת הרצת הרצה מקבילית עם מספר מכולות או מכונות וירטואליות.

מימוש הפתרון

ראשית, בואו ניצור fixture מותאם אישית בקובץ בשם logIpOnFailure.ts:

import { test as base } from "@playwright/test";
import { allure } from "allure-playwright";

export const test = base.extend<{ logIpOnFailure: void }>({
  logIpOnFailure: [
    async ({ request }, use, testInfo) => {
      await use();
      if (testInfo.status !== testInfo.expectedStatus) {
        const response = await request.get("https://checkip.amazonaws.com");
        const ip = await response.text();
        allure.attachment("IP Address", ip.trim(), "text/plain");
      }
    },
    { auto: true },
  ],
});

fixture זה עושה את הדברים הבאים:

  1. הוא מרחיב את בדיקת Playwright הבסיסית.
  2. הוא יוצר auto-use fixture בשם logIpOnFailure.
  3. לאחר הרצת הבדיקה, הוא בודק אם הבדיקה נכשלה.
  4. אם הבדיקה נכשלת, נשלחת בקשה לאחזור כתובת ה-IP של המכונה.
  5. הכתובת מצורפת לאחר מכן לדוח Allure כקובץ טקסט מצורף.

כעת, בואו נראה כיצד להשתמש ב-fixture זה בבדיקה:

import { test } from "../fixtures/logIpOnFailure";
import { expect } from "@playwright/test";

test("has title", async ({ page }) => {
  await page.goto("https://playwright.dev/");

  // Expect a title "to contain" a substring.
  await expect(page).toHaveTitle(/nir/);
});
  1. אנו מייבאים את האובייקט המותאם אישית שלנו מה-fixture.
  2. אנו כותבים בדיקה פשוטה המנווטת לאתר Playwright ובודקת את הכותרת.
  3. אם בדיקה זו נכשלת, ה-fixture שלנו יצרף אוטומטית את כתובת ה-IP לדוח Allure.

allure report

מסקנה

על ידי מימוש פתרון זה, שיפרנו את דוחות Allure שלנו עם מידע יקר ערך. כעת, כל כשל בבדיקה יכלול את כתובת ה-IP הציבורית של המכונה שהריצה את הבדיקה, מה שמקל על איתור בעיות בסביבות בדיקה מבוזרות.

גישה זו מדגימה את הגמישות של מערכת ה-fixture של Playwright וכיצד ניתן למנף אותה כדי להרחיב את יכולות הדיווח של Allure בצורה חלקה.

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


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

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


הפוסט הקודם
אוטומציית בדיקות - כיצד להשתמש בכתובות URL בסיסיות דינמיות עם Playwright TypeScript ב-GitHub Actions
הפוסט הבא
אוטומציית בדיקות - בדיקות מונעות נתונים (DDT) עם Playwright TypeScript באמצעות Excel