1. Home
  2. ›
  3. Blog
  4. ›
  5. Selenium vs Cypress vs Playwright: Choosing the Right Automation Testing Framework | Frans Training

Selenium vs Cypress vs Playwright: Choosing the Right Automation Testing Framework | Frans Training

In-depth comparison of Selenium, Cypress, and Playwright automation testing frameworks. Features, performance, ecosystem, and recommendations.

Author: Tim Instruktur Frans Training — Praktisi & Instruktur

Published: 2026-03-26T11:40:05.000Z

Selenium vs Cypress vs Playwright: Panduan Memilih Framework Automation Testing untuk Tim QA di Indonesia

Dalam satu dekade terakhir, lanskap automation testing berubah drastis. Selenium yang mendominasi selama 15 tahun kini menghadapi persaingan serius dari Cypress dan Playwright — dua framework modern yang menjanjikan kecepatan eksekusi lebih tinggi, debugging lebih mudah, dan developer experience yang jauh lebih baik. Bagi tim QA di perusahaan fintech, perbankan, dan e-commerce Indonesia, pemilihan framework ini bukan sekadar preferensi teknis — ini adalah keputusan arsitektur yang berdampak pada velocity tim, coverage testing, dan ultimately kualitas produk yang dirilis ke jutaan pengguna.

Artikel ini membedah ketiga framework secara mendalam dari perspektif praktisi yang telah mengimplementasikan ketiganya di berbagai konteks industri Indonesia. Kami akan membahas arsitektur internal, performa benchmark, ekosistem tooling, dan memberikan rekomendasi konkret berdasarkan skenario tim Anda.

Memahami Arsitektur: Mengapa Ini Penting

Sebelum membandingkan fitur, penting untuk memahami bagaimana masing-masing framework bekerja di balik layar. Arsitektur menentukan segalanya — dari kecepatan eksekusi hingga jenis bug yang bisa Anda tangkap.

Arsitektur Selenium WebDriver

Selenium menggunakan arsitektur client-server melalui protokol WebDriver (W3C standard). Ketika test script mengirim perintah, ia berkomunikasi melalui HTTP request ke WebDriver binary (chromedriver, geckodriver, dsb.), yang kemudian menerjemahkan perintah tersebut menjadi instruksi native browser.

Implikasi arsitektur ini:

  • Language agnostic: Karena komunikasi via HTTP, Selenium mendukung Java, Python, C#, Ruby, JavaScript, dan bahasa lain yang bisa mengirim HTTP request
  • Overhead jaringan: Setiap perintah melalui HTTP round-trip, yang menambah latensi 10-50ms per command
  • Real browser control: WebDriver mengontrol browser persis seperti pengguna nyata — termasuk rendering, JavaScript execution, dan network stack
  • Flakiness inherent: Arsitektur out-of-process berarti race condition antara test script dan browser state adalah masalah yang sering terjadi

Materi arsitektur Selenium ini dibahas secara mendalam dalam modul Web Automation Fundamentals dan Selenium WebDriver pada pelatihan Web Automation Testing kami, di mana peserta mempelajari cara kerja internal WebDriver protocol untuk memahami mengapa flaky test terjadi.

Arsitektur Cypress

Cypress mengambil pendekatan radikal berbeda. Alih-alih mengontrol browser dari luar, Cypress berjalan di dalam browser itu sendiri — dalam iframe yang sama dengan aplikasi yang diuji. Cypress menggunakan Node.js server di backend untuk task yang membutuhkan akses OS (file system, network proxy, dsb.).

Implikasi arsitektur in-process:

  • Automatic waiting: Karena berjalan di dalam browser, Cypress bisa observe DOM changes secara real-time tanpa polling — mengurangi flaky test secara signifikan
  • Network interception native: Cypress bisa intercept dan mock request di level browser tanpa proxy eksternal
  • JavaScript only: Test hanya bisa ditulis dalam JavaScript/TypeScript
  • Single browser tab: Arsitektur ini membuat Cypress tidak bisa mengontrol multiple tab atau multiple browser secara native
  • Same-origin limitation: Cypress kesulitan dengan skenario yang melibatkan cross-origin navigation

Modul Cypress Framework dalam pelatihan kami membahas bagaimana arsitektur ini mempengaruhi strategi test design dan kapan limitasi Cypress menjadi deal-breaker.

