1. Giới thiệu về Gatling
Gatling là một công cụ kiểm tra hiệu suất mã nguồn mở. Nó là một framework dựa trên Scala, Akka và Netty. Đây là một công cụ cho hiệu suất cao và ghi lại các báo cáo thông qua trang html với giao diện thân thiện dễ nhìn. Về script thì dễ dàng tùy chỉnh. Với giao thức HTTP thì Gatling hỗ trợ khá mạnh. Bên cạnh đó còn hỗ trợ những giao thức khác ( WebSockets, JMS, MQTT, …).
Điểm khác biệt giữa Gatling.io công cụ test thông thường khác là gatling giải lập được các người dùng ảo, thực hiện các thao tác như trên trình duyệt thông thường.
Còn đối với các công cụ thông thường như AB tools sử dụng rất tốt khi test tải trên các URL đơn thuần nhưng không thể giải lập được hành vi người dùng. Đồng thời các người dùng giả lập được gatling tạo ra dưới dạng ” message “, khác vào các công cụ khác sử dụng ” thread ” để tạo người dùng ảo, điều này khiến gatling tạo ra tải tốt hơn.
2. Chức năng của Gatling
• Test theo scenario sử dụng scenario script viết bằng scala
• Report kết quả bằng html file với giao diện đẹp và rất dễ nhìn
• Trang bị sẵn “recorder” giúp các bạn có thể tạo scenario bằng việc “record” lại các thao tác trên browser
2.1 Bốn bước cơ bản trong Gatling để hoàn thành test tải
• Record : Đây là bước ghi lại các hoạt động của trình duyệt. Gatling có thể record tự động từ bất kì trình duyệt và bất kì hoạt động nào thậm chí cả thời gian chờ.
• Edit : Kịch bản được record ở bước trên có thể chỉnh sửa lại theo ý muốn. Việc chỉnh sửa dễ dàng vì code dễ đọc và thân thiện.
• Launch : Nó có thể được khởi chạy thông qua windows command prompt hay Linux terminal. Bên cạnh đó, nó cũng có thể chạy qua Maven build hay Jenkins.
• Analyze : Gatling cung cấp report rõ ràng, đầy đủ, dễ nhìn và được định dạng bằng HTML. Trang report có thể phóng to hay thu nhỏ.
2.2 Các thuật ngữ quan trọng
• Simulation : Kịch bản giải lập thông qua Gatling.io. Chuỗi các thao tác mô phỏng thao tác người dùng (truy cập trang chủ, đăng nhập, đăng xuất).
• Session : Session của user mô phỏng, sử dụng trong quá trình test tải.
• Feeders : Nều các kịch bản yêu cầu dữ liệu đầu vào (import dữ liệu vào database, login vào nhiều user khác nhau) thì Feeder sẽ hỗ trợ đọc dữ liệu từ các file, từ json data hay từ excel và dùng dữ liệu có được truyền vào các thao tác mô phỏng.
• Checks : Trong quá trình thực hiện test, gatling sẽ tạo ra request ảo và nhận lại các response. Gatling sẽ đánh giá các respone dựa trên Checks. Với các request HTTP, Checks sẽ coi các status code là 2xx, 3xx coi là thành công. Ngoài ra Checks còn được sử dụng để bắt các sự kiện xảy ra trong quá trình test, lưu nó vào session (CSRF token chẳng hạn)
• Reports : Kết quả trả lại sau quá trình thực hiện test trên Gatling. Kết quả được Gatling xử lý thành các biểu đồ thân thiện, tổng quan.
3. Cài đặt Gatling.io
3.1 Cài đặt gatling trên Ubuntu 18 Desktop vui lòng tham khảo thêm Ở đây
3.2 Cài đặt gatling trên windows 10 vui lòng tham khảo thêm Ở đây
3.3 Cấu trúc thư mục :
bin: Chứa các script thực hiện Gatling và Recorder conf: Chứa cấu hình cho Gatling như Log, Report, .. lib: Chứa thư viên sử dụng bởi Gatling user-files: Chứa dữ liệu người dùng simulations: Chứa các kịch bản test (Scale file). data: Chứa các dữ liệu mẫu (Feeder files) bodies: Chứa template cho Request ảo results: Chứa kết quả sau những lần thực hiện test |
4. Tổng kết :
Gatling.io là công cụ rất mạnh mẽ khi muốn đánh giá hiệu năng của Web Server . Ngoài giao thức HTTP, Gatling còn hỗ trợ nhiều giao thức khác như WebSockets, JMS. Đồng thời, Gatling cho phép tích hợp với một số IDE tăng tính tiện lợi khi thực hiện test (VD: Eclipse), tích hợp với Jenkins.
Để tìm hiểu thêm, các bạn có thể truy cập Gatling Blog hay GatlingBlog
Tài liệu tham khảo : https://gatling.io/#/docs