55 phútTrung bình
Bạn sẽ học được
  • Phân biệt load, stress, spike, soak test
  • Viết kịch bản k6 với ngưỡng chấp nhận
  • Biết các nhóm kiểm thử bảo mật và accessibility

Các thuộc tính phi chức năng – tốc độ, bảo mật, khả năng truy cập – thường quyết định trải nghiệm thật của người dùng.

Kiểm thử hiệu năng

Không chỉ "chạy đúng" mà còn phải "chạy đủ nhanh dưới tải". Các loại thường gặp: load test (tải dự kiến), stress test (đẩy quá giới hạn để tìm điểm gãy), spike test (tải tăng đột ngột), soak test (tải kéo dài, tìm rò rỉ bộ nhớ). Công cụ phổ biến: k6 (viết kịch bản bằng JavaScript), JMeter, Locust (Python).

import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  vus: 20,               // 20 người dùng ảo
  duration: '1m',
  thresholds: {
    http_req_failed: ['rate<0.01'],      // dưới 1% lỗi
    http_req_duration: ['p(95)<500'],    // 95% yêu cầu dưới 500 ms
  },
};

export default function () {
  const res = http.get('https://example.com/');
  check(res, { 'status 200': (r) => r.status === 200 });
  sleep(1);
}

Chạy bằng k6 run script.js. Hãy nhìn vào phân vị (p95, p99) thay vì chỉ trung bình – trung bình che giấu những người dùng gặp trải nghiệm chậm nhất.

Lưu ý

Chỉ kiểm thử tải trên hệ thống của bạn hoặc khi được cho phép bằng văn bản. Đẩy tải vào website của người khác có thể bị xem là tấn công từ chối dịch vụ.

Kiểm thử bảo mật

Điểm khởi đầu là OWASP Top 10 – danh sách rủi ro bảo mật ứng dụng web phổ biến (kiểm soát truy cập hỏng, tiêm mã như SQL injection, cấu hình sai, thành phần dễ bị tấn công…). Trong pipeline, các nhóm công cụ thường được kết hợp: SAST (quét mã nguồn), SCA (quét thư viện phụ thuộc, ví dụ npm audit, pip-audit), DAST (quét ứng dụng đang chạy, ví dụ OWASP ZAP) và quét bí mật bị lộ trong mã. Với ứng dụng có AI, cần thêm kiểm thử prompt injection và rò rỉ dữ liệu.

Mẹo hay

Hãy tự thêm kiểm thử cho các quy tắc phân quyền: người dùng A không được xem/sửa dữ liệu của người dùng B (mã 403/404). Đây là lỗi nghiệp vụ mà công cụ quét tự động thường bỏ sót.

Kiểm thử khả năng truy cập (accessibility)

Chuẩn tham chiếu là WCAG (hiện phổ biến bản 2.2) với bốn nguyên tắc: nhận biết được, thao tác được, hiểu được, vững chắc. Kiểm tra cơ bản: dùng được hoàn toàn bằng bàn phím, ảnh có văn bản thay thế, tương phản màu đủ, biểu mẫu có nhãn, thứ tự tiêu đề hợp lý. Dùng Lighthouse hoặc axe để quét tự động, rồi kiểm tra thêm thủ công bằng trình đọc màn hình.

Hiệu năng web: Core Web Vitals

Với website, hãy đo LCP (tải nội dung chính), INP (độ phản hồi khi tương tác) và CLS (ổn định bố cục) bằng Lighthouse, PageSpeed Insights hoặc dữ liệu thực địa trong Search Console. Các chỉ số này cũng liên quan trực tiếp đến SEO (xem loạt bài Kỹ thuật SEO).

Thực hành
  1. Cài k6 và chạy kịch bản trên website do bạn quản lý với 5 người dùng ảo trong 30 giây.
  2. Chạy npm audit hoặc pip-audit trên một dự án và phân loại lỗ hổng theo mức độ.
  3. Dùng Lighthouse kiểm tra accessibility cho một trang và sửa 2 lỗi.
Tóm tắt bài học

Bạn đã làm quen với kiểm thử hiệu năng bằng k6, các nhóm công cụ bảo mật dựa trên OWASP Top 10, WCAG cho accessibility và Core Web Vitals.