Skip to content

Commit d185009

Browse files
pmouawadwing328
authored andcommitted
Improve JMeter Template : Fix Issue 7773 (#7774)
* Improve JMeter Template: In CSV DataSet ignore first line as it contains headers Share CSV for Thread-Group instead of doing it across all threads Use scheduler Add variables definable through properties for: - Rampup - Duration - Threads Drop HttpClient 3.1 customization Remove in Test Plan Element host and port as they are defined in User Variables * Improve JMeter Template : Fix Issue 7773 This comment #7773 As per request update samples
1 parent 22f0b8d commit d185009

File tree

4 files changed

+232
-195
lines changed

4 files changed

+232
-195
lines changed

modules/swagger-codegen/src/main/resources/JMeter/api.mustache

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,28 @@
66
<boolProp name="TestPlan.functional_mode">false</boolProp>
77
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
88
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
9-
<collectionProp name="Arguments.arguments">
10-
<elementProp name="host" elementType="Argument">
11-
<stringProp name="Argument.name">host</stringProp>
12-
<stringProp name="Argument.value">localhost</stringProp>
13-
<stringProp name="Argument.metadata">=</stringProp>
14-
</elementProp>
15-
<elementProp name="port" elementType="Argument">
16-
<stringProp name="Argument.name">port</stringProp>
17-
<stringProp name="Argument.value">8080</stringProp>
18-
<stringProp name="Argument.metadata">=</stringProp>
19-
</elementProp>
20-
</collectionProp>
9+
<collectionProp name="Arguments.arguments"/>
2110
</elementProp>
2211
<stringProp name="TestPlan.user_define_classpath"></stringProp>
2312
</TestPlan>
2413
<hashTree>
2514
<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
2615
<collectionProp name="Arguments.arguments">
16+
<elementProp name="threads" elementType="Argument">
17+
<stringProp name="Argument.name">threads</stringProp>
18+
<stringProp name="Argument.value">${__P(threads,1)}</stringProp>
19+
<stringProp name="Argument.metadata">=</stringProp>
20+
</elementProp>
21+
<elementProp name="rampup" elementType="Argument">
22+
<stringProp name="Argument.name">rampup</stringProp>
23+
<stringProp name="Argument.value">${__P(rampup,1)}</stringProp>
24+
<stringProp name="Argument.metadata">=</stringProp>
25+
</elementProp>
26+
<elementProp name="duration" elementType="Argument">
27+
<stringProp name="Argument.name">duration</stringProp>
28+
<stringProp name="Argument.value">${__P(duration,1)}</stringProp>
29+
<stringProp name="Argument.metadata">=</stringProp>
30+
</elementProp>
2731
<elementProp name="testCases" elementType="Argument">
2832
<stringProp name="Argument.name">testCases</stringProp>
2933
<stringProp name="Argument.value">${__P(testCases,10)}</stringProp>
@@ -67,13 +71,13 @@
6771
<boolProp name="LoopController.continue_forever">false</boolProp>
6872
<stringProp name="LoopController.loops">${testCases}</stringProp>
6973
</elementProp>
70-
<stringProp name="ThreadGroup.num_threads">1</stringProp>
71-
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
74+
<stringProp name="ThreadGroup.num_threads">${threads}</stringProp>
75+
<stringProp name="ThreadGroup.ramp_time">${rampup}</stringProp>
7276
<longProp name="ThreadGroup.start_time">1448391617000</longProp>
7377
<longProp name="ThreadGroup.end_time">1448391617000</longProp>
74-
<boolProp name="ThreadGroup.scheduler">false</boolProp>
75-
<stringProp name="ThreadGroup.duration"></stringProp>
76-
<stringProp name="ThreadGroup.delay"></stringProp>
78+
<boolProp name="ThreadGroup.scheduler">true</boolProp>
79+
<stringProp name="ThreadGroup.duration">${duration}</stringProp>
80+
<stringProp name="ThreadGroup.delay">5</stringProp>
7781
</ThreadGroup>
7882
<hashTree>
7983
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
@@ -109,7 +113,7 @@
109113
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
110114
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
111115
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
112-
<stringProp name="HTTPSampler.implementation">HttpClient3.1</stringProp>
116+
<stringProp name="HTTPSampler.implementation"></stringProp>
113117
<boolProp name="HTTPSampler.monitor">false</boolProp>
114118
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
115119
<stringProp name="TestPlan.comments">{{summary}} {{notes}}</stringProp>
@@ -121,9 +125,10 @@
121125
<stringProp name="filename">${testData.{{operationId}}File}</stringProp>
122126
<boolProp name="quotedData">true</boolProp>
123127
<boolProp name="recycle">true</boolProp>
124-
<stringProp name="shareMode">shareMode.all</stringProp>
128+
<stringProp name="shareMode">shareMode.group</stringProp>
125129
<boolProp name="stopThread">false</boolProp>
126130
<stringProp name="variableNames"></stringProp>
131+
<boolProp name="ignoreFirstLine">true</boolProp>
127132
</CSVDataSet>
128133
<hashTree/>
129134
</hashTree>

0 commit comments

Comments
 (0)