Hướng dẫn cài đặt k6
RESTful API là một trong những kiểu API phổ biến nhất hiện nay. Vì vậy, việc kiểm tra tải (load testing) là một phần quan trọng của việc kiểm tra hiệu suất. Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt k6 để kiểm tra tải cho RESTful API.
Giới thiệu về k6
Grafana k6 là một công cụ kiểm tra tải (load testing) mã nguồn mở, giúp việc kiểm tra hiệu suất (performance testing) trở nên dễ dàng và hiệu quả.
Đây là một công cụ miễn phí, lấy nhà phát triển làm trung tâm và có thể dễ dàng mở rộng, được phát triển bởi Grafana Labs và cộng đồng.
Những tính năng chính
k6 có rất nhiều tính năng, mà bạn có thể dễ dàng tìm hiểu tất cả chúng trong tài liệu tại đây. Các tính năng chính bao gồm:
- CLI tool với API thân thiện với nhà phát triển.
- Kịch bản test dễ dàng viết bằng JavaScript ES2015/ES6 - có hỗ trợ cho các module local và remote.
- Check và Thresholds - để kiểm tra tải theo định hướng mục tiêu, thân thiện với tự động hóa.
Trường hợp thường dùng
Người dùng k6 thường là Developer, QA, SDET và SRE. Họ sử dụng k6 để kiểm tra hiệu suất và độ tin cậy của API, microservices và trang web. Các trường hợp sử dụng k6 phổ biến là:
- Load testing: k6 được tối ưu hóa để tiêu thụ tài nguyên tối thiểu và được thiết kế để chạy các test tải cao (spike, stress, soak tests).
- Browser testing: Thông qua k6 browser, bạn có thể chạy test hiệu suất dựa trên trình duyệt và phát hiện các sự cố chỉ liên quan đến trình duyệt mà có thể bỏ qua hoàn toàn ở cấp giao thức.
- Chaos và resilience testing: k6 có thể được sử dụng để mô phỏng lưu lượng truy cập như một phần của việc test hỗn loạn (chaos testing), trigger chúng từ các thử nghiệm k6 hoặc đưa các loại lỗi khác nhau vào Kubernetes bằng xk6-disruptor.
- Performance và synthetic monitoring: Với k6, bạn có thể tự động hóa và lên lịch trigger các thử nghiệm rất thường xuyên với tải nhỏ để liên tục xác thực hiệu suất và tính khả dụng của môi trường production của bạn.

Một vài lưu ý
k6 là một công cụ kiểm tra tải hiệu suất cao, có thể viết bằng JavaScript. Thiết kế kiến trúc để có được những khả năng này, mang lại một số sự đánh đổi:
- Không thể chạy trực tiếp trên trình duyệt
Theo mặc định, k6 không hiển thị các trang web giống như cách trình duyệt thực hiện. Trình duyệt có thể tiêu tốn tài nguyên hệ thống đáng kể. Bỏ qua trình duyệt cho phép chạy nhiều tải hơn trong một máy.
Tuy nhiên, với k6 browser, bạn có thể tương tác với các trình duyệt thực và thu thập số liệu giao diện người dùng như một phần của testing.
- Không thể chạy trên Node.js
JavaScript thường không phù hợp để sử dụng trong các trường hợp cần hiệu suất cao. Để đạt được hiệu suất tối đa, bản thân công cụ này được viết bằng Go, embed JavaScript runtime cho phép viết kịch bản kiểm tra dễ dàng.
Nếu bạn muốn import npm modules hoặc thư viện sử dụng NodeJS APIs, bạn có thể bundle npm modules với webpack và import chúng vào script load test.
Nếu muốn biết thêm thông tin về k6, bạn có thể xem thêm tại đây.
Hướng dẫn cài đặt
k6 có các gói cài đặt dành cho Linux, Mac và Windows. Ngoài ra, bạn có thể sử dụng Docker container hoặc file cài đặt phần mềm.
Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt k6 trên Windows thông qua file cài đặt phần mềm.
Để cài đặt k6, bạn có thể tải file cài đặt phần mềm tại đây và tiến hành cài đặt theo hướng dẫn.

Sau khi cài đặt thành công, bạn có thể mở Command Prompt và kiểm tra phiên bản k6 đã cài đặt bằng lệnh:
k6
Nếu k6 đã được cài đặt thành công, bạn sẽ nhận được thông báo như sau:

Trong trường hợp bạn muốn cài một phiên bản cụ thể, bạn có thể tìm thấy tất cả các phiên bản tại đây.
Chi tiết hướng dẫn của các phương thức cài đặt k6, bạn có thể xem thêm tại đây.
Trong một vài tình huống, bạn có thể gặp lỗi khi cài đặt k6. Để khắc phục lỗi này, bạn có thể tham khảo thêm tại đây.
Trên Windows, bạn có thể gặp lỗi sau khi cài đặt k6:

Khi đó, hãy đảm bảo rằng bạn đã thêm đường dẫn đến thư mục chứa k6 vào biến môi trường PATH. Trong trường hợp mặc định, thư mục này sẽ nằm tại C:\Program Files\k6.
Lời kết
Trong bài viết này, chúng ta đã tìm hiểu về k6, một công cụ kiểm tra tải hiệu suất cao, có thể viết bằng JavaScript. Chúng ta cũng đã tìm hiểu cách cài đặt k6 trên Windows thông qua file cài đặt phần mềm.
Trong bài viết tiếp theo, chúng ta sẽ tìm hiểu cách viết một kịch bản kiểm tra tải đơn giản bằng k6.