Arsitektur Playwright

Playwright, dikembangkan oleh Microsoft (oleh tim yang sama yang membuat Puppeteer di Google), menggunakan protokol CDP (Chrome DevTools Protocol) dan protokol custom untuk Firefox dan WebKit. Ini memberikan kontrol yang jauh lebih granular dibanding WebDriver protocol.

Keunggulan arsitektur Playwright:

  • Multi-browser native: Chromium, Firefox, dan WebKit (Safari engine) didukung secara first-class melalui browser binary yang di-bundle
  • Browser context isolation: Bisa menjalankan multiple isolated browser context dalam satu browser instance — jauh lebih efisien dari membuka browser baru
  • Auto-wait built-in: Seperti Cypress, Playwright memiliki auto-waiting yang cerdas, tetapi tanpa limitasi single-origin
  • Multi-language: Mendukung JavaScript, TypeScript, Python, C#, dan Java
  • Tracing dan debugging: Trace viewer bawaan merekam screenshot, DOM snapshot, network log, dan console output untuk setiap step

Perbandingan Teknis Detail

Kecepatan Eksekusi

Kecepatan adalah faktor kritis untuk tim yang menjalankan ribuan test case dalam CI/CD pipeline. Berdasarkan benchmark yang dilakukan pada aplikasi e-commerce dengan 500 test case:

  • Playwright: ~8 menit (dengan parallelization bawaan, 4 worker) — tercepat
  • Cypress: ~14 menit (parallelization memerlukan Cypress Cloud atau plugin) — sedang
  • Selenium Grid: ~18 menit (dengan 4 node parallel) — paling lambat

Perbedaan ini berasal dari overhead arsitektur. Selenium membutuhkan HTTP round-trip per command, sementara Playwright dan Cypress berkomunikasi melalui WebSocket atau in-process call yang jauh lebih efisien.

Skenario dari lapangan: Sebuah tim QA di perusahaan fintech Jakarta yang mengelola aplikasi pembayaran digital memiliki 2.300 automated test case dengan Selenium. Pipeline CI/CD mereka membutuhkan 47 menit untuk complete. Setelah migrasi parsial ke Playwright (dimulai dari test suite kritis), waktu turun menjadi 22 menit untuk coverage yang sama — pengurangan 53%. Dampaknya signifikan: developer tidak lagi mengabaikan hasil test karena terlalu lama menunggu.

Browser Support

Kebutuhan browser support sangat bergantung pada profil pengguna aplikasi Anda:

  • Selenium: Chrome, Firefox, Edge, Safari, Opera, dan browser apa pun yang memiliki WebDriver implementation. Paling luas.
  • Playwright: Chromium, Firefox, WebKit (Safari engine). Menggunakan browser binary sendiri yang di-bundle, memastikan konsistensi.
  • Cypress: Chrome, Chromium, Edge, Firefox, dan Electron. Tidak mendukung Safari atau WebKit secara native.

Untuk pasar Indonesia, di mana Chrome mendominasi ~70% dan Safari ~15% (terutama di segmen premium), Playwright memberikan coverage paling optimal karena mendukung WebKit. Jika aplikasi Anda menargetkan pengguna iPhone premium (perbankan, wealth management), ketiadaan Safari testing di Cypress bisa menjadi risiko.

Debugging dan Developer Experience

Di sinilah framework modern benar-benar unggul dibanding Selenium tradisional:

Cypress memiliki Test Runner GUI yang memungkinkan Anda melihat setiap step secara visual, time-travel debugging (klik pada step untuk melihat state DOM saat itu), dan automatic screenshot/video pada failure. Developer experience Cypress adalah yang terbaik untuk test development dan debugging iteratif.

Playwright menawarkan Trace Viewer — tool yang merekam trace lengkap dari setiap test run, termasuk DOM snapshot, network waterfall, console log, dan source code mapping. Anda bisa membuka trace file dan menelusuri setiap langkah test seolah-olah sedang replay. Playwright juga memiliki codegen tool yang merekam interaksi browser dan menghasilkan test code secara otomatis.

Selenium tidak memiliki built-in debugging tool. Anda bergantung pada IDE debugger, screenshot manual, dan log analysis. Ini mengapa Selenium test development dan maintenance secara signifikan lebih lambat.

