2016-03-07 18 views
6

Tôi biết khi sử dụng ứng dụng khách Java HTTP được tích hợp trong các kết nối mẫu JMeterHTTP Request có thể hoặc không thể gộp lại, tùy thuộc vào việc triển khai và cấu hình JVM.JMeter có kết nối các kết nối HTTP không?

Tuy nhiên, các kết nối nhóm JMeter có sử dụng HttpClient3.1 hoặc HttpClient4 không?

Có một số gợi ý trong tài liệu JMeter có thể, nhưng không có gì trong tài liệu xác định rõ ràng nó.

Nếu có, có cách nào để kiểm soát hồ bơi kết nối không? Ví dụ, bạn có thể thiết lập kích thước của hồ bơi?

Trả lời

8

JMeter thực hiện một số kết nối HTTP khi sử dụng HttpClient3.1 hoặc HttpClient4.

Trong cả hai trường hợp, các kết nối được gộp chung cho mỗi luồng. Các kết nối KHÔNG được chia sẻ giữa các luồng.

Khi sử dụng HttpClient3.1, JMeter sử dụng phiên bản SimpleHttpConnectionManager trên mỗi luồng.

Khi sử dụng HttpClient4, JMeter sử dụng một thể hiện của lớp con PoolingClientConnectionManager trên mỗi luồng và sử dụng cài đặt mặc định của PoolingClientConnectonManager (2 kết nối cho mỗi tuyến đường và 20 kết nối tối đa).

JMeter không cung cấp cơ chế để kiểm soát các thông số của các nhóm kết nối.

Tôi phải đi đến mã nguồn của JMeter để tìm câu trả lời này. Xem các liên kết sau đây để tham khảo (các 2.13 gắn thẻ code):

Lưu ý: câu trả lời này là chính xác cho JMeter 2.13. Câu trả lời có thể khác với các phiên bản khác của JMeter.

+0

có, phải sử dụng triển khai httpclient! Cảm ơn rất nhiều! – hao

1

Cập nhật cho JMeter 3: trong cấu hình HTTPSampler của bạn, bạn có thể sử dụng các mục

<boolProp name="HTTPSampler.concurrentDwn">true</boolProp> 
<stringProp name="HTTPSampler.concurrentPool">10</stringProp> 

để xác định kích thước hồ bơi kết nối theo này Code-Snippet (từ http://svn.apache.org/viewvc/jmeter/tags/v3_0/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?view=markup dòng 785ff)

 if(this.testElement.isConcurrentDwn()) { 
      try { 
       int maxConcurrentDownloads = Integer.parseInt(this.testElement.getConcurrentPool()); 
        connManager.setDefaultMaxPerRoute(Math.max(maxConcurrentDownloads, connManager.getDefaultMaxPerRoute()));     
       } catch (NumberFormatException nfe) { 
        // no need to log -> will be done by the sampler 
       } 
      } 
     } 

Cấu hình thông qua giao diện người dùng JMeter hơi kỳ quặc:

chuyển cấu hình bộ chọn HTTP Xem thành "Nâng cao", chọn "Ret rieve tất cả các tài nguyên được nhúng ", sau đó" Tải xuống song song "và nhập một số. Bạn có thể bỏ chọn "Truy xuất tất cả tài nguyên được nhúng" sau đó nếu bạn không muốn JMeter phân tích cú pháp câu trả lời của bạn cho hình ảnh

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