Author: undera
Date: Mon Jan 5 19:49:06 2015
New Revision: 1649629
URL: http://svn.apache.org/r1649629
Log:
48799 - Add connect time to output metrics
Added:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/MeasuringConnectionManager.java
Modified:
jmeter/trunk/bin/jmeter.properties
jmeter/trunk/bin/testfiles/AssertionTestPlan.jmx
jmeter/trunk/bin/testfiles/AuthManagerTestPlan.jmx
jmeter/trunk/bin/testfiles/GenTest210.jmx
jmeter/trunk/bin/testfiles/GenTest27.jmx
jmeter/trunk/bin/testfiles/GuiTest.jmx
jmeter/trunk/bin/testfiles/GuiTest231.jmx
jmeter/trunk/bin/testfiles/HeaderManagerTestPlan.jmx
jmeter/trunk/bin/testfiles/InterleaveTestPlan.jmx
jmeter/trunk/bin/testfiles/InterleaveTestPlan2.jmx
jmeter/trunk/bin/testfiles/LoopTestPlan.jmx
jmeter/trunk/bin/testfiles/OnceOnlyTestPlan.jmx
jmeter/trunk/bin/testfiles/SimpleTestPlan.jmx
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java
jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java
jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java
jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
jmeter/trunk/src/core/org/apache/jmeter/visualizers/TableSample.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java
jmeter/trunk/xdocs/changes.xml
jmeter/trunk/xdocs/usermanual/glossary.xml
jmeter/trunk/xdocs/usermanual/listeners.xml
Modified: jmeter/trunk/bin/jmeter.properties
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter.properties?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/jmeter.properties (original)
+++ jmeter/trunk/bin/jmeter.properties Mon Jan 5 19:49:06 2015
@@ -465,6 +465,7 @@ log_level.jorphan=INFO
#jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
#jmeter.save.saveservice.latency=true
+#jmeter.save.saveservice.connect_time=false
#jmeter.save.saveservice.samplerData=false
#jmeter.save.saveservice.responseHeaders=false
#jmeter.save.saveservice.requestHeaders=false
Modified: jmeter/trunk/bin/testfiles/AssertionTestPlan.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/AssertionTestPlan.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/AssertionTestPlan.jmx (original)
+++ jmeter/trunk/bin/testfiles/AssertionTestPlan.jmx Mon Jan 5 19:49:06 2015
@@ -60,6 +60,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -91,6 +92,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/AuthManagerTestPlan.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/AuthManagerTestPlan.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/AuthManagerTestPlan.jmx (original)
+++ jmeter/trunk/bin/testfiles/AuthManagerTestPlan.jmx Mon Jan 5 19:49:06 2015
@@ -106,6 +106,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/GenTest210.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/GenTest210.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/GenTest210.jmx (original)
+++ jmeter/trunk/bin/testfiles/GenTest210.jmx Mon Jan 5 19:49:06 2015
@@ -970,6 +970,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1002,6 +1003,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1034,6 +1036,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1080,6 +1083,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1112,6 +1116,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1146,6 +1151,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1186,6 +1192,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1227,6 +1234,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1259,6 +1267,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1299,6 +1308,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1331,6 +1341,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1363,6 +1374,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1395,6 +1407,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1427,6 +1440,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/GenTest27.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/GenTest27.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/GenTest27.jmx (original)
+++ jmeter/trunk/bin/testfiles/GenTest27.jmx Mon Jan 5 19:49:06 2015
@@ -942,6 +942,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -974,6 +975,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1006,6 +1008,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1052,6 +1055,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1084,6 +1088,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1118,6 +1123,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1157,6 +1163,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1198,6 +1205,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1238,6 +1246,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1270,6 +1279,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1302,6 +1312,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1334,6 +1345,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1366,6 +1378,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/GuiTest.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/GuiTest.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/GuiTest.jmx (original)
+++ jmeter/trunk/bin/testfiles/GuiTest.jmx Mon Jan 5 19:49:06 2015
@@ -189,6 +189,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -220,6 +221,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -251,6 +253,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -282,6 +285,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -313,6 +317,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -344,6 +349,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -375,6 +381,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/GuiTest231.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/GuiTest231.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/GuiTest231.jmx (original)
+++ jmeter/trunk/bin/testfiles/GuiTest231.jmx Mon Jan 5 19:49:06 2015
@@ -787,6 +787,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -825,6 +826,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -857,6 +859,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -889,6 +892,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -930,6 +934,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -962,6 +967,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -994,6 +1000,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1026,6 +1033,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1058,6 +1066,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1090,6 +1099,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1122,6 +1132,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
@@ -1154,6 +1165,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/HeaderManagerTestPlan.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/HeaderManagerTestPlan.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/HeaderManagerTestPlan.jmx (original)
+++ jmeter/trunk/bin/testfiles/HeaderManagerTestPlan.jmx Mon Jan 5 19:49:06
2015
@@ -59,6 +59,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/InterleaveTestPlan.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/InterleaveTestPlan.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/InterleaveTestPlan.jmx (original)
+++ jmeter/trunk/bin/testfiles/InterleaveTestPlan.jmx Mon Jan 5 19:49:06 2015
@@ -99,6 +99,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/InterleaveTestPlan2.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/InterleaveTestPlan2.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/InterleaveTestPlan2.jmx (original)
+++ jmeter/trunk/bin/testfiles/InterleaveTestPlan2.jmx Mon Jan 5 19:49:06 2015
@@ -126,6 +126,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/LoopTestPlan.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/LoopTestPlan.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/LoopTestPlan.jmx (original)
+++ jmeter/trunk/bin/testfiles/LoopTestPlan.jmx Mon Jan 5 19:49:06 2015
@@ -83,6 +83,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/OnceOnlyTestPlan.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/OnceOnlyTestPlan.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/OnceOnlyTestPlan.jmx (original)
+++ jmeter/trunk/bin/testfiles/OnceOnlyTestPlan.jmx Mon Jan 5 19:49:06 2015
@@ -80,6 +80,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified: jmeter/trunk/bin/testfiles/SimpleTestPlan.jmx
URL:
http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/SimpleTestPlan.jmx?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/bin/testfiles/SimpleTestPlan.jmx (original)
+++ jmeter/trunk/bin/testfiles/SimpleTestPlan.jmx Mon Jan 5 19:49:06 2015
@@ -117,6 +117,7 @@
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
+ <connectTime>false</connectTime>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
Mon Jan 5 19:49:06 2015
@@ -229,6 +229,7 @@ public abstract class SamplerResultTab i
String startTime = dateFormat.format(new
Date(sampleResult.getStartTime()));
statsBuff.append(JMeterUtils.getResString("view_results_sample_start")).append(startTime).append(NL);
//$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_load_time")).append(sampleResult.getTime()).append(NL);
//$NON-NLS-1$
+
statsBuff.append(JMeterUtils.getResString("view_results_connect_time")).append(sampleResult.getConnectTime()).append(NL);
//$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_latency")).append(sampleResult.getLatency()).append(NL);
//$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_size_in_bytes")).append(sampleResult.getBytes()).append(NL);
//$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_size_headers_in_bytes")).append(sampleResult.getHeadersSize()).append(NL);
//$NON-NLS-1$
Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
Mon Jan 5 19:49:06 2015
@@ -81,7 +81,8 @@ public class TableVisualizer extends Abs
"table_visualizer_sample_time", // $NON-NLS-1$
"table_visualizer_status", // $NON-NLS-1$
"table_visualizer_bytes", // $NON-NLS-1$
- "table_visualizer_latency"}; // $NON-NLS-1$
+ "table_visualizer_latency", // $NON-NLS-1$
+ "table_visualizer_connect"}; // $NON-NLS-1$
private ObjectTableModel model = null;
@@ -125,18 +126,19 @@ public class TableVisualizer extends Abs
model = new ObjectTableModel(COLUMNS,
TableSample.class, // The object used for each row
new Functor[] {
- new Functor("getSampleNumberString"), // $NON-NLS-1$
- new Functor("getStartTimeFormatted", // $NON-NLS-1$
+ new Functor("getSampleNumberString"), // $NON-NLS-1$
+ new Functor("getStartTimeFormatted", // $NON-NLS-1$
new Object[]{format}),
- new Functor("getThreadName"), // $NON-NLS-1$
- new Functor("getLabel"), // $NON-NLS-1$
- new Functor("getElapsed"), // $NON-NLS-1$
+ new Functor("getThreadName"), // $NON-NLS-1$
+ new Functor("getLabel"), // $NON-NLS-1$
+ new Functor("getElapsed"), // $NON-NLS-1$
new SampleSuccessFunctor("isSuccess"), // $NON-NLS-1$
- new Functor("getBytes"), // $NON-NLS-1$
- new Functor("getLatency") }, // $NON-NLS-1$
- new Functor[] { null, null, null, null, null, null, null, null
},
+ new Functor("getBytes"), // $NON-NLS-1$
+ new Functor("getLatency"), // $NON-NLS-1$
+ new Functor("getConnectTime") }, // $NON-NLS-1$
+ new Functor[] { null, null, null, null, null, null, null,
null, null },
new Class[] {
- String.class, String.class, String.class, String.class,
Long.class, ImageIcon.class, Long.class, Long.class });
+ String.class, String.class, String.class, String.class,
Long.class, ImageIcon.class, Long.class, Long.class, Long.class });
init();
}
@@ -188,7 +190,9 @@ public class TableVisualizer extends Abs
res.getTime(),
res.isSuccessful(),
res.getBytes(),
- res.getLatency());
+ res.getLatency(),
+ res.getConnectTime()
+ );
model.addRow(newS);
}
updateTextFields(res);
Modified:
jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java
Mon Jan 5 19:49:06 2015
@@ -291,6 +291,7 @@ public class TransactionController exten
res.setAllThreads(sampleResult.getAllThreads());
res.setGroupThreads(sampleResult.getGroupThreads());
res.setLatency(res.getLatency() + sampleResult.getLatency());
+ res.setConnectTime(res.getConnectTime() +
sampleResult.getConnectTime());
}
}
}
Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Mon
Jan 5 19:49:06 2015
@@ -906,6 +906,7 @@ save_hostname=Save Hostname
save_idletime=Save Idle Time
save_label=Save Label
save_latency=Save Latency
+save_connecttime=Save Connect Time
save_message=Save Response Message
save_overwrite_existing_file=The selected file already exists, do you want to
overwrite it?
save_requestheaders=Save Request Headers (XML)
@@ -1072,6 +1073,7 @@ system_sampler_stdout=Standard output (s
system_sampler_title=OS Process Sampler
table_visualizer_bytes=Bytes
table_visualizer_latency=Latency
+table_visualizer_connect=Connect
table_visualizer_sample_num=Sample #
table_visualizer_sample_time=Sample Time(ms)
table_visualizer_start_time=Start Time
@@ -1196,6 +1198,7 @@ view_results_error_count=Error Count:
view_results_fields=fields:
view_results_in_table=View Results in Table
view_results_latency=Latency:
+view_results_connect_time=Connect Time:
view_results_load_time=Load time:
view_results_render=Render:
view_results_render_document=Document
Modified: jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java Mon Jan
5 19:49:06 2015
@@ -178,7 +178,12 @@ public class SampleResult implements Ser
/** time to first response */
private long latency = 0;
-
+
+ /**
+ * time to end connecting
+ */
+ private long connectTime = 0;
+
/** Should thread start next iteration ? */
private boolean startNextThreadLoop = false;
@@ -301,6 +306,7 @@ public class SampleResult implements Ser
isMonitor = res.isMonitor;
label = res.label;//OK
latency = res.latency;
+ connectTime = res.connectTime;
location = res.location;//OK
parent = res.parent; // TODO ??
pauseTime = res.pauseTime;
@@ -1207,6 +1213,29 @@ public class SampleResult implements Ser
}
/**
+ * @return Returns the connect time.
+ */
+ public long getConnectTime() {
+ return connectTime;
+ }
+
+ /**
+ * Set the time to the end of connecting
+ */
+ public void connectEnd() {
+ connectTime = currentTimeInMillis() - startTime - idleTime;
+ }
+
+ /**
+ * This is only intended for use by SampleResultConverter!
+ *
+ * @param time The connect time to set.
+ */
+ public void setConnectTime(long time) {
+ this.connectTime = time;
+ }
+
+ /**
* This is only intended for use by SampleResultConverter!
*
* @param timeStamp
Modified:
jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
---
jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java
(original)
+++
jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java
Mon Jan 5 19:49:06 2015
@@ -198,6 +198,7 @@ public class SampleSaveConfiguration imp
private static final String SUBRESULTS_PROP =
"jmeter.save.saveservice.subresults"; // $NON_NLS-1$
private static final String ASSERTIONS_PROP =
"jmeter.save.saveservice.assertions"; // $NON_NLS-1$
private static final String LATENCY_PROP =
"jmeter.save.saveservice.latency"; // $NON_NLS-1$
+ private static final String CONNECT_TIME_PROP =
"jmeter.save.saveservice.connect_time"; // $NON_NLS-1$
private static final String SAMPLERDATA_PROP =
"jmeter.save.saveservice.samplerData"; // $NON_NLS-1$
private static final String RESPONSEHEADERS_PROP =
"jmeter.save.saveservice.responseHeaders"; // $NON_NLS-1$
private static final String REQUESTHEADERS_PROP =
"jmeter.save.saveservice.requestHeaders"; // $NON_NLS-1$
@@ -216,7 +217,7 @@ public class SampleSaveConfiguration imp
// N.B. Remember to update the equals and hashCode methods when adding
new variables.
// Initialise values from properties
- private boolean time = _time, latency = _latency, timestamp = _timestamp,
success = _success, label = _label,
+ private boolean time = _time, latency = _latency,
connectTime=_connectTime, timestamp = _timestamp, success = _success, label =
_label,
code = _code, message = _message, threadName = _threadName,
dataType = _dataType, encoding = _encoding,
assertions = _assertions, subresults = _subresults, responseData
= _responseData,
samplerData = _samplerData, xml = _xml, fieldNames = _fieldNames,
responseHeaders = _responseHeaders,
@@ -250,7 +251,7 @@ public class SampleSaveConfiguration imp
// Defaults from properties:
private static final boolean _time, _timestamp, _success, _label, _code,
_message, _threadName, _xml,
- _responseData, _dataType, _encoding, _assertions, _latency,
_subresults, _samplerData, _fieldNames,
+ _responseData, _dataType, _encoding, _assertions, _latency,
_connectTime, _subresults, _samplerData, _fieldNames,
_responseHeaders, _requestHeaders;
private static final boolean _responseDataOnError;
@@ -303,6 +304,7 @@ public class SampleSaveConfiguration imp
_subresults =
TRUE.equalsIgnoreCase(props.getProperty(SUBRESULTS_PROP, TRUE));
_assertions =
TRUE.equalsIgnoreCase(props.getProperty(ASSERTIONS_PROP, TRUE));
_latency =
TRUE.equalsIgnoreCase(props.getProperty(LATENCY_PROP, TRUE));
+ _connectTime =
TRUE.equalsIgnoreCase(props.getProperty(CONNECT_TIME_PROP, FALSE));
_samplerData =
TRUE.equalsIgnoreCase(props.getProperty(SAMPLERDATA_PROP, FALSE));
_responseHeaders =
TRUE.equalsIgnoreCase(props.getProperty(RESPONSEHEADERS_PROP, FALSE));
_requestHeaders =
TRUE.equalsIgnoreCase(props.getProperty(REQUESTHEADERS_PROP, FALSE));
@@ -441,6 +443,7 @@ public class SampleSaveConfiguration imp
hostname = value;
label = value;
latency = value;
+ connectTime = value;
message = value;
printMilliseconds = _printMilliseconds;//is derived from properties
only
requestHeaders = value;
@@ -491,6 +494,7 @@ public class SampleSaveConfiguration imp
SampleSaveConfiguration s = (SampleSaveConfiguration)obj;
boolean primitiveValues = s.time == time &&
s.latency == latency &&
+ s.connectTime == connectTime &&
s.timestamp == timestamp &&
s.success == success &&
s.label == label &&
@@ -536,6 +540,7 @@ public class SampleSaveConfiguration imp
int hash = 7;
hash = 31 * hash + (time ? 1 : 0);
hash = 31 * hash + (latency ? 1 : 0);
+ hash = 31 * hash + (connectTime ? 1 : 0);
hash = 31 * hash + (timestamp ? 1 : 0);
hash = 31 * hash + (success ? 1 : 0);
hash = 31 * hash + (label ? 1 : 0);
@@ -635,6 +640,14 @@ public class SampleSaveConfiguration imp
this.latency = latency;
}
+ public boolean saveConnectTime() {
+ return connectTime;
+ }
+
+ public void setConnectTime(boolean connectTime) {
+ this.connectTime = connectTime;
+ }
+
public boolean saveMessage() {
return message;
}
Modified:
jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
---
jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
(original)
+++
jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
Mon Jan 5 19:49:06 2015
@@ -101,6 +101,7 @@ public class StatisticalSampleResult ext
this.setEndTime(Math.max(getEndTime(), res.getEndTime()));
setLatency(getLatency()+ res.getLatency());
+ setConnectTime(getConnectTime()+ res.getConnectTime());
elapsed += res.getTime();
}
Modified: jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/save/CSVSaveService.java Mon Jan 5
19:49:06 2015
@@ -87,6 +87,7 @@ public final class CSVSaveService {
private static final String CSV_URL = "URL"; // $NON-NLS-1$
private static final String CSV_FILENAME = "Filename"; // $NON-NLS-1$
private static final String CSV_LATENCY = "Latency"; // $NON-NLS-1$
+ private static final String CSV_CONNECT_TIME = "Connect"; // $NON-NLS-1$
private static final String CSV_ENCODING = "Encoding"; // $NON-NLS-1$
private static final String CSV_HOSTNAME = "Hostname"; // $NON-NLS-1$
private static final String CSV_IDLETIME = "IdleTime"; // $NON-NLS-1$
@@ -350,6 +351,11 @@ public final class CSVSaveService {
text = parts[i++];
result.setIdleTime(Long.parseLong(text));
}
+ if (saveConfig.saveConnectTime()) {
+ field = CSV_CONNECT_TIME;
+ text = parts[i++];
+ result.setConnectTime(Long.parseLong(text));
+ }
if (i + saveConfig.getVarCount() < parts.length) {
log.warn("Line: " + lineNumber + ". Found " + parts.length
@@ -488,6 +494,11 @@ public final class CSVSaveService {
text.append(delim);
}
+ if (saveConfig.saveConnectTime()) {
+ text.append(CSV_CONNECT_TIME);
+ text.append(delim);
+ }
+
for (int i = 0; i < SampleEvent.getVarCount(); i++) {
text.append(VARIABLE_NAME_QUOTE_CHAR);
text.append(SampleEvent.getVarName(i));
@@ -541,6 +552,7 @@ public final class CSVSaveService {
headerLabelMethods.put(CSV_ERROR_COUNT, new
Functor("setSampleCount"));
headerLabelMethods.put(CSV_HOSTNAME, new Functor("setHostname"));
headerLabelMethods.put(CSV_IDLETIME, new Functor("setIdleTime"));
+ headerLabelMethods.put(CSV_CONNECT_TIME, new
Functor("setConnectTime"));
}
/**
@@ -951,6 +963,10 @@ public final class CSVSaveService {
text.append(event.getResult().getIdleTime());
}
+ if (saveConfig.saveConnectTime()) {
+ text.append(sample.getConnectTime());
+ }
+
for (int i = 0; i < SampleEvent.getVarCount(); i++) {
text.append(event.getVarValue(i));
}
Modified:
jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
---
jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
(original)
+++
jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
Mon Jan 5 19:49:06 2015
@@ -77,6 +77,7 @@ public class SampleResultConverter exten
private static final String ATT_HOSTNAME = "hn"; //$NON-NLS-1$
private static final String ATT_LABEL = "lb"; //$NON-NLS-1$
private static final String ATT_LATENCY = "lt"; //$NON-NLS-1$
+ private static final String ATT_CONNECT_TIME = "ct"; //$NON-NLS-1$
private static final String ATT_ALL_THRDS = "na"; //$NON-NLS-1$
private static final String ATT_GRP_THRDS = "ng"; //$NON-NLS-1$
@@ -291,6 +292,9 @@ public class SampleResultConverter exten
if (save.saveLatency()) {
writer.addAttribute(ATT_LATENCY, Long.toString(res.getLatency()));
}
+ if (save.saveConnectTime()) {
+ writer.addAttribute(ATT_CONNECT_TIME,
Long.toString(res.getConnectTime()));
+ }
if (save.saveTimestamp()) {
writer.addAttribute(ATT_TIME_STAMP,
Long.toString(res.getTimeStamp()));
}
@@ -441,6 +445,7 @@ public class SampleResultConverter exten
Converter.getLong(reader.getAttribute(ATT_TIME)));
res.setIdleTime(Converter.getLong(reader.getAttribute(ATT_IDLETIME)));
res.setLatency(Converter.getLong(reader.getAttribute(ATT_LATENCY)));
+
res.setConnectTime(Converter.getLong(reader.getAttribute(ATT_CONNECT_TIME)));
res.setBytes(Converter.getInt(reader.getAttribute(ATT_BYTES)));
res.setSampleCount(Converter.getInt(reader.getAttribute(ATT_SAMPLE_COUNT),1));
// default is 1
res.setErrorCount(Converter.getInt(reader.getAttribute(ATT_ERROR_COUNT),0)); //
default is 0
Modified: jmeter/trunk/src/core/org/apache/jmeter/visualizers/TableSample.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/visualizers/TableSample.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/visualizers/TableSample.java
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/visualizers/TableSample.java Mon
Jan 5 19:49:06 2015
@@ -46,17 +46,19 @@ public class TableSample implements Seri
private final long latency;
+ private final long connect;
+
/**
* @deprecated for unit test code only
*/
@Deprecated
public TableSample() {
- this(0, 1, 0, "", "", 0, true, 0, 0);
+ this(0, 1, 0, "", "", 0, true, 0, 0, 0);
}
public TableSample(long totalSamples, int sampleCount, long startTime, String threadName,
String label,
- long elapsed, boolean success, long bytes, long latency) {
+ long elapsed, boolean success, long bytes, long latency, long
connect) {
this.totalSamples = totalSamples;
this.sampleCount = sampleCount;
this.startTime = startTime;
@@ -67,6 +69,7 @@ public class TableSample implements Seri
this.bytes = (sampleCount > 0) ? bytes/sampleCount : 0;
this.success = success;
this.latency = latency;
+ this.connect = connect;
}
// The following getters may appear not to be used - however they are invoked via the Functor class
@@ -142,4 +145,10 @@ public class TableSample implements Seri
return latency;
}
+ /**
+ * @return the conneect time
+ */
+ public long getConnectTime() {
+ return connect;
+ }
}
Modified:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
---
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
(original)
+++
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
Mon Jan 5 19:49:06 2015
@@ -73,6 +73,7 @@ import org.apache.http.client.methods.Ht
import org.apache.http.client.params.ClientPNames;
import org.apache.http.client.params.CookiePolicy;
import org.apache.http.client.protocol.ResponseContentEncoding;
+import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.conn.DnsResolver;
import org.apache.http.conn.params.ConnRoutePNames;
@@ -90,7 +91,6 @@ import org.apache.http.impl.client.Abstr
import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
import org.apache.http.impl.conn.SchemeRegistryFactory;
import org.apache.http.impl.conn.SystemDefaultDnsResolver;
import org.apache.http.message.BasicNameValuePair;
@@ -123,6 +123,7 @@ import org.apache.jmeter.util.JsseSSLMan
import org.apache.jmeter.util.SSLManager;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
+import org.htmlparser.http.ConnectionManager;
/**
* HTTP Sampler using Apache HttpClient 4.x.
@@ -654,10 +655,9 @@ public class HTTPHC4Impl extends HTTPHCA
if (resolver == null) {
resolver = new SystemDefaultDnsResolver();
}
- PoolingClientConnectionManager poolingClientConnectionManager =
new PoolingClientConnectionManager(
- SchemeRegistryFactory.createDefault(), resolver);
+ ClientConnectionManager connManager = new
MeasuringConnectionManager(SchemeRegistryFactory.createDefault(), resolver);
- httpClient = new DefaultHttpClient(poolingClientConnectionManager, clientParams) {
+ httpClient = new DefaultHttpClient(connManager, clientParams) {
@Override
protected HttpRequestRetryHandler
createHttpRequestRetryHandler() {
return new DefaultHttpRequestRetryHandler(RETRY_COUNT,
false); // set retry count
Added:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/MeasuringConnectionManager.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/MeasuringConnectionManager.java?rev=1649629&view=auto
==============================================================================
---
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/MeasuringConnectionManager.java
(added)
+++
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/MeasuringConnectionManager.java
Mon Jan 5 19:49:06 2015
@@ -0,0 +1,268 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.jmeter.protocol.http.sampler;
+
+import org.apache.http.HttpConnectionMetrics;
+import org.apache.http.HttpException;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpEntityEnclosingRequest;
+import org.apache.http.conn.ClientConnectionRequest;
+import org.apache.http.conn.ConnectionPoolTimeoutException;
+import org.apache.http.conn.DnsResolver;
+import org.apache.http.conn.ManagedClientConnection;
+import org.apache.http.conn.routing.HttpRoute;
+import org.apache.http.conn.scheme.SchemeRegistry;
+import org.apache.http.impl.conn.PoolingClientConnectionManager;
+import org.apache.http.params.HttpParams;
+import org.apache.http.protocol.HttpContext;
+import org.apache.jmeter.samplers.SampleResult;
+
+import javax.net.ssl.SSLSession;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Adapter for {@link PoolingClientConnectionManager}
+ * that wraps all connection requests into time-measured implementation {@link
MeasuringConnectionRequest}
+ */
+public class MeasuringConnectionManager extends PoolingClientConnectionManager
{
+
+ private MeasuringConnectionRequest measuredConnection;
+ private SampleResult sample;
+
+ public MeasuringConnectionManager(SchemeRegistry aDefault, DnsResolver
resolver) {
+ super(aDefault, resolver);
+ }
+
+ @Override
+ public ClientConnectionRequest requestConnection(final HttpRoute route,
final Object state) {
+ ClientConnectionRequest res = super.requestConnection(route, state);
+ this.measuredConnection = new MeasuringConnectionRequest(res,
this.sample);
+ return this.measuredConnection;
+ }
+
+ public void setSample(SampleResult sample) {
+ this.sample = sample;
+ }
+
+ /**
+ * And adapter class to pass {@link SampleResult} into {@link
MeasuredConnection}
+ */
+ private static class MeasuringConnectionRequest implements
ClientConnectionRequest {
+ private final ClientConnectionRequest handler;
+ private final SampleResult sample;
+
+ public MeasuringConnectionRequest(ClientConnectionRequest res,
SampleResult sample) {
+ handler = res;
+ this.sample = sample;
+ }
+
+ @Override
+ public ManagedClientConnection getConnection(long timeout, TimeUnit
tunit) throws InterruptedException, ConnectionPoolTimeoutException {
+ ManagedClientConnection res = handler.getConnection(timeout,
tunit);
+ return new MeasuredConnection(res, this.sample);
+ }
+
+ @Override
+ public void abortRequest() {
+ handler.abortRequest();
+ }
+ }
+
+ /**
+ * An adapter for {@link ManagedClientConnection}
+ * that calls SampleResult.connectEnd after calling
ManagedClientConnection.open
+ */
+ private static class MeasuredConnection implements ManagedClientConnection
{
+ private final ManagedClientConnection handler;
+ private final SampleResult sample;
+
+ public MeasuredConnection(ManagedClientConnection res, SampleResult
sample) {
+ handler = res;
+ this.sample = sample;
+ }
+
+ @Override
+ public void open(HttpRoute route, HttpContext context, HttpParams
params) throws IOException {
+ handler.open(route, context, params);
+ if (sample != null) {
+ sample.connectEnd();
+ }
+ }
+
+ // ================= all following methods just wraps handler's
=================
+ @Override
+ public boolean isSecure() {
+ return handler.isSecure();
+ }
+
+ @Override
+ public HttpRoute getRoute() {
+ return handler.getRoute();
+ }
+
+ @Override
+ public SSLSession getSSLSession() {
+ return handler.getSSLSession();
+ }
+
+ @Override
+ public void tunnelTarget(boolean secure, HttpParams params) throws
IOException {
+ handler.tunnelTarget(secure, params);
+ }
+
+ @Override
+ public void tunnelProxy(HttpHost next, boolean secure, HttpParams
params) throws IOException {
+ handler.tunnelProxy(next, secure, params);
+ }
+
+ @Override
+ public void layerProtocol(HttpContext context, HttpParams params)
throws IOException {
+ handler.layerProtocol(context, params);
+ }
+
+ @Override
+ public void markReusable() {
+ handler.markReusable();
+ }
+
+ @Override
+ public void unmarkReusable() {
+ handler.unmarkReusable();
+ }
+
+ @Override
+ public boolean isMarkedReusable() {
+ return handler.isMarkedReusable();
+ }
+
+ @Override
+ public void setState(Object state) {
+ handler.setState(state);
+ }
+
+ @Override
+ public Object getState() {
+ return handler.getState();
+ }
+
+ @Override
+ public void setIdleDuration(long duration, TimeUnit unit) {
+ handler.setIdleDuration(duration, unit);
+ }
+
+ @Override
+ public void releaseConnection() throws IOException {
+ handler.releaseConnection();
+ }
+
+ @Override
+ public void abortConnection() throws IOException {
+ handler.abortConnection();
+ }
+
+ @Override
+ public boolean isResponseAvailable(int timeout) throws IOException {
+ return handler.isResponseAvailable(timeout);
+ }
+
+ @Override
+ public void sendRequestHeader(HttpRequest request) throws
HttpException, IOException {
+ handler.sendRequestHeader(request);
+ }
+
+ @Override
+ public void sendRequestEntity(HttpEntityEnclosingRequest request)
throws HttpException, IOException {
+ handler.sendRequestEntity(request);
+ }
+
+ @Override
+ public HttpResponse receiveResponseHeader() throws HttpException,
IOException {
+ return handler.receiveResponseHeader();
+ }
+
+ @Override
+ public void receiveResponseEntity(HttpResponse response) throws
HttpException, IOException {
+ handler.receiveResponseEntity(response);
+ }
+
+ @Override
+ public void flush() throws IOException {
+ handler.flush();
+ }
+
+ @Override
+ public InetAddress getLocalAddress() {
+ return handler.getLocalAddress();
+ }
+
+ @Override
+ public int getLocalPort() {
+ return handler.getLocalPort();
+ }
+
+ @Override
+ public InetAddress getRemoteAddress() {
+ return handler.getRemoteAddress();
+ }
+
+ @Override
+ public int getRemotePort() {
+ return handler.getRemotePort();
+ }
+
+ @Override
+ public void close() throws IOException {
+ handler.close();
+ }
+
+ @Override
+ public boolean isOpen() {
+ return handler.isOpen();
+ }
+
+ @Override
+ public boolean isStale() {
+ return handler.isStale();
+ }
+
+ @Override
+ public void setSocketTimeout(int timeout) {
+ handler.setSocketTimeout(timeout);
+ }
+
+ @Override
+ public int getSocketTimeout() {
+ return handler.getSocketTimeout();
+ }
+
+ @Override
+ public void shutdown() throws IOException {
+ handler.shutdown();
+ }
+
+ @Override
+ public HttpConnectionMetrics getMetrics() {
+ return handler.getMetrics();
+ }
+ }
+}
Modified:
jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
---
jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java
(original)
+++
jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java
Mon Jan 5 19:49:06 2015
@@ -84,6 +84,7 @@ public class JDBCSampler extends Abstrac
try {
conn = DataSourceElement.getConnection(getDataSource());
} finally {
+ // FIXME: there is separate connect time field now
res.latencyEnd(); // use latency to measure connection time
}
res.setResponseHeaders(conn.toString());
Modified: jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Mon Jan 5 19:49:06 2015
@@ -55,6 +55,7 @@ Summary
<!-- <ch_title>Sample title</ch_title>
<p>
<ul>
+<li><bugzilla>48799</bugzilla> - Add time to establish connection to available
sample metrics. Implemented by Andrey Pokhilko (andrey at blazemeter.com) and contributed by BlazeMeter
Ltd.</li>
<li>Sample text</li>
</ul>
</p>
Modified: jmeter/trunk/xdocs/usermanual/glossary.xml
URL:
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/glossary.xml?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/xdocs/usermanual/glossary.xml (original)
+++ jmeter/trunk/xdocs/usermanual/glossary.xml Mon Jan 5 19:49:06 2015
@@ -48,6 +48,10 @@ browser or other application client.
</p>
<p>
+<a name="Connect"><b>Connect Time</b></a>. JMeter measures the time it took to estable the
connection, including SSL handshake. Note that connect time is not automatically subtracted from <a
href="#Latency">latency</a>.
+</p>
+
+<p>
<a name="Median"><b>Median</b></a> is a number which divides the samples into
two equal halves.
Half of the samples are smaller than the median, and half are larger.
[Some samples may equal the median.]
Modified: jmeter/trunk/xdocs/usermanual/listeners.xml
URL:
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/listeners.xml?rev=1649629&r1=1649628&r2=1649629&view=diff
==============================================================================
--- jmeter/trunk/xdocs/usermanual/listeners.xml (original)
+++ jmeter/trunk/xdocs/usermanual/listeners.xml Mon Jan 5 19:49:06 2015
@@ -137,6 +137,7 @@ The full set of properties that affect r
#jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
#jmeter.save.saveservice.latency=true
+#jmeter.save.saveservice.connect_time=false
#jmeter.save.saveservice.samplerData=false
#jmeter.save.saveservice.responseHeaders=false
#jmeter.save.saveservice.requestHeaders=false
@@ -304,6 +305,7 @@ The order of appearance of columns is fi
<li>URL</li>
<li>Filename - if Save Response to File was used</li>
<li>latency - time to first response</li>
+<li>connect - time to establish connection</li>
<li>encoding</li>
<li>SampleCount - number of samples (1, unless multiple samples are
aggregated)</li>
<li>ErrorCount - number of errors (0 or 1, unless multiple samples are
aggregated)</li>
@@ -427,6 +429,7 @@ The sample attributes have the following
<tr><td>it</td><td>Idle Time = time not spent sampling (milliseconds) (generally
0)</td></tr>
<tr><td>lb</td><td>Label</td></tr>
<tr><td>lt</td><td>Latency = time to initial response (milliseconds) - not all samplers
support this</td></tr>
+<tr><td>lt</td><td>Connect Time = time to establish the connection (milliseconds) - not
all samplers support this</td></tr>
<tr><td>na</td><td>Number of active threads for all thread groups</td></tr>
<tr><td>ng</td><td>Number of active threads in this group</td></tr>
<tr><td>rc</td><td>Response Code (e.g. 200)</td></tr>