Handling Asynchronous Operations

Salah satu sumber utama flaky test adalah penanganan operasi asynchronous — API call, animasi, lazy loading, single page application routing.

  • Selenium: Memerlukan explicit wait atau implicit wait yang harus dikonfigurasi manual. WebDriverWait dengan ExpectedConditions adalah pola standar, tetapi memerlukan boilerplate code yang signifikan.
  • Cypress: Automatic retry pada assertions. Cypress akan terus me-retry assertion hingga timeout (default 4 detik). Sangat efektif untuk SPA. Namun, cy.wait() yang hardcoded masih sering disalahgunakan oleh developer junior.
  • Playwright: Auto-waiting pada actionable checks (visible, enabled, stable). Playwright menunggu elemen menjadi actionable sebelum melakukan click, fill, dll. Ditambah expect().toBeVisible() dengan auto-retry pada assertions.

CI/CD Integration: Pipeline yang Production-Ready

Modul Framework Design & CI/CD dalam pelatihan kami membahas secara detail bagaimana mengintegrasikan masing-masing framework ke dalam pipeline CI/CD. Berikut perbandingan praktisnya:

Docker Support

Playwright menyediakan official Docker image (mcr.microsoft.com/playwright) yang sudah termasuk semua browser dependency. Setup di CI/CD paling straightforward:

Cypress juga menyediakan official Docker images, tetapi konfigurasi untuk headless mode dan video recording memerlukan perhatian ekstra pada resource allocation (memory dan CPU).

Selenium memerlukan Selenium Grid (atau Selenoid) untuk parallel execution di CI/CD. Setup lebih kompleks tetapi sudah mature dan well-documented.

Parallel Execution

  • Playwright: Parallel by default dengan configurable worker count. Sharding bawaan untuk distribusi across CI nodes.
  • Cypress: Parallel execution memerlukan Cypress Cloud (berbayar) atau community plugin. Ini sering menjadi bottleneck bagi tim kecil.
  • Selenium: Parallel via Selenium Grid, TestNG (Java), atau pytest-xdist (Python). Memerlukan infrastructure setup.

Reporting

Semua framework mendukung JUnit XML reporter yang compatible dengan CI/CD tools mainstream. Playwright memiliki built-in HTML reporter yang sangat informatif. Cypress Dashboard memberikan analytics dan flaky test detection. Selenium biasanya dipasangkan dengan Allure Report atau ExtentReports.

Skenario implementasi: Sebuah bank digital di Indonesia membangun pipeline CI/CD dengan GitLab CI di mana setiap merge request trigger Playwright test suite. Mereka menggunakan sharding untuk membagi 1.800 test ke 6 parallel runner, dengan total execution time 12 menit. Trace files dari failed tests di-upload sebagai CI artifact sehingga developer bisa debug tanpa re-run. Pola ini dibahas dalam modul Framework Design & CI/CD dengan hands-on lab.

Kapan Menggunakan Framework Mana?

Pilih Selenium Ketika:

  • Tim Anda menggunakan Java, C#, atau Python sebagai bahasa utama dan tidak ingin menambah JavaScript ke stack
  • Anda memerlukan cross-browser testing yang sangat luas termasuk browser legacy
  • Anda sudah memiliki existing Selenium test suite yang besar dan migration cost tidak justified
  • Proyek memerlukan mobile testing (Selenium + Appium adalah kombinasi standar)
  • Organisasi memiliki vendor lock-in concern dan menginginkan W3C standard

Pilih Cypress Ketika:

  • Aplikasi Anda adalah SPA modern (React, Vue, Angular) dan tim developer yang menulis test
  • Anda mengutamakan developer experience dan kecepatan iterasi test development
  • Component testing adalah kebutuhan utama (Cypress memiliki component testing bawaan)
  • Tim Anda relatif kecil dan menginginkan learning curve yang rendah
  • Cross-browser testing bukan prioritas utama (mayoritas pengguna di Chrome/Chromium)

Pilih Playwright Ketika:

  • Anda memerlukan cross-browser testing termasuk WebKit/Safari
  • Kecepatan CI/CD adalah faktor kritis (parallel execution bawaan, sharding)
  • Anda menangani skenario kompleks: multi-tab, multi-user, iframe, popup
  • Tim Anda mixed-language dan menginginkan flexibility bahasa pemrograman
  • Anda memulai dari nol dan menginginkan framework yang paling future-proof
  • API testing dan UI testing perlu diintegrasikan dalam satu framework

Strategi Migrasi dari Selenium

Banyak tim di Indonesia masih menggunakan Selenium dan mempertimbangkan migrasi. Berdasarkan pengalaman membantu beberapa tim melakukan transisi, berikut pendekatan yang kami rekomendasikan:

Fase 1: Parallel Running (Minggu 1-4)

  1. Pilih satu module/feature yang paling sering di-test
  2. Tulis ulang test suite module tersebut di framework baru
  3. Jalankan kedua framework secara parallel di CI/CD
  4. Bandingkan: execution time, flaky rate, maintenance effort

Fase 2: Gradual Migration (Bulan 2-6)

  1. Semua test baru ditulis di framework baru
  2. Migrate test lama saat ada perubahan pada feature yang di-test
  3. Bangun shared utilities dan page objects di framework baru
  4. Training tim secara bertahap

Fase 3: Full Cutover (Bulan 6-12)

  1. Migrate remaining test suite
  2. Decommission Selenium infrastructure
  3. Optimize parallel execution dan reporting

Modul Page Object Model & Best Practices membahas bagaimana mendesain page object yang framework-agnostic sehingga memudahkan migrasi. Konsep separation of concerns antara test logic dan page interaction tetap relevan di ketiga framework.

Real-World Implementation: E-Commerce Checkout Flow

Untuk memberikan gambaran konkret, berikut bagaimana test yang sama ditulis di ketiga framework. Skenario: user menambahkan produk ke cart dan melakukan checkout.

Di Selenium, Anda menulis explicit wait untuk setiap elemen, mengelola WebDriverWait dan ExpectedConditions, dan secara manual memastikan page load complete. Test cenderung verbose — sebuah checkout flow bisa membutuhkan 40-60 baris kode.

Di Cypress, kode menjadi lebih deklaratif. Automatic waiting menghilangkan kebutuhan explicit wait. Command chaining membuat flow mudah dibaca. Tetapi Anda perlu cy.intercept() untuk menangani API call dan memastikan data tersedia sebelum assertion. Checkout flow yang sama sekitar 20-30 baris.

Di Playwright, Anda mendapatkan keseimbangan antara kontrol dan convenience. Auto-waiting seperti Cypress, tetapi dengan kemampuan menangani multiple page dan network conditions yang lebih robust. Checkout flow sekitar 25-35 baris dengan readability yang sangat baik.

Modul Workshop Project dalam pelatihan kami menggunakan skenario real-world seperti ini, di mana peserta mengimplementasikan test suite lengkap untuk sebuah web application menggunakan ketiga framework secara hands-on.

Pertimbangan untuk Tim QA Indonesia

Beberapa faktor spesifik yang relevan untuk konteks Indonesia:

  • Talent availability: Developer dan QA engineer dengan keahlian Selenium masih paling banyak di pasar kerja Indonesia. Cypress dan Playwright talent pool berkembang pesat tetapi masih lebih kecil.
  • Infrastruktur CI/CD: Banyak perusahaan Indonesia masih menggunakan on-premise CI/CD. Playwright dan Cypress membutuhkan resource yang lebih rendah dibanding Selenium Grid, menguntungkan untuk infrastruktur yang terbatas.
  • Regulasi OJK dan BI: Untuk sektor perbankan dan fintech, automated testing bukan hanya best practice tetapi bagian dari persyaratan manajemen risiko teknologi. Framework yang menghasilkan evidence (screenshot, trace, video) membantu memenuhi audit requirement.
  • Network conditions: Aplikasi yang diakses dari berbagai daerah di Indonesia menghadapi kondisi jaringan yang bervariasi. Playwright memiliki kemampuan network throttling bawaan yang berguna untuk testing under poor network conditions.

Apa yang Dipelajari di Pelatihan Kami

Pelatihan Web Automation Testing: Selenium & Cypress dirancang untuk memberikan kemampuan praktis dalam ketiga framework, bukan sekadar teori perbandingan. Berikut pemetaan modul:

  • Web Automation Fundamentals: Arsitektur browser, DOM interaction, WebDriver protocol vs CDP, konsep waiting strategies. Fondasi yang berlaku untuk semua framework.
  • Selenium WebDriver: Setup environment, locator strategies, WebDriverWait, handling dynamic elements, multi-browser execution, Selenium Grid configuration.
  • Cypress Framework: Cypress architecture, command chaining, custom commands, intercept & stub, component testing, Cypress configuration best practices.
  • Page Object Model & Best Practices: Design pattern yang framework-agnostic, separation of concerns, data-driven testing, test data management.
  • Framework Design & CI/CD: Custom framework architecture, Docker containerization, GitHub Actions/GitLab CI integration, parallel execution, reporting dan artifact management.
  • Workshop Project: End-to-end implementation — peserta membangun test suite lengkap untuk aplikasi web menggunakan Selenium dan Cypress, kemudian membandingkan hasilnya secara langsung.

Pelatihan Terkait untuk Pengembangan Kompetensi QA

  • API Testing: Postman & REST Assured — Lengkapi UI testing dengan API testing untuk coverage yang comprehensive
  • SDET & Test Automation Engineering — Jalur karir untuk QA yang ingin menjadi Software Development Engineer in Test
  • Performance & Load Testing: JMeter — Testing performa yang melengkapi functional testing
  • Mobile Application Testing — Extend automation ke mobile platform dengan Appium

FAQ: Selenium vs Cypress vs Playwright

Apakah Selenium sudah obsolete dan harus ditinggalkan?

Tidak. Selenium masih merupakan framework automation testing paling mature dengan ekosistem terbesar. Selenium 4 membawa peningkatan signifikan termasuk native CDP support dan improved WebDriver protocol. Yang berubah adalah Selenium bukan lagi satu-satunya pilihan viable. Untuk proyek baru, Playwright atau Cypress sering menjadi pilihan yang lebih efisien, tetapi Selenium tetap solid untuk tim yang sudah memiliki investasi besar di dalamnya.

Framework mana yang paling mudah dipelajari untuk QA pemula?

Cypress memiliki learning curve paling rendah karena API yang intuitif, dokumentasi yang excellent, dan Test Runner GUI yang memudahkan debugging. Playwright berada di posisi kedua dengan API yang clean dan tooling yang baik. Selenium memiliki learning curve paling curam karena memerlukan pemahaman tentang WebDriver protocol, explicit waiting, dan setup yang lebih kompleks. Namun, memahami Selenium memberikan fondasi yang kuat untuk framework lain.

Bagaimana dengan Playwright vs Cypress untuk proyek baru di tahun 2026?

Untuk proyek baru, Playwright semakin menjadi pilihan default karena: cross-browser support yang lebih luas (termasuk WebKit), parallel execution bawaan tanpa biaya tambahan, multi-language support, dan kemampuan menangani skenario kompleks. Cypress tetap unggul dalam developer experience dan component testing. Jika tim Anda 100% JavaScript dan fokus pada SPA testing, Cypress masih excellent. Jika Anda memerlukan flexibility dan scalability, Playwright lebih future-proof.

Berapa lama waktu yang dibutuhkan untuk migrasi dari Selenium ke Playwright?

Berdasarkan pengalaman membantu tim QA di Indonesia, migrasi gradual biasanya memakan waktu 6-12 bulan tergantung ukuran test suite. Tim dengan 500 test case umumnya bisa complete dalam 4-6 bulan dengan parallel running approach. Kunci suksesnya bukan di rewriting test, melainkan di redesigning test architecture — page objects, utilities, dan CI/CD pipeline. Migrasi tanpa redesain hanya memindahkan masalah ke framework baru.

Apakah satu framework bisa digunakan untuk UI testing dan API testing sekaligus?

Ya, Playwright dan Cypress keduanya mendukung API testing. Playwright memiliki request context yang memungkinkan API call tanpa browser, sangat berguna untuk test setup dan teardown. Cypress memiliki cy.request() untuk hal serupa. Namun, untuk API testing yang comprehensive, kami tetap merekomendasikan tool dedicated seperti yang dibahas di pelatihan API Testing: Postman & REST Assured — terutama untuk contract testing dan performance testing pada API layer.

Home | Schedule | Pricing | Trainers | Consultation | Blog