Heim >Web-Frontend >js-Tutorial >Optimieren Sie Ihre ETests mit der Playwright- und Cucumber-Integration
In diesem Beitrag erkläre ich Ihnen, warum Playwright und Cucumber außergewöhnliche Tools für End-to-End-Tests (E2E) sind. Anschließend befassen wir uns mit den Schritten zur Integration von Playwright für die nahtlose Nutzung in einer JavaScript-Frontend-Anwendung. Abschließend gebe ich Ihnen einige Profi-Tipps, um Ihre Effizienz mit Playwright zu maximieren.
Obwohl es zahlreiche leistungsfähige Tools zum Erstellen von E2E-Testsuiten gibt, erreicht keines die Synergie von Playwright und Cucumber.
Hier erfahren Sie, warum sich Playwright auf dem Markt durch das Schreiben von E2E-Tests auszeichnet, um nur einige zu nennen:
Ohne Cucumber kann die Verwaltung von Testcode jedoch zu einem Wartungsalbtraum werden. Cucumber erleichtert das Schreiben von Tests in einfacher, für Menschen lesbarer Sprache und macht sie auch für technisch nicht versierte Interessenten zugänglich. Als Eckpfeiler der verhaltensgesteuerten Entwicklung (BDD) fungiert Cucumber als technische Dokumentation und beschleunigt das Onboarding für neue Ingenieure.
Installieren Sie die erforderlichen Pakete mit npm oder Yarn.
npm install @playwright/test playwright-core @cucumber/cucumber cucumber-html-reporter concurrently
Organisieren Sie Ihr Projekt wie folgt:
cucumber.js cucumber.report.js /e2e /features example.feature /steps example.steps.js
Erstellen Sie eine Cucumber-Konfigurationsdatei (gurke.js) im Stammverzeichnis Ihres Projekts mit folgendem Inhalt:
// filepath: /cucumber.js module.exports = { default: { require: ["./steps/**/*.js"], format: ["pretty"], paths: ["./features/**/*.feature"], }, };
Erstellen Siegurke.report.js – Eine Datei zum Konfigurieren des Testberichts. Konfigurationsmöglichkeiten finden Sie hier
// filepath: /cucumber.report.js import reporter from 'cucumber-html-reporter const options = { theme: 'bootstrap', output: report/report.html', jsonFile: 'report/report.json', brandTitle: 'E2E Test Report' };
Erstellen Sie eine Feature-Datei im Features-Verzeichnis, z. B. example.feature:
npm install @playwright/test playwright-core @cucumber/cucumber cucumber-html-reporter concurrently
Erstellen Sie eine Schrittdefinitionsdatei im Verzeichnis „steps“, z. B. example.steps.js:
cucumber.js cucumber.report.js /e2e /features example.feature /steps example.steps.js
Fügen Sie ein Skript zu Ihrer package.json hinzu, um die Tests auszuführen:
// filepath: /cucumber.js module.exports = { default: { require: ["./steps/**/*.js"], format: ["pretty"], paths: ["./features/**/*.feature"], }, };
Das npm-Paket ist ein praktisches Tool, mit dem Sie zwei Prozesse gleichzeitig ausführen können. Um den E2E-Test auszuführen, müssen Sie auch die Anwendung ausführen, manchmal lokal und manchmal remote.
Tests ausführen mit:
// filepath: /cucumber.report.js import reporter from 'cucumber-html-reporter const options = { theme: 'bootstrap', output: report/report.html', jsonFile: 'report/report.json', brandTitle: 'E2E Test Report' };
// filepath: /e2e/features/example.feature Feature: Example feature Scenario: Open a webpage Given I open the "https://example.com" page Then the title should be "Example.com"
// filepath: /e2e/steps/example.steps.js import { Before, Given, Then, setDefaultTimeout, After } from '@cucumber/cucumber'; import { chromium, expect } from 'playwright'; setDefaultTimeout(30 * 1000); //milliseconds let browser, page, context; Before(async function(){ browser = await chromium.launch({headless: true}); context = await brwoser.newContext(); page = await content.newPage(); }); Given('I open the {string} page', async function (url) { await page.goto(url); }); Then('the title should be {string}', async function (title) { const pageTitle = await page.title(); expect(pageTitle).toHaveText(title); }); After(async function(){ await context.close(); await browser.close(); });
Wenn Sie hier angekommen sind, habe ich mich zufriedenstellend bemüht, Sie weiterzulesen. Bitte hinterlassen Sie Kommentare oder teilen Sie Korrekturen mit.
Das obige ist der detaillierte Inhalt vonOptimieren Sie Ihre ETests mit der Playwright- und Cucumber-Integration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!