Episode ini memandu instalasi Playwright beserta browser dependencies, penyusunan playwright.config.ts secara lengkap, menjalankan test pertama lewat CLI, serta mengelola timeout dan retries agar suite berjalan stabil sejak awal.

Episode 2 sudah memberi model arsitektur. Sekarang waktunya praktek: menginstall Playwright dengan benar, menyusun konfigurasi yang akan dipakai sepanjang series, dan menjalankan test pertama lewat CLI. Episode 3 ini adalah gerbang menuju penulisan test yang sesungguhnya.
Instalasi yang benar sangat menentukan pengalaman selanjutnya. Banyak masalah yang muncul di project nyata — browser tidak ditemukan, test jalan di browser yang salah, atau timeout terlalu agresif — justru berakar pada instalasi dan konfigurasi yang terburu-buru. Mari kita lakukan dengan teliti, mulai dari nol.
Cara paling cepat untuk memulai project baru sekaligus membangun struktur default:
npm init playwright@latestPerintah ini akan membuat file konfigurasi, folder test contoh, dan menginstall @playwright/test. Jika project sudah ada dan kalian hanya ingin menambah Playwright, install package secara manual:
npm install -D @playwright/testSetelah package terpasang, unduh browser binaries:
npx playwright installPerintah npx playwright install mengunduh Chromium, Firefox, dan WebKit sekaligus. Di Linux, kalian mungkin perlu dependencies sistem tambahan yang bisa dipasang dengan:
npx playwright install --with-depsBrowser binaries tersimpan di direktori cache sistem, bukan di project — jadi tidak perlu di-commit. Yang perlu ditambahkan ke .gitignore adalah hasil test:
node_modules/
test-results/
playwright-report/File playwright.config.ts adalah pusat kendali seluruh suite. Contoh lengkap yang akan menjadi pola di series ini:
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
testDir: './tests',
timeout: 30000,
expect: {
timeout: 5000,
},
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
reporter: 'html',
use: {
baseURL: 'http://localhost:3000',
trace: 'on-first-retry',
screenshot: 'only-on-failure',
video: 'retain-on-failure',
},
projects: [
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
],
});Konfigurasi di atas memakai fullyParallel agar test berjalan paralel, forbidOnly untuk mencegah test.only lolos di CI, dan retries yang otomatis lebih agresif saat berjalan di CI. Report dipilih html untuk kemudahan inspeksi hasil.
Buat test pertama:
import { test, expect } from '@playwright/test';
test('judul halaman contoh', async ({ page }) => {
await page.goto('https://example.com');
await expect(page).toHaveTitle(/Example Domain/);
});Jalankan seluruh suite:
npx playwright testUntuk menjalankan satu file, satu test, atau dengan UI interaktif:
npx playwright test tests/awal.spec.ts
npx playwright test -g "judul halaman"
npx playwright test --ui
npx playwright test --headed--ui membuka Playwright UI yang interaktif, sedangkan --headed menjalankan browser dengan jendela terlihat sehingga kalian bisa mengamati jalannya test.
Setelah suite selesai, buka HTML report:
npx playwright show-reportReport HTML menampilkan hasil per test, langkah demi langkah, beserta trace dan screenshot jika tersedia. Ini akan menjadi teman setia kalian saat debugging.
Ada dua level timeout yang paling sering disetel:
timeout di config.expect.timeout.Timeout per assertion penting karena auto-waiting Playwright menunggu kondisi assertion — misalnya elemen visible — sampai batas waktu ini tercapai sebelum dianggap gagal.
Retries menjalankan ulang test yang gagal. Default yang sehat untuk CI adalah 1-2 retries, dan 0 di lokal agar feedback cepat:
lokal: retries 0
ci: retries 2
staging: retries 3Warning
Retries bukan obat untuk test yang tidak stabil. Retries hanya menutupi gejala flakiness. Jika sebuah test sering gagal lalu lolos setelah retry, root cause-nya harus diselidiki — kita akan bahas cara mengatasinya di episode 15.
Verifikasi konfigurasi kalian berjalan dengan:
npx playwright --version
npx playwright test --listnpx playwright test --list menampilkan daftar test tanpa menjalankannya, berguna untuk memastikan file test terbaca dan nama test sudah benar.
Episode 3 ini membuat project Playwright kalian benar-benar jalan: menginstall package dan browser dependencies, menyusun playwright.config.ts dengan project Chromium, Firefox, dan WebKit, menjalankan test pertama lewat CLI, serta memahami cara mengelola timeout dan retries untuk suite yang stabil.
Inti yang harus dibawa pulang:
npm init playwright@latest adalah jalan tercepat untuk project baru.npx playwright install dibutuhkan sekali untuk mengunduh browser binaries.playwright.config.ts mengontrol testDir, project, timeout, dan retries.expect.timeout mengatur berapa lama assertion menunggu kondisi.Di episode 4 selanjutnya kita akan membahas mengambil elemen dan berinteraksi dengan halaman — strategi locator berbasis text, role, CSS, dan XPath, interaksi dasar seperti click, fill, select, dan hover, serta bagaimana auto-waiting dan retry-ability bekerja di balik setiap aksi.