blob: dcb3cdb2bfed3cf5f13920d74f851a15627eeef5 [file] [log] [blame]
刘洪青47205852020-08-14 13:39:30 +08001<?xml version="1.0" encoding="UTF-8"?>
2<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.2.1">
3 <hashTree>
4 <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="CAS SSO Tests" enabled="true">
5 <stringProp name="TestPlan.comments"></stringProp>
6 <boolProp name="TestPlan.functional_mode">false</boolProp>
7 <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
8 <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>
11 <stringProp name="TestPlan.user_define_classpath"></stringProp>
12 </TestPlan>
13 <hashTree>
14 <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
15 <collectionProp name="Arguments.arguments">
16 <elementProp name="ThreadCount" elementType="Argument">
17 <stringProp name="Argument.name">ThreadCount</stringProp>
18 <stringProp name="Argument.value">10</stringProp>
19 <stringProp name="Argument.metadata">=</stringProp>
20 <stringProp name="Argument.desc">Number of Threads</stringProp>
21 </elementProp>
22 <elementProp name="Duration" elementType="Argument">
23 <stringProp name="Argument.name">Duration</stringProp>
24 <stringProp name="Argument.value">120</stringProp>
25 <stringProp name="Argument.metadata">=</stringProp>
26 <stringProp name="Argument.desc">in seconds</stringProp>
27 </elementProp>
28 <elementProp name="startupDelay" elementType="Argument">
29 <stringProp name="Argument.name">startupDelay</stringProp>
30 <stringProp name="Argument.value">3</stringProp>
31 <stringProp name="Argument.metadata">=</stringProp>
32 <stringProp name="Argument.desc">in seconds</stringProp>
33 </elementProp>
34 <elementProp name="RampUpPeriod" elementType="Argument">
35 <stringProp name="Argument.name">RampUpPeriod</stringProp>
36 <stringProp name="Argument.value">30</stringProp>
37 <stringProp name="Argument.metadata">=</stringProp>
38 <stringProp name="Argument.desc">in seconds</stringProp>
39 </elementProp>
40 <elementProp name="IdPHost" elementType="Argument">
41 <stringProp name="Argument.name">IdPHost</stringProp>
42 <stringProp name="Argument.value">http://192.168.101.4</stringProp>
43 <stringProp name="Argument.metadata">=</stringProp>
44 <stringProp name="Argument.desc">The main URL of your CAS Instance</stringProp>
45 </elementProp>
46 <elementProp name="IdPPort" elementType="Argument">
47 <stringProp name="Argument.name">IdPPort</stringProp>
48 <stringProp name="Argument.value">443</stringProp>
49 <stringProp name="Argument.metadata">=</stringProp>
50 </elementProp>
51 <elementProp name="IdPContext" elementType="Argument">
52 <stringProp name="Argument.name">IdPContext</stringProp>
53 <stringProp name="Argument.value">idp</stringProp>
54 <stringProp name="Argument.metadata">=</stringProp>
55 </elementProp>
56 <elementProp name="CasSP" elementType="Argument">
57 <stringProp name="Argument.name">CasSP</stringProp>
58 <stringProp name="Argument.value">http://192.168.101.24/cas/login</stringProp>
59 <stringProp name="Argument.metadata">=</stringProp>
60 <stringProp name="Argument.desc">Service Provider url</stringProp>
61 </elementProp>
62 </collectionProp>
63 </Arguments>
64 <hashTree/>
65 <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Get Users/Passwords" enabled="true">
66 <stringProp name="filename">/home/ubuntu/testing/jmeter/accounts.csv</stringProp>
67 <stringProp name="fileEncoding"></stringProp>
68 <stringProp name="variableNames">User,Password</stringProp>
69 <stringProp name="delimiter">,</stringProp>
70 <boolProp name="quotedData">false</boolProp>
71 <boolProp name="recycle">true</boolProp>
72 <boolProp name="stopThread">false</boolProp>
73 <stringProp name="shareMode">shareMode.all</stringProp>
74 <boolProp name="ignoreFirstLine">false</boolProp>
75 </CSVDataSet>
76 <hashTree/>
77 <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
78 <collectionProp name="CookieManager.cookies"/>
79 <boolProp name="CookieManager.clearEachIteration">true</boolProp>
80 <boolProp name="CookieManager.controlledByThreadGroup">false</boolProp>
81 </CookieManager>
82 <hashTree/>
83 <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
84 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
85 <collectionProp name="Arguments.arguments"/>
86 </elementProp>
87 <stringProp name="HTTPSampler.domain"></stringProp>
88 <stringProp name="HTTPSampler.port"></stringProp>
89 <stringProp name="HTTPSampler.protocol">https</stringProp>
90 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
91 <stringProp name="HTTPSampler.path"></stringProp>
92 <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
93 <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
94 <stringProp name="HTTPSampler.connect_timeout">120000</stringProp>
95 <stringProp name="HTTPSampler.response_timeout">120000</stringProp>
96 </ConfigTestElement>
97 <hashTree/>
98 <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
99 <boolProp name="ResultCollector.error_logging">true</boolProp>
100 <objProp>
101 <name>saveConfig</name>
102 <value class="SampleSaveConfiguration">
103 <time>true</time>
104 <latency>true</latency>
105 <timestamp>true</timestamp>
106 <success>true</success>
107 <label>true</label>
108 <code>true</code>
109 <message>true</message>
110 <threadName>true</threadName>
111 <dataType>true</dataType>
112 <encoding>false</encoding>
113 <assertions>true</assertions>
114 <subresults>true</subresults>
115 <responseData>true</responseData>
116 <samplerData>false</samplerData>
117 <xml>true</xml>
118 <fieldNames>false</fieldNames>
119 <responseHeaders>true</responseHeaders>
120 <requestHeaders>true</requestHeaders>
121 <responseDataOnError>false</responseDataOnError>
122 <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
123 <assertionsResultsToSave>0</assertionsResultsToSave>
124 <bytes>true</bytes>
125 <sentBytes>true</sentBytes>
126 <url>true</url>
127 <fileName>true</fileName>
128 <hostname>true</hostname>
129 <threadCounts>true</threadCounts>
130 <connectTime>true</connectTime>
131 </value>
132 </objProp>
133 <stringProp name="filename">/home/ubuntu/testing/jmeter/error.jtl</stringProp>
134 </ResultCollector>
135 <hashTree/>
136 <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="Aggregate Report" enabled="true">
137 <boolProp name="ResultCollector.error_logging">false</boolProp>
138 <objProp>
139 <name>saveConfig</name>
140 <value class="SampleSaveConfiguration">
141 <time>true</time>
142 <latency>true</latency>
143 <timestamp>true</timestamp>
144 <success>true</success>
145 <label>true</label>
146 <code>true</code>
147 <message>true</message>
148 <threadName>true</threadName>
149 <dataType>true</dataType>
150 <encoding>true</encoding>
151 <assertions>true</assertions>
152 <subresults>true</subresults>
153 <responseData>true</responseData>
154 <samplerData>false</samplerData>
155 <xml>true</xml>
156 <fieldNames>false</fieldNames>
157 <responseHeaders>true</responseHeaders>
158 <requestHeaders>true</requestHeaders>
159 <responseDataOnError>false</responseDataOnError>
160 <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
161 <assertionsResultsToSave>0</assertionsResultsToSave>
162 <bytes>true</bytes>
163 <sentBytes>true</sentBytes>
164 <url>true</url>
165 <fileName>true</fileName>
166 <hostname>true</hostname>
167 <threadCounts>true</threadCounts>
168 <idleTime>true</idleTime>
169 <connectTime>true</connectTime>
170 </value>
171 </objProp>
172 <stringProp name="filename">/home/ubuntu/testing/jmeter/result.jtl</stringProp>
173 <boolProp name="useGroupName">true</boolProp>
174 </ResultCollector>
175 <hashTree/>
176 <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Typical CAS login" enabled="true">
177 <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
178 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
179 <boolProp name="LoopController.continue_forever">false</boolProp>
180 <intProp name="LoopController.loops">-1</intProp>
181 </elementProp>
182 <stringProp name="ThreadGroup.num_threads">${ThreadCount}</stringProp>
183 <stringProp name="ThreadGroup.ramp_time">${RampUpPeriod}</stringProp>
184 <longProp name="ThreadGroup.start_time">1500501626000</longProp>
185 <longProp name="ThreadGroup.end_time">1500501626000</longProp>
186 <boolProp name="ThreadGroup.scheduler">true</boolProp>
187 <stringProp name="ThreadGroup.duration">${Duration}</stringProp>
188 <stringProp name="ThreadGroup.delay">${StartupDelay}</stringProp>
189 <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
190 </ThreadGroup>
191 <hashTree>
192 <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="GET - CAS Login Page" enabled="true">
193 <collectionProp name="ModuleController.node_path">
194 <stringProp name="764597751">Test Plan</stringProp>
195 <stringProp name="2120355301">CAS SSO Tests</stringProp>
196 <stringProp name="-157788562">GET - CAS Login Page</stringProp>
197 </collectionProp>
198 <stringProp name="TestPlan.comments">Get the CAS Login page</stringProp>
199 </ModuleController>
200 <hashTree/>
201 <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="POST - Login Credentials" enabled="true">
202 <collectionProp name="ModuleController.node_path">
203 <stringProp name="764597751">Test Plan</stringProp>
204 <stringProp name="2120355301">CAS SSO Tests</stringProp>
205 <stringProp name="-2049830958">POST - Login Credentials</stringProp>
206 </collectionProp>
207 </ModuleController>
208 <hashTree/>
209 <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="GET - User Info with Service Ticket" enabled="false">
210 <collectionProp name="ModuleController.node_path">
211 <stringProp name="764597751">Test Plan</stringProp>
212 <stringProp name="2120355301">CAS SSO Tests</stringProp>
213 <stringProp name="1864560727">GET - User Info with Service Ticket</stringProp>
214 </collectionProp>
215 </ModuleController>
216 <hashTree/>
217 <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="GET - User Logout" enabled="false">
218 <collectionProp name="ModuleController.node_path">
219 <stringProp name="764597751">Test Plan</stringProp>
220 <stringProp name="2120355301">CAS SSO Tests</stringProp>
221 <stringProp name="-648438622">GET - User Logout</stringProp>
222 </collectionProp>
223 </ModuleController>
224 <hashTree/>
225 </hashTree>
226 <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="GET - CAS Login Page" enabled="true"/>
227 <hashTree>
228 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="GET - CAS Login Page" enabled="true">
229 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
230 <collectionProp name="Arguments.arguments"/>
231 </elementProp>
232 <stringProp name="HTTPSampler.domain"></stringProp>
233 <stringProp name="HTTPSampler.port"></stringProp>
234 <stringProp name="HTTPSampler.protocol"></stringProp>
235 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
236 <stringProp name="HTTPSampler.path">${IdPHost}/cas/login?service=${CasSP}</stringProp>
237 <stringProp name="HTTPSampler.method">GET</stringProp>
238 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
239 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
240 <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
241 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
242 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
243 <stringProp name="HTTPSampler.connect_timeout"></stringProp>
244 <stringProp name="HTTPSampler.response_timeout"></stringProp>
245 </HTTPSamplerProxy>
246 <hashTree>
247 <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Execution Variable" enabled="false">
248 <stringProp name="RegexExtractor.useHeaders">false</stringProp>
249 <stringProp name="RegexExtractor.refname">ExecId</stringProp>
250 <stringProp name="RegexExtractor.regex">execution=(.+)</stringProp>
251 <stringProp name="RegexExtractor.template">$1$</stringProp>
252 <stringProp name="RegexExtractor.default"></stringProp>
253 <stringProp name="RegexExtractor.match_number">1</stringProp>
254 </RegexExtractor>
255 <hashTree/>
256 <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Verify on CAS login page" enabled="true">
257 <collectionProp name="Asserion.test_strings">
258 <stringProp name="232355224">cas/login?service=</stringProp>
259 </collectionProp>
260 <stringProp name="Assertion.test_field">Assertion.sample_label</stringProp>
261 <boolProp name="Assertion.assume_success">false</boolProp>
262 <intProp name="Assertion.test_type">16</intProp>
263 <stringProp name="Assertion.custom_message"></stringProp>
264 </ResponseAssertion>
265 <hashTree/>
266 <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract Execution variable" enabled="true">
267 <stringProp name="XPathExtractor.default"></stringProp>
268 <stringProp name="XPathExtractor.refname">ExecId</stringProp>
269 <stringProp name="XPathExtractor.matchNumber">-1</stringProp>
270 <stringProp name="XPathExtractor.xpathQuery">//input[@name=&apos;execution&apos;]/@value</stringProp>
271 <boolProp name="XPathExtractor.validate">false</boolProp>
272 <boolProp name="XPathExtractor.tolerant">true</boolProp>
273 <boolProp name="XPathExtractor.namespace">false</boolProp>
274 </XPathExtractor>
275 <hashTree/>
276 </hashTree>
277 </hashTree>
278 <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="POST - Login Credentials" enabled="true"/>
279 <hashTree>
280 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="POST - Login Credentials" enabled="true">
281 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
282 <collectionProp name="Arguments.arguments">
283 <elementProp name="username" elementType="HTTPArgument">
284 <boolProp name="HTTPArgument.always_encode">false</boolProp>
285 <stringProp name="Argument.value">${User}</stringProp>
286 <stringProp name="Argument.metadata">=</stringProp>
287 <boolProp name="HTTPArgument.use_equals">true</boolProp>
288 <stringProp name="Argument.name">username</stringProp>
289 <stringProp name="Argument.desc">false</stringProp>
290 </elementProp>
291 <elementProp name="password" elementType="HTTPArgument">
292 <boolProp name="HTTPArgument.always_encode">false</boolProp>
293 <stringProp name="Argument.value">${Password}</stringProp>
294 <stringProp name="Argument.metadata">=</stringProp>
295 <boolProp name="HTTPArgument.use_equals">true</boolProp>
296 <stringProp name="Argument.name">password</stringProp>
297 <stringProp name="Argument.desc">false</stringProp>
298 </elementProp>
299 <elementProp name="_eventId_submit" elementType="HTTPArgument">
300 <boolProp name="HTTPArgument.always_encode">false</boolProp>
301 <stringProp name="Argument.value"></stringProp>
302 <stringProp name="Argument.metadata">=</stringProp>
303 <boolProp name="HTTPArgument.use_equals">true</boolProp>
304 <stringProp name="Argument.name">_eventId_submit</stringProp>
305 <stringProp name="Argument.desc">false</stringProp>
306 </elementProp>
307 <elementProp name="execution" elementType="HTTPArgument">
308 <boolProp name="HTTPArgument.always_encode">false</boolProp>
309 <stringProp name="Argument.value">${ExecId}</stringProp>
310 <stringProp name="Argument.metadata">=</stringProp>
311 <boolProp name="HTTPArgument.use_equals">true</boolProp>
312 <stringProp name="Argument.name">execution</stringProp>
313 </elementProp>
314 </collectionProp>
315 </elementProp>
316 <stringProp name="HTTPSampler.domain"></stringProp>
317 <stringProp name="HTTPSampler.port"></stringProp>
318 <stringProp name="HTTPSampler.protocol"></stringProp>
319 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
320 <stringProp name="HTTPSampler.path">${IdPHost}/cas/login?service=${__urlencode(${CasSP})}</stringProp>
321 <stringProp name="HTTPSampler.method">POST</stringProp>
322 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
323 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
324 <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
325 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
326 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
327 <stringProp name="HTTPSampler.connect_timeout"></stringProp>
328 <stringProp name="HTTPSampler.response_timeout"></stringProp>
329 </HTTPSamplerProxy>
330 <hashTree>
331 <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Ticket Variable" enabled="true">
332 <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
333 <stringProp name="RegexExtractor.refname">st</stringProp>
334 <stringProp name="RegexExtractor.regex">ticket=(.+)</stringProp>
335 <stringProp name="RegexExtractor.template">$1$</stringProp>
336 <stringProp name="RegexExtractor.default"></stringProp>
337 <stringProp name="RegexExtractor.match_number">1</stringProp>
338 <stringProp name="Sample.scope">all</stringProp>
339 </RegexExtractor>
340 <hashTree/>
341 </hashTree>
342 </hashTree>
343 <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="GET - User Info with Service Ticket" enabled="true"/>
344 <hashTree>
345 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CAS GET Ticket Info" enabled="true">
346 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
347 <collectionProp name="Arguments.arguments"/>
348 </elementProp>
349 <stringProp name="HTTPSampler.domain"></stringProp>
350 <stringProp name="HTTPSampler.port"></stringProp>
351 <stringProp name="HTTPSampler.protocol"></stringProp>
352 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
353 <stringProp name="HTTPSampler.path">${IdPHost}/cas/serviceValidate?ticket=${st}&amp;service=${__urlencode(${CasSP})}</stringProp>
354 <stringProp name="HTTPSampler.method">GET</stringProp>
355 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
356 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
357 <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
358 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
359 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
360 <stringProp name="HTTPSampler.connect_timeout"></stringProp>
361 <stringProp name="HTTPSampler.response_timeout"></stringProp>
362 </HTTPSamplerProxy>
363 <hashTree/>
364 <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Verify User Info Returned" enabled="true">
365 <collectionProp name="Asserion.test_strings">
366 <stringProp name="919549364">&lt;cas:authenticationSuccess&gt;</stringProp>
367 <stringProp name="1774939698">&lt;cas:user&gt;${User}&lt;/cas:user&gt;</stringProp>
368 </collectionProp>
369 <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
370 <boolProp name="Assertion.assume_success">false</boolProp>
371 <intProp name="Assertion.test_type">2</intProp>
372 <stringProp name="TestPlan.comments">Verifies get user info on ticket validation</stringProp>
373 <stringProp name="Assertion.custom_message"></stringProp>
374 </ResponseAssertion>
375 <hashTree/>
376 </hashTree>
377 <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="GET - User Logout" enabled="true"/>
378 <hashTree>
379 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get - User Logout" enabled="true">
380 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
381 <collectionProp name="Arguments.arguments"/>
382 </elementProp>
383 <stringProp name="HTTPSampler.domain"></stringProp>
384 <stringProp name="HTTPSampler.port"></stringProp>
385 <stringProp name="HTTPSampler.protocol"></stringProp>
386 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
387 <stringProp name="HTTPSampler.path">${IdPHost}/cas/logout</stringProp>
388 <stringProp name="HTTPSampler.method">GET</stringProp>
389 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
390 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
391 <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
392 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
393 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
394 <stringProp name="HTTPSampler.connect_timeout"></stringProp>
395 <stringProp name="HTTPSampler.response_timeout"></stringProp>
396 </HTTPSamplerProxy>
397 <hashTree/>
398 <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Verify User Logged Out" enabled="true">
399 <collectionProp name="Asserion.test_strings">
400 <stringProp name="49586">200</stringProp>
401 </collectionProp>
402 <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
403 <boolProp name="Assertion.assume_success">false</boolProp>
404 <intProp name="Assertion.test_type">2</intProp>
405 <stringProp name="Assertion.custom_message"></stringProp>
406 </ResponseAssertion>
407 <hashTree/>
408 </hashTree>
409 </hashTree>
410 </hashTree>
411</jmeterTestPlan>