מבוא
במאמר זה, אסביר כיצד לצרף את כתובת ה-IP הציבורית שלנו לדוחות Allure באמצעות Playwright עם TypeScript. גישה זו מתבססת על מימוש קודם בפייתון, ומותאמת למערכת האקולוגית של Playwright. שיתפתי את הפתרון המוצג במאמר זה בפרויקט הדוגמה שלי Playwright Typescript example project.
הכלים הטכנולוגיים המשמשים למימוש הפתרון הם:
- שפת תכנות: TypeScript
- מנוע בדיקות: Playwright Test
- תשתית דוחות: Allure
- ספריית HTTP: Playwright’s built-in request API
מדוע עלינו לצרף את כתובת ה-IP שלנו לדוח?
- זה נעשה בעיקר למטרות דיבאגינג- אם האוטומציה נכשלת, אנו יכולים לסנן את הלוגים במערכת רישום מרכזית כמו Amazon CloudWatch.
- ה-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 זה עושה את הדברים הבאים:
- הוא מרחיב את בדיקת Playwright הבסיסית.
- הוא יוצר auto-use fixture בשם
logIpOnFailure
. - לאחר הרצת הבדיקה, הוא בודק אם הבדיקה נכשלה.
- אם הבדיקה נכשלת, נשלחת בקשה לאחזור כתובת ה-IP של המכונה.
- הכתובת מצורפת לאחר מכן לדוח 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/);
});
- אנו מייבאים את האובייקט המותאם אישית שלנו מה-fixture.
- אנו כותבים בדיקה פשוטה המנווטת לאתר Playwright ובודקת את הכותרת.
- אם בדיקה זו נכשלת, ה-fixture שלנו יצרף אוטומטית את כתובת ה-IP לדוח Allure.
מסקנה
על ידי מימוש פתרון זה, שיפרנו את דוחות Allure שלנו עם מידע יקר ערך. כעת, כל כשל בבדיקה יכלול את כתובת ה-IP הציבורית של המכונה שהריצה את הבדיקה, מה שמקל על איתור בעיות בסביבות בדיקה מבוזרות.
גישה זו מדגימה את הגמישות של מערכת ה-fixture של Playwright וכיצד ניתן למנף אותה כדי להרחיב את יכולות הדיווח של Allure בצורה חלקה.
בדיקות מהנות!