Dokumentasi Catatan Teknik
Wawasan, tutorial, dan catatan mendalam seputar QA automation dan rekayasa perangkat lunak.
Membangun Arsitektur E2E Test Automation dari Nol dengan Playwright & POM
Terakhir diperbarui: 14 Agustus 2026Memahami Sinkronisasi SDLC & STLC Secara Mendalam dalam Quality Engineering
Terakhir diperbarui: 12 Agustus 2026Alur End-to-End QA Process: Dari Risk Analysis, Test Plan, hingga Eksekusi
Terakhir diperbarui: 10 Agustus 2026Mengapa PRD Sangat Penting: Menghindari Lingkaran Setan "Back-and-Forth" Development
Terakhir diperbarui: 08 Agustus 2026Integrasi Playwright ke CI/CD Pipeline dengan GitHub Actions & Docker
Terakhir diperbarui: 05 Agustus 2026Memanfaatkan Claude Code & MCP untuk Akselerasi Pekerjaan QA
Terakhir diperbarui: 03 Agustus 2026Integrasi Playwright ke CI/CD Pipeline dengan GitHub Actions & Docker
Menjalankan pengujian otomatis secara lokal di laptop tentu bagus, tetapi pengujian yang sesungguhnya harus berjalan secara otomatis di dalam pipeline CI/CD setiap kali ada kode baru yang di-push ke repository.
1. Peran Docker dalam Testing
Menggunakan Docker memastikan bahwa lingkungan eksekusi (environment) test runner selalu konsisten, baik saat dijalankan di komputer developer maupun di cloud runner GitHub Actions, menghindari masalah klasik seperti "works on my machine".
2. Manajemen Secrets & Variables
Dalam menjalankan automated testing di lingkungan CI/CD, kita wajib menjaga keamanan data sensitif. Di sinilah peran GitHub Actions Secrets dan Variables:
- Secrets: Digunakan untuk menyimpan data rahasia yang terenkripsi seperti token akses, kredensial login QA, atau API keys (misal:
STAGING_PASSWORD). Nilainya tidak akan pernah bocor di log konsol. - Variables: Digunakan untuk menyimpan konfigurasi non-sensitif yang bersifat dinamis lintas environment, seperti
BASE_URLatau tipe browser target.
3. Contoh Konfigurasi GitHub Actions
Berikut implementasi workflow file yang mengintegrasikan environment variables dan secrets ke dalam container Docker:
name: Playwright Tests
on:
push:
branches: [ main, master ]
jobs:
test:
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/playwright:v1.40.0-jammy
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: npm ci
- name: Run Playwright tests
env:
BASE_URL: \${{ vars.STAGING_BASE_URL }}
TEST_USER_PASSWORD: \${{ secrets.STAGING_USER_PASSWORD }}
run: npx playwright test