Tóm tắt nhanh:
ak-web-testingviết và sửa test cho app web: unit, E2E, tải, bảo mật, giao diện, a11y, Core Web Vitals. Nó xem repo đang dùng runner nào trước rồi chọn đúng một công cụ cho việc đó, và mọi kết luận "đã ổn" phải dựa trên lần chạy thật. Nó không sửa test chập chờn bằng cách thêm thời gian chờ và không dựng cả Vitest, Playwright, k6 trong một lần.
Công khai: mình là maintainer của AgentKit và có quan hệ affiliate: link AgentKit trong bài là link affiliate, mua qua link này bạn được giảm 30%.
Tóm tắt
Dùng khi bạn cần viết test E2E cho một luồng, sửa test chập chờn, kiểm a11y một trang, đo tải API trước đợt cao điểm, hoặc dựng Playwright cho repo chưa có test trình duyệt. Nó chỉ chọn công cụ khớp việc bạn giao, nên muốn thêm test tải hay a11y thì nói rõ loại đó.
flowchart LR
A["Cần test hoặc sửa test web"] --> B["ak-web-testing"]
B --> C["Test chạy được + bằng chứng đo thật"]
C --> D["Đưa vào CI theo thứ tự cổng"]
C --> E["Dừng, bạn xem kết quả"]Nó dựa trên 4 ý:
| Ý | Câu hỏi | Ví dụ |
|---|---|---|
| Chọn đúng runner | Lỗi thuộc loại nào, nên dùng công cụ nào? | Hàm tính giảm giá sai thì runner unit; nút "Thanh toán" không bấm được thì test trình duyệt; tải mới cần k6 |
| Mô hình chiến lược | Nên dồn phần lớn test vào tầng nào? | Pyramid cho app nguyên khối, Trophy nặng integration cho SPA, Honeycomb quanh contract test cho microservices |
| Bằng chứng đo thật | Dựa vào đâu để nói test đã ổn hay trang đã đạt? | Test chập chờn chỉ coi là xong khi tái hiện được nguyên nhân và chạy lặp đều pass |
| Không dựng thừa | Có cần khởi tạo bộ test mới không? | Repo đã có playwright.config.ts thì chỉ sửa hoặc thêm test |
Mỗi lần nó chỉ đọc phần tài liệu khớp với việc bạn giao, và tắt các tiến trình nó đã mở khi xong.
Prompt mẫu để viết test E2E:
/ak-web-testing e2e Luồng đăng nhập của <tên app>.
Kết quả: test đăng nhập đúng vào /dashboard, sai mật khẩu thì hiện lỗi.
Ràng buộc: dùng cấu hình Playwright đang có, không thêm thư viện test mới.
Xong khi: test pass trên chromium và mobile-safari.Skill này không có cờ. Sau tên lệnh bạn ghi loại test (như e2e, unit, load, a11y, visual) rồi thứ cần test, cả hai đều tuỳ chọn.
Phần dưới đây là bản chi tiết: luồng chạy, 5 tình huống kèm prompt, cách ghi đầu vào, lịch sử thay đổi theo bản ak và các lỗi hay vấp. Bản chi tiết và trang trực quan dành cho subscriber. Agent của bạn cũng tìm được trong đó qua MCP của portal.
Mở khi tài khoản có quyền subscriber
Bài này dành cho subscriber
Khi tài khoản có quyền, toàn bộ bài, bản visual tương tác và lệnh gọi từ agent đều mở.
- Đăng nhập hoặc tạo tài khoản modernEngineerQuyền đọc gắn với email tài khoản.
- Chọn gói trên trang Bảng giáGói 1, 3 hoặc 12 tháng, trả bằng chuyển khoản VietQR. Quyền đọc mở khoảng một phút sau khi tiền về.
- Hoặc nhập mã Facebook subscriberNgười ủng hộ trang qua Facebook nhận mã kích hoạt qua tin nhắn mỗi tháng.
Đã là subscriber? Đăng nhập để đọc.
Dùng bài này trong agent của bạn
Lấy API keyChép đoạn dưới, dán vào Claude Code, Codex hay agent bạn đang dùng. Agent đọc bài rồi đối chiếu với repo đang mở.
Đọc bài "ak-web-testing: chọn đúng công cụ test web và đo bằng lần chạy thật" trên modernEngineer rồi áp dụng vào repo này.
1. Gọi tool content_get của MCP server modernengineer với locale "vi", slug "ak-web-testing". Nếu chưa nối MCP server modernengineer, dừng lại và hướng dẫn tôi nối theo https://modernengineer.dev/vi/mcp.
2. Tóm tắt các bước chính của bài, chỉ ra bước nào áp dụng được cho repo này.
3. Đề xuất thay đổi cụ thể và hỏi tôi trước khi sửa file.Nối MCP cho Claude Code (một lần)
claude mcp add --transport http modernengineer \
https://api.modernengineer.dev/mcp \
--header "Authorization: Bearer <API key>"Đọc trọn bài qua MCP cần API key của tài khoản subscriber hoặc đã mua guide này. Không có quyền, agent sẽ chỉ đọc được phần mở đầu.
- Phiên bản
- v1.0.0
- Cập nhật
- 22/10/2026
- Giấy phép
- Bảo lưu mọi quyền
- Slug
- ak-web-testing


