Dalam siaran ini, saya akan membimbing anda tentang sebab Penulis Drama dan Timun ialah alat yang luar biasa untuk ujian hujung ke hujung (E2E). Kami kemudiannya akan menyelami langkah-langkah untuk menyepadukan Playwright untuk penggunaan yang lancar dalam aplikasi bahagian hadapan JavaScript. Akhir sekali, saya akan berkongsi beberapa petua profesional untuk memaksimumkan kecekapan anda dengan Penulis Drama.
Walaupun terdapat banyak alatan yang berkebolehan untuk membina suite ujian E2E, tiada satu pun yang sepadan dengan sinergi Penulis Drama dan Timun.
Inilah sebab Penulis Drama menonjol dalam pasaran untuk menulis ujian E2E, untuk menamakan beberapa:
Namun, tanpa Timun menguruskan kod ujian boleh menjadi mimpi ngeri penyelenggaraan. Timun memudahkan ujian menulis dalam bahasa yang mudah dibaca manusia, menjadikannya boleh diakses walaupun kepada pihak berkepentingan bukan teknikal. Sebagai asas kepada Pembangunan Didorong Tingkah Laku (BDD), Timun bertindak sebagai dokumentasi teknikal dan mempercepatkan onboarding untuk jurutera baharu.
Pasang pakej yang diperlukan menggunakan npm atau benang.
npm install @playwright/test playwright-core @cucumber/cucumber cucumber-html-reporter concurrently
Atur projek anda seperti ini:
cucumber.js cucumber.report.js /e2e /features example.feature /steps example.steps.js
Buat Fail Konfigurasi Timun - fail cucumber.js dalam akar projek anda dengan kandungan berikut:
// filepath: /cucumber.js module.exports = { default: { require: ["./steps/**/*.js"], format: ["pretty"], paths: ["./features/**/*.feature"], }, };
Buat cucumber.report.js - Fail untuk mengkonfigurasi laporan ujian. Pilihan konfigurasi boleh didapati di sini
// 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' };
Buat fail ciri dalam direktori ciri, cth., example.feature:
npm install @playwright/test playwright-core @cucumber/cucumber cucumber-html-reporter concurrently
Buat fail definisi langkah dalam direktori langkah, cth., example.steps.js:
cucumber.js cucumber.report.js /e2e /features example.feature /steps example.steps.js
Tambahkan skrip pada package.json anda untuk menjalankan ujian:
// filepath: /cucumber.js module.exports = { default: { require: ["./steps/**/*.js"], format: ["pretty"], paths: ["./features/**/*.feature"], }, };
pakej npm secara serentak ialah alat berguna yang membolehkan anda melaksanakan dua proses pada ujian yang sama, untuk melaksanakan ujian E2E, anda juga perlu menjalankan aplikasi, kadangkala secara tempatan dan kadangkala dari jauh.
Laksanakan ujian dengan:
// 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(); });
Jika anda telah sampai di sini, maka saya telah melakukan usaha yang memuaskan untuk memastikan anda terus membaca. Sila berbaik hati untuk meninggalkan sebarang komen atau berkongsi pembetulan.
Atas ialah kandungan terperinci Perkasakan ETests Anda dengan Pengarang Drama dan Integrasi Timun. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!