2016-03-07 27 views
6

Wiem, że podczas korzystania z wbudowanego klienta Java HTTP w połączeniu próbnika JMeterHTTP Request można lub nie można połączyć, w zależności od implementacji i konfiguracji maszyny JVM.Czy połączenia HTTP puli JMeter?

Czy jednak połączenia puli JMeter są używane podczas korzystania z HttpClient3.1 lub HttpClient4?

Istnieje kilka wskazówek w dokumentacji JMeter, że może, ale nic w dokumentacji ostatecznie nie stwierdza.

Jeśli tak, czy istnieje sposób kontrolowania puli połączeń? Na przykład, czy możesz ustawić rozmiar puli?

Odpowiedz

8

JMeter wykonuje pewne połączenie połączeń HTTP przy użyciu HttpClient3.1 lub HttpClient4.

W obu przypadkach połączenia są grupowane według wątków. Połączenia NIE są udostępniane we wszystkich wątkach.

Podczas korzystania z HttpClient3.1, JMeter używa instancji SimpleHttpConnectionManager dla każdego wątku.

Podczas używania HttpClient4, JMeter używa instancji podklasy PoolingClientConnectionManager dla każdego wątku i używa domyślnych ustawień PoolingClientConnectonManager (2 połączenia na trasę i 20 maksymalnych połączeń).

JMeter nie zapewnia mechanizmu do kontrolowania parametrów pul połączeń.

Musiałem przejść do kodu źródłowego JMeter, aby znaleźć tę odpowiedź. Patrz poniższe linki do odniesienia (2,13 oznaczone Kodeksu):

Uwaga: Ta odpowiedź jest dokładna dla JMeter 2.13. Odpowiedź może być inna w przypadku innych wersji JMeter.

+0

tak, musi używać implementacji httpclient! Wielkie dzięki! – hao

1

Aktualizacja JMeter 3: w konfiguracji HTTPSampler można użyć wpisy

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

aby określić rozmiar puli połączeń zgodnie z tym Code-Snippet (od http://svn.apache.org/viewvc/jmeter/tags/v3_0/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?view=markup linii 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 
       } 
      } 
     } 

Konfiguracja za pomocą interfejsu JMeter jest nieco dziwaczna:

przełącz widok konfiguracji samplera HTTP na "Zaawansowane", zaznacz "Ret rieve all embedded resources ", następnie" Parallel Downloads "i wpisz liczbę. Możesz odznaczać "Pobierz wszystkie zasoby osadzone", jeśli nie chcesz, aby JMeter analizował twoje odpowiedzi na obrazy

Powiązane problemy