Trong thời gian làm dự án vừa rồi, mình có nhận được một yêu cầu là lập các kịch bản cho Security TestingStress testing. Với mình mấy cái này khá là mới mẻ, thậm chí mình phải mất một thời gian mới hiểu hết được yêu cầu và bắt tay vào tìm hiểu và stress test bằng k6.io là một trong số những công cụ mình đang tìm hiểu sâu nhất.

I. Stress test

Trước khi đi vào tìm hiểu về tool k6.io, mình đi tìm hiểu sơ qua về một số khái niệm cơ bản.

1. Kiểm thử phần mềm (Software Testing)

Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được kiểm thử.

Kiểm thử phải tuân theo các mục đích:

  • Tìm kiếm lỗi/ Finding defects
  • Đảm bảo được một mức độ chất lượng/ Gaining confidence about the level of quality
  • Cung cấp thông tin để đưa ra quyết định/ Providing information for decision-making
  • Ngăn ngừa lỗi/ Preventing defects

2. Stress test là gì?

Stress Test là một loại kiểm thử xác định sự ổn định và tính mạnh mẽ của hệ thống. Stress test còn được gọi là kiểm thử độ bền. Việc stress test nổi bật nhất là xác định giới hạn, tại đó hệ thống hoặc phần mềm hoặc phần cứng bị phá vỡ. Nó cũng có thể kiểm tra hệ thống quản lý lỗi hiệu quả trong điều kiện khắc nghiệt hay không.

Khi nào sử dụng Stress Test?

  • Để kiểm tra xem hệ thống có hoạt động tốt ở các điều kiện bất thường hay không.
  • Hiển thị thông báo lỗi thích hợp khi hệ thống xảy ra hoạt động bất thường.
  • Chuẩn bị trước để tránh các trường hợp xấu nhất có thể xảy ra bằng việc thực hiện stress test.

 

II. Stress test với k6.io

K6.io là bộ công cụ dùng để thực hiện hoạt động kiểm thử phần mềm. Hiện tại, k6.io cung cấp cho chúng ta một số loại testing sau:

  • Smoke testing
  • Stress testing
  • Load testing
  • Soak testing

Hôm nay mình sẽ giới thiệu về tính năng Stress testing của công cụ này.

Bộ công cụ này có thể sử dụng với giao diện trực quan trên nền tảng cloud, hoặc sử dụng javascripts để chạy các câu lệnh thực thi các tác vụ đo đạc hệ thống. Mình sẽ giới thiệu từng cách một.

1. Cloud

k6.io cho người dùng dùng thử chỉ bằng cách đăng ký tài khoản bằng gmail hoặc github. Với mỗi tài khoản, người dùng có thể thực hiện miễn phí 50 lượt test. Ngoài ra còn giới hạn những thông số cấu hình cho các loại test. Ở đây mình sử dụng gmail để đăng nhập.

Sau khi đăng nhập, chúng ta vào màn hình chính với giao diện như trên. Và hiện tại đã có một project đầu tiên có tên My first project.  Các bạn có thể tạo project khác bằng cách click vào New project.

Nếu thực hiện việc test. Click vào CREATE NEW TEST ở góc phải màn hình. Ở giao diện này, sẽ có 2 lựa chọn để tạo test là Test builderScript editor.

create-test

Test builder cho phép chúng ta tạo test bằng giao diện trực quan, còn Script editor cho phép chúng ta tạo các đoạn script bằng js và chạy trên nền cloud.

Ở đây mình lựa chọn hướng dẫn sử dụng bằng giao diện trực quan vì ngoài việc sử dụng script editor để chạy js, ta còn có cách khác để chạy các đoạn js theo mong muốn.

Trong phầ config, ta có thể lựa chọn số lượng VUs (virtual user), thời gian chạy (duration), khu vực tải (load zone) và loại test (Ramping profile)

Ở phần request, ta có thể thêm các request, url, request type…

config-testing

Hiện tại mình đang là free user, nên tối đa có thể chạy với 50 VUs và 12 phút, type zone chọn là Tokyo (mình hay làm việc với khách hàng Nhật nên quen rồi 😀 ) và cuối cùng đơn giản chỉ thêm url là api của mình.

Ở phần requests, các bạn chú ý góc bên phải có biểu tượng editor. Khi click vào đó sẽ hiện ra đoạn js để chạy chương trình tương ứng với những config bên giao diện trực quan.

Cuối cùng, trên kéo góc bên phải ta ấn Create test nếu muốn tạo test nhưng chưa muốn thực thi, hoặc Create and run nếu muốn tạo và chạy luôn test vừa tạo. Ta sẽ ra giao diện setup:

man-hinh-set-up

Đợi sau khi chạy xong ta sẽ có giao diện sau, cũng là giao diện cuối khi hoàn thành test


 

Ở giao diện này, ta có thể thấy được rất nhiều các thông số như các biểu đồ về VUs, request, hiển thị lỗi, metrics… và cũng có thể custom/thêm các metrics, biểu đồ khác mà bạn mong muốn xem.

Tạm thời mình dừng ở đây. Vì tính năng của tool này khá nhiều nên mình sẽ tách làm nhiều phần cho dễ đọc và tìm hiểu.
Theo dõi tiếp phần 2 ở tại:
https://loibui.asia/stress-test-voi-k6-io-phan-2/

Verified by ExactMetrics