Tạo một script để stress test web service API
Testing
30
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.
222 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
70 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 hơn 2 năm trước
70 12
White
40 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 3 năm trước
40 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 hơn 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 6 tháng trước
4 0
Male avatar
0 0
Swift TestDriven Development (TDD) Chapter 1 Part 2 Understanding TDD ===== Updated ngày 30/06 Updated một chút: Vì những bất tiện và không rõ r...
Bùi Khánh Duy viết 3 tháng trước
0 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 hơn 2 năm trước
7 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
43 bài viết.
222 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á!