Cara Bangun AI Agent untuk Otomasi Pengujian UI dengan Playwright + n8n (Tanpa Coding Berat)
· 3 menit baca
Cara Bangun AI Agent untuk Otomasi Pengujian UI dengan Playwright + n8n (Tanpa Coding Berat)
Pain point: Tim dev sering terhambat karena harus menulis skrip pengujian UI manual, mengupdate kalau UI berubah, dan hasilnya tersebar di spreadsheet. Akibatnya, regresi bug lewat, deadline meleset, dan QA jadi bottleneck.
Kenapa Pakai AI Agent + n8n?
- AI Agent meng‑generasi atau memperbaiki skrip Playwright berdasarkan deskripsi fitur, jadi tidak perlu menulis kode.
- n8n meng‑orchestrasi semua langkah: trigger, generate script, execute, collect hasil, dan kirim notifikasi.
- Integrasi low‑code ini mengurangi waktu setup test suite dari minggu menjadi hari.
Arsitektur Workflow
[GitHub Push] → n8n Trigger → AI Agent (OpenAI) → Generate Playwright Script → n8n Execute (Docker) → Capture Screenshot & JSON Result → Slack / Email Report
Diagram di atas dapat dibangun dalam 5 node n8n:
- Webhook (atau GitHub trigger) – mendeteksi perubahan pada branch
feature/*. - OpenAI Node – prompt: "Buat skrip Playwright untuk menguji fitur X pada aplikasi React". Prompt meng‑include URL, selector, dan expected outcome.
- Function Node – menyimpan script ke file
test.spec.jsdi volume Docker. - Docker Node – image
mcr.microsoft.com/playwright, mount volume, jalankannpx playwright test. - IF / Slack Node – bila gagal, kirim screenshot + error stack; bila sukses, kirim ringkasan.
Langkah Praktis Implementasi
1. Siapkan n8n (Docker Compose)
version: '3'
services:
n8n:
image: n8nio/n8n
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=secret
volumes:
- ./data:/home/node/.n8n
- ./scripts:/scripts # tempat simpan test script
2. Buat OpenAI Credentials di n8n
Masuk ke Settings → API Credentials → Add New → OpenAI. Simpan API_KEY Anda.
3. Rancang Prompt yang Efisien
You are a senior QA engineer. Write a Playwright test in JavaScript for the following user story:
{{user_story}}
Use selectors based on data-test-id. Include expect statements for navigation and content verification. Return only the code block.
Gunakan {{ $json.user_story }} dari trigger payload.
4. Node Detail
- Webhook Node: menerima
{"user_story":"User bisa menambah item ke keranjang"}. - OpenAI Node: model
gpt-4o-mini, temperature 0.2. - Function Node (JS):
const fs = require('fs'); const script = $json.response; fs.writeFileSync('/scripts/test.spec.js', script); return { success: true }; - Docker Node:
image: mcr.microsoft.com/playwright command: npx playwright test /scripts/test.spec.js --reporter=json volumes: - ./scripts:/scripts
- IF Node: cek status keluar (0 = success).
- Slack Node: kirim message dengan
attachmentsyang berisi screenshot (jika ada) dan summary.
5. Jalankan & Debug
Set Execution mode: Run Once di UI n8n, kirim POST ke webhook dengan payload contoh. Lihat log di Docker container, perbaiki prompt bila script gagal compile.
Use Case Real: Deploy di CI/CD
Integrasikan workflow di atas ke pipeline GitHub Actions:
name: UI Test
on: [push]
jobs:
ui-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Trigger n8n
run: |
curl -X POST https://n8n.example.com/webhook/xyz \
-H 'Content-Type: application/json' \
-d '{"user_story":"User can reset password via email"}'
Setelah workflow selesai, Slack channel #qa‑reports otomatis menampilkan hasil. Tim tidak perlu menulis satu baris kode Playwright lagi.
Strategi & Insight
- Prompt‑as‑Code: treat prompt sebagai kode yang version‑controlled. Simpan di repo
prompts/qa.ymldan gunakan n8n Execute Command untuk load secara dinamis. - Cache Script: tambahkan hash dari user_story; jika sudah pernah diuji, skip eksekusi dan pakai hasil cached (mengurangi biaya LLM).
- Human‑in‑the‑Loop: tambahkan approval node sebelum execution. QA dapat review script di UI n8n dan approve dengan satu klik.
- Scale dengan Queue: gunakan n8n Queue Mode + Redis untuk handle ratusan push sekaligus tanpa overload Docker runner.
Penutup & Call to Action
Dengan AI Agent + n8n, Anda mengubah proses QA dari hard‑coded menjadi self‑generating. Coba buat webhook sederhana di akun n8n Anda, hubungkan ke OpenAI, dan lihat hasilnya dalam 5 menit. Jika sudah nyaman, integrasikan ke CI/CD dan rasakan kecepatan build‑test‑deploy yang sebenarnya.
🚀 Challenge: Bangun workflow yang meng‑generate UI test untuk tiga fitur sekaligus, cache hasil, dan kirim laporan mingguan ke tim. Share hasilnya di komunitas JIPRAKS Classroom!