Tạo một script để stress test web service API
Testing
24
White

Lơi Rệ viết ngày 04/08/2015

Trên thị trường giờ có rất nhiều dịch vụ và giải pháp để stress test web service API, nhưng theo tôi thì nó hơi overkill. Ở cty tôi thì tôi viết một đoạn shell script nhỏ và kết hợp với chỉ số thông báo trên NewRelic để theo dõi performance.

Trước khi chạy đoạn script sau thì bạn hãy nhớ cài NewRelic agent vào app của bạn trước nhé:

while true; do curl -s "http://my_api.domain/v1/something" -o /dev/null -w "%{http_code}: %{time_total}\n"; sleep 1.0; done

Hãy phân tích đoạn mã ở trên 1 tí nhé, đoạn mã ở trên đơn giản chạy một vòng lặp không có breakpoint và gọi lệnh curl để gọi vào API endpoint, toàn bộ JSON output trả về sẽ được "bịt mồm" (silence) bằng cách pipe vào /dev/null. Các thông số như HTTP code và thời gian hoàn thành request sẽ được trích ra và in ra màn hình. Sau mỗi một request, chúng ta nghỉ 1s và tiếp tục gọi.

Cách test đơn giản là để cho cái vòng lặp này chạy trong 5 đến 10 phút (huỷ vòng lặp với tổ hợp phím Ctrl + C) rồi theo dõi chỉ số trong NewRelic. Xin lưu ý, bạn sẽ thấy throughput graph sẽ tăng lên đáng kể, và hãy để ý chỉ số avg response time và error rate nên giữ ở mức 0% trong suốt quá trình chạy. Thêm vào đó cũng nên lưu ý các chỉ số khác như memory, GC để xem app có bị leak không.

Tôi muốn nhấn mạnh rằng không nhất thiết phải phức tạp hoá vấn đề, nếu giải quyết một vấn đề đơn giản đc thì hãy ráng làm đc điều đó.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Lơi Rệ

43 bài viết.
206 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
65 12
Sự sống còn của các công ty kỹ thuật phụ thuộc vào nguồn nhân lực chất xám của họ. Thế nên rất thiết yếu cho việc đầu tư xây dựng team có khả năng ...
Lơi Rệ viết gần 2 năm trước
65 12
White
38 7
Trời se se lạnh, Melbourne chuyển mùa, ngồi trong quán cafe bắt đầu một ngày làm việc mới với suy nghĩ tại sao các bạn Việt Nam không muốn tham gia...
Lơi Rệ viết gần 3 năm trước
38 7
White
36 15
Thế nào là làm việc từ xa? Internet, một trong những phát minh vĩ đại nhất của con người thế kỷ 20. Công nghệ này xoả bỏ rào cản vật lý giữa các n...
Lơi Rệ viết 2 năm trước
36 15
Bài viết liên quan
White
4 0
1. Định nghĩa Một kế hoạch kiểm thử dự án phần mềm (test plan) là một tài liệu mô tả các mục tiêu, phạm vi, phương pháp tiếp cận, và tập trung vào...
Thiên Hoàng Minh Vũ viết 1 tháng trước
4 0
White
7 2
Khi test tự động có đụng đến DB, thường ta phải tạo rồi xóa DB rất nhiều lần. Do đó nếu lưu DB trên đĩa cứng bình thường thì mỗi lần chạy test phải...
Ngoc Dao viết gần 2 năm trước
7 2
White
5 0
Test framework của RSpec luôn làm tôi bất ngờ với nhiều hàm dường như rất ít được biết đến nhưng khá là hữu dụng. Hôm nay trong khi phỏng vấn một ứ...
Lơi Rệ viết hơn 2 năm trước
5 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
43 bài viết.
206 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!