2012-01-04 24 views
11

Tôi gần đây đã bắt đầu sử dụng JMeter để tạo các bài kiểm tra tải cho các ứng dụng web của tôi. Tôi thực sự thích công cụ này và sau khi xem một số video, thật dễ dàng để bắt đầu với việc tạo thử nghiệm.bao gồm các tài nguyên tĩnh như hình ảnh, css, js vv trong các bài kiểm tra

Tuy nhiên, có một điều mà tôi không rõ ràng.

Đọc trên trang chủ JMeter, có "Best practice" section. Trong số những thứ khác, nó nói:

Điều quan trọng nhất cần làm là lọc ra tất cả các yêu cầu mà bạn không quan tâm. Ví dụ: không có yêu cầu ghi hình ảnh (JMeter có thể được hướng dẫn tải xuống tất cả hình ảnh trên một trang - xem Yêu cầu HTTP). Những điều này sẽ chỉ làm xáo trộn kế hoạch kiểm tra của bạn.

Tôi đã nhìn thấy điều này trên các trang khác, nói rằng bạn không nên bao gồm các yêu cầu cho hình ảnh hoặc bất kỳ tài nguyên tĩnh nào khác trong thử nghiệm của mình. Tuy nhiên, tôi vẫn chưa thể tìm thấy một trang duy nhất cung cấp một giải thích tốt là tại sao bạn không bao gồm các tài nguyên tĩnh.

Chắc chắn, JMeter không phải là trình duyệt, nhưng các yêu cầu về tài nguyên tĩnh chắc chắn sẽ ảnh hưởng đến hiệu suất của ứng dụng của bạn? Có thể ai đó xin vui lòng cho tôi một lời giải thích tốt :-)

Trả lời

7

Tất cả phụ thuộc vào những gì bạn đang cố gắng kiểm tra. Nói chung, có hai loại kiểm tra hiệu năng tôi làm với JMeter: các xét nghiệm cụ thể, nơi tôi nhìn vào những thứ mà tôi lo lắng, và các xét nghiệm "lưới an toàn", nơi tôi đo toàn bộ ứng dụng để đảm bảo nó thực sự làm việc theo cách tôi mong đợi nó.

Kiểm tra cụ thể gần như luôn đối phó với các khía cạnh động của ứng dụng web - mã phía máy chủ (.aspx, .php, .jsp, v.v.). Đây là nơi mà hầu hết các ứng dụng có nút cổ chai của họ - nỗ lực để chạy một kịch bản phía máy chủ là nhiều, nhiều lần cao hơn nỗ lực để lấy một tập tin CSS từ đĩa và phục vụ nó lên trình duyệt mà không cần xử lý thêm. Nếu tôi đang thử nghiệm các kịch bản phía máy chủ, tôi cũng không muốn tải các nội dung - vì chúng làm lộn xộn các thử nghiệm và tiêu thụ băng thông ở đầu cuối của trình kiểm tra. Tôi không muốn các bài kiểm tra thất bại vì máy chủ JMeter của tôi đang tải xuống một tệp video 5MB trên mỗi chuỗi và sử dụng tất cả băng thông, khi những gì tôi thực sự cố gắng làm là xem số lượng đăng nhập mỗi giây mà máy chủ có thể hỗ trợ.

Có rất ít điểm trong việc kiểm tra khả năng của máy chủ web của bạn để phục vụ các tệp tĩnh - Microsoft, nhóm Apache, bất kỳ ai, đã thực hiện một công việc tuyệt vời tại đó; trừ khi bạn có một mối quan tâm rất cụ thể, có những cách tốt hơn để chi tiêu ngân sách thử nghiệm của bạn.

Kiểm tra lưới an toàn đặt toàn bộ nội dung lại với nhau để chứng minh rằng tất cả đều thực sự hoạt động theo cách tôi mong đợi. Thông thường, tôi chạy chúng trên một môi trường sản xuất (như), vì vậy tôi có một CDN, phần cứng cấp sản xuất và cấu hình ứng dụng "sống".Tôi thường sử dụng dịch vụ thử nghiệm dựa trên đám mây cho điều này, vì vậy tôi có thể thấy hiệu suất từ ​​các vị trí khác nhau và tạo đủ tải để giảm căng thẳng cho bộ sản xuất. Bạn có thể sử dụng JMeter cho điều này (và có một vài dịch vụ JMeter Cloud mà tôi đã sử dụng trong quá khứ). Đó là tốn kém, nó có thể yêu cầu thời gian chết, và bạn chỉ nên làm điều đó như một mạng lưới an toàn.

+0

+1. Tôi thích câu trả lời của bạn hơn. –

+0

Cảm ơn bạn đã có câu trả lời tuyệt vời, được giải thích rất tốt! – Daniel

1

Trừ khi ứng dụng của bạn được sử dụng bởi khách truy cập bình thường chỉ xem một trang và sau đó đi, có khả năng là tài nguyên tĩnh đang được tải xuống một lần và sau đó được phân phát từ bộ nhớ cache của trình duyệt. Ngoài ra, mặc dù tài nguyên tĩnh ảnh hưởng đến băng thông và thời gian phản hồi tổng thể cho người dùng, chúng sẽ có tác động nhỏ đến tải trên máy chủ và chúng có thể không phải là loại điều bạn muốn đo lường.

Tôi đoán bạn cần thử bắt chước người dùng thực sự sẽ làm gì với ứng dụng.

6

Khi bạn muốn thực hiện kiểm tra hiệu năng (đặc biệt là kiểm tra căng thẳng), nơi bạn cần tạo thời gian phản hồi của ứng dụng dưới dạng hàm số người dùng/chủ đề, bạn cần bao gồm tất cả tài nguyên tĩnh, như jMeter Proxy đã lưu chúng khi bạn ghi lại thử nghiệm của mình.

Để đưa bộ nhớ cache của trình duyệt vào tài khoản, bạn có thể sử dụng HTTP Cache Manager hoặc Once Only controller để mỗi luồng chỉ tải xuống nội dung tĩnh một lần, với yêu cầu đầu tiên của chúng.
Trình quản lý bộ nhớ cache HTTP là cách được khuyên dùng và dễ thiết lập hơn, chỉ cần bao gồm nó trong thử nghiệm của bạn, là con đầu tiên của một nhóm chuỗi.
Khi bộ điều khiển chỉ được sử dụng thường xuyên khi bạn chỉ cần đăng nhập người dùng theo yêu cầu đầu tiên của họ.

Yêu cầu BTW của các yêu cầu HTTP không tĩnh được khuyến nghị, bạn sẽ không, ví dụ: tìm kiếm cùng tên sản phẩm hoặc ví dụ: mua cùng một cuốn sách mỗi lần, đó thường là điểm khởi đầu có thể cung cấp cho bạn ý tưởng chung về hiệu suất hiệu suất của ứng dụng.

Hy vọng điều này sẽ giúp ...

Các vấn đề liên quan