blob: 98340320c0fb640d5071588e3fd1927bafbded97 [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">1000</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">3</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">https://uis-test.nwpu.edu.cn</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">https://example.com/index.html</stringProp>
59 <stringProp name="Argument.metadata">=</stringProp>
60 <stringProp name="Argument.desc">Service Provider url</stringProp>
61 </elementProp>
62 <elementProp name="CasSP-example" elementType="Argument">
63 <stringProp name="Argument.name">CasSP-example</stringProp>
64 <stringProp name="Argument.value">https://example.com/index.html</stringProp>
65 <stringProp name="Argument.metadata">=</stringProp>
66 </elementProp>
67 </collectionProp>
68 </Arguments>
69 <hashTree/>
70 <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Get Users/Passwords" enabled="true">
71 <stringProp name="filename">/Users/loie/c/work/git/institute/deploy-admin-portal/testing/jmeter/nwpu-accounts.txt</stringProp>
72 <stringProp name="fileEncoding"></stringProp>
73 <stringProp name="variableNames">User,Password</stringProp>
74 <stringProp name="delimiter">,</stringProp>
75 <boolProp name="quotedData">false</boolProp>
76 <boolProp name="recycle">true</boolProp>
77 <boolProp name="stopThread">false</boolProp>
78 <stringProp name="shareMode">shareMode.all</stringProp>
79 <boolProp name="ignoreFirstLine">false</boolProp>
80 </CSVDataSet>
81 <hashTree/>
82 <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
83 <collectionProp name="CookieManager.cookies"/>
84 <boolProp name="CookieManager.clearEachIteration">true</boolProp>
85 <boolProp name="CookieManager.controlledByThreadGroup">false</boolProp>
86 </CookieManager>
87 <hashTree/>
88 <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
89 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
90 <collectionProp name="Arguments.arguments"/>
91 </elementProp>
92 <stringProp name="HTTPSampler.domain"></stringProp>
93 <stringProp name="HTTPSampler.port"></stringProp>
94 <stringProp name="HTTPSampler.protocol">https</stringProp>
95 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
96 <stringProp name="HTTPSampler.path"></stringProp>
97 <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
98 <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
99 <stringProp name="HTTPSampler.connect_timeout">120000</stringProp>
100 <stringProp name="HTTPSampler.response_timeout">120000</stringProp>
101 </ConfigTestElement>
102 <hashTree/>
103 <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
104 <boolProp name="ResultCollector.error_logging">false</boolProp>
105 <objProp>
106 <name>saveConfig</name>
107 <value class="SampleSaveConfiguration">
108 <time>true</time>
109 <latency>true</latency>
110 <timestamp>true</timestamp>
111 <success>true</success>
112 <label>true</label>
113 <code>true</code>
114 <message>true</message>
115 <threadName>true</threadName>
116 <dataType>true</dataType>
117 <encoding>false</encoding>
118 <assertions>true</assertions>
119 <subresults>true</subresults>
120 <responseData>false</responseData>
121 <samplerData>false</samplerData>
122 <xml>false</xml>
123 <fieldNames>false</fieldNames>
124 <responseHeaders>false</responseHeaders>
125 <requestHeaders>false</requestHeaders>
126 <responseDataOnError>false</responseDataOnError>
127 <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
128 <assertionsResultsToSave>0</assertionsResultsToSave>
129 <bytes>true</bytes>
130 <threadCounts>true</threadCounts>
131 </value>
132 </objProp>
133 <stringProp name="filename"></stringProp>
134 </ResultCollector>
135 <hashTree/>
136 <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="Aggregate Report" enabled="false">
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>false</message>
148 <threadName>false</threadName>
149 <dataType>false</dataType>
150 <encoding>false</encoding>
151 <assertions>false</assertions>
152 <subresults>false</subresults>
153 <responseData>false</responseData>
154 <samplerData>false</samplerData>
155 <xml>false</xml>
156 <fieldNames>false</fieldNames>
157 <responseHeaders>false</responseHeaders>
158 <requestHeaders>false</requestHeaders>
159 <responseDataOnError>false</responseDataOnError>
160 <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
161 <assertionsResultsToSave>0</assertionsResultsToSave>
162 <threadCounts>true</threadCounts>
163 </value>
164 </objProp>
165 <stringProp name="filename"></stringProp>
166 <boolProp name="useGroupName">true</boolProp>
167 </ResultCollector>
168 <hashTree/>
169 <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Typical CAS login" enabled="true">
170 <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
171 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
172 <boolProp name="LoopController.continue_forever">false</boolProp>
173 <intProp name="LoopController.loops">-1</intProp>
174 </elementProp>
175 <stringProp name="ThreadGroup.num_threads">${ThreadCount}</stringProp>
176 <stringProp name="ThreadGroup.ramp_time">${RampUpPeriod}</stringProp>
177 <longProp name="ThreadGroup.start_time">1500501626000</longProp>
178 <longProp name="ThreadGroup.end_time">1500501626000</longProp>
179 <boolProp name="ThreadGroup.scheduler">true</boolProp>
180 <stringProp name="ThreadGroup.duration">${Duration}</stringProp>
181 <stringProp name="ThreadGroup.delay">${StartupDelay}</stringProp>
182 <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
183 </ThreadGroup>
184 <hashTree>
185 <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="GET - CAS Login Page" enabled="true">
186 <collectionProp name="ModuleController.node_path">
187 <stringProp name="764597751">Test Plan</stringProp>
188 <stringProp name="2120355301">CAS SSO Tests</stringProp>
189 <stringProp name="-157788562">GET - CAS Login Page</stringProp>
190 </collectionProp>
191 <stringProp name="TestPlan.comments">Get the CAS Login page</stringProp>
192 </ModuleController>
193 <hashTree/>
194 <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="POST - Login Credentials" enabled="true">
195 <collectionProp name="ModuleController.node_path">
196 <stringProp name="764597751">Test Plan</stringProp>
197 <stringProp name="2120355301">CAS SSO Tests</stringProp>
198 <stringProp name="-2049830958">POST - Login Credentials</stringProp>
199 </collectionProp>
200 </ModuleController>
201 <hashTree/>
202 <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="GET - User Info with Service Ticket" enabled="true">
203 <collectionProp name="ModuleController.node_path">
204 <stringProp name="764597751">Test Plan</stringProp>
205 <stringProp name="2120355301">CAS SSO Tests</stringProp>
206 <stringProp name="1864560727">GET - User Info with Service Ticket</stringProp>
207 </collectionProp>
208 </ModuleController>
209 <hashTree/>
210 <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="GET - User Logout" enabled="true">
211 <collectionProp name="ModuleController.node_path">
212 <stringProp name="764597751">Test Plan</stringProp>
213 <stringProp name="2120355301">CAS SSO Tests</stringProp>
214 <stringProp name="-648438622">GET - User Logout</stringProp>
215 </collectionProp>
216 </ModuleController>
217 <hashTree/>
218 <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
219 <boolProp name="ResultCollector.error_logging">true</boolProp>
220 <objProp>
221 <name>saveConfig</name>
222 <value class="SampleSaveConfiguration">
223 <time>true</time>
224 <latency>true</latency>
225 <timestamp>true</timestamp>
226 <success>true</success>
227 <label>true</label>
228 <code>true</code>
229 <message>true</message>
230 <threadName>true</threadName>
231 <dataType>true</dataType>
232 <encoding>false</encoding>
233 <assertions>true</assertions>
234 <subresults>true</subresults>
235 <responseData>false</responseData>
236 <samplerData>false</samplerData>
237 <xml>false</xml>
238 <fieldNames>true</fieldNames>
239 <responseHeaders>false</responseHeaders>
240 <requestHeaders>false</requestHeaders>
241 <responseDataOnError>false</responseDataOnError>
242 <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
243 <assertionsResultsToSave>0</assertionsResultsToSave>
244 <bytes>true</bytes>
245 <threadCounts>true</threadCounts>
246 <idleTime>true</idleTime>
247 </value>
248 </objProp>
249 <stringProp name="filename"></stringProp>
250 </ResultCollector>
251 <hashTree/>
252 <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="Aggregate Report" enabled="true">
253 <boolProp name="ResultCollector.error_logging">false</boolProp>
254 <objProp>
255 <name>saveConfig</name>
256 <value class="SampleSaveConfiguration">
257 <time>true</time>
258 <latency>true</latency>
259 <timestamp>true</timestamp>
260 <success>true</success>
261 <label>true</label>
262 <code>true</code>
263 <message>true</message>
264 <threadName>true</threadName>
265 <dataType>true</dataType>
266 <encoding>false</encoding>
267 <assertions>true</assertions>
268 <subresults>true</subresults>
269 <responseData>false</responseData>
270 <samplerData>false</samplerData>
271 <xml>false</xml>
272 <fieldNames>true</fieldNames>
273 <responseHeaders>false</responseHeaders>
274 <requestHeaders>false</requestHeaders>
275 <responseDataOnError>false</responseDataOnError>
276 <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
277 <assertionsResultsToSave>0</assertionsResultsToSave>
278 <bytes>true</bytes>
279 <sentBytes>true</sentBytes>
280 <url>true</url>
281 <threadCounts>true</threadCounts>
282 <idleTime>true</idleTime>
283 <connectTime>true</connectTime>
284 </value>
285 </objProp>
286 <stringProp name="filename"></stringProp>
287 </ResultCollector>
288 <hashTree/>
289 </hashTree>
290 <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="GET - CAS Login Page" enabled="true"/>
291 <hashTree>
292 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="GET - CAS Login Page" enabled="true">
293 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
294 <collectionProp name="Arguments.arguments"/>
295 </elementProp>
296 <stringProp name="HTTPSampler.domain"></stringProp>
297 <stringProp name="HTTPSampler.port"></stringProp>
298 <stringProp name="HTTPSampler.protocol"></stringProp>
299 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
300 <stringProp name="HTTPSampler.path">${IdPHost}/cas/login?service=${CasSP}</stringProp>
301 <stringProp name="HTTPSampler.method">GET</stringProp>
302 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
303 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
304 <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
305 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
306 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
307 <stringProp name="HTTPSampler.connect_timeout"></stringProp>
308 <stringProp name="HTTPSampler.response_timeout"></stringProp>
309 </HTTPSamplerProxy>
310 <hashTree>
311 <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Execution Variable" enabled="false">
312 <stringProp name="RegexExtractor.useHeaders">false</stringProp>
313 <stringProp name="RegexExtractor.refname">ExecId</stringProp>
314 <stringProp name="RegexExtractor.regex">execution=(.+)</stringProp>
315 <stringProp name="RegexExtractor.template">$1$</stringProp>
316 <stringProp name="RegexExtractor.default"></stringProp>
317 <stringProp name="RegexExtractor.match_number">1</stringProp>
318 </RegexExtractor>
319 <hashTree/>
320 <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Verify on CAS login page" enabled="true">
321 <collectionProp name="Asserion.test_strings">
322 <stringProp name="232355224">cas/login?service=</stringProp>
323 </collectionProp>
324 <stringProp name="Assertion.test_field">Assertion.sample_label</stringProp>
325 <boolProp name="Assertion.assume_success">false</boolProp>
326 <intProp name="Assertion.test_type">16</intProp>
327 <stringProp name="Assertion.custom_message"></stringProp>
328 </ResponseAssertion>
329 <hashTree/>
330 <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract Execution variable" enabled="true">
331 <stringProp name="XPathExtractor.default"></stringProp>
332 <stringProp name="XPathExtractor.refname">ExecId</stringProp>
333 <stringProp name="XPathExtractor.matchNumber">-1</stringProp>
334 <stringProp name="XPathExtractor.xpathQuery">//input[@name=&apos;execution&apos;]/@value</stringProp>
335 <boolProp name="XPathExtractor.validate">false</boolProp>
336 <boolProp name="XPathExtractor.tolerant">true</boolProp>
337 <boolProp name="XPathExtractor.namespace">false</boolProp>
338 </XPathExtractor>
339 <hashTree/>
340 </hashTree>
341 </hashTree>
342 <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="POST - Login Credentials" enabled="true"/>
343 <hashTree>
344 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="POST - Login Credentials follow Redirects" enabled="false">
345 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
346 <collectionProp name="Arguments.arguments">
347 <elementProp name="username" elementType="HTTPArgument">
348 <boolProp name="HTTPArgument.always_encode">false</boolProp>
349 <stringProp name="Argument.value">${User}</stringProp>
350 <stringProp name="Argument.metadata">=</stringProp>
351 <boolProp name="HTTPArgument.use_equals">true</boolProp>
352 <stringProp name="Argument.name">username</stringProp>
353 <stringProp name="Argument.desc">false</stringProp>
354 </elementProp>
355 <elementProp name="password" elementType="HTTPArgument">
356 <boolProp name="HTTPArgument.always_encode">false</boolProp>
357 <stringProp name="Argument.value">${Password}</stringProp>
358 <stringProp name="Argument.metadata">=</stringProp>
359 <boolProp name="HTTPArgument.use_equals">true</boolProp>
360 <stringProp name="Argument.name">password</stringProp>
361 <stringProp name="Argument.desc">false</stringProp>
362 </elementProp>
363 <elementProp name="_eventId_submit" elementType="HTTPArgument">
364 <boolProp name="HTTPArgument.always_encode">false</boolProp>
365 <stringProp name="Argument.value"></stringProp>
366 <stringProp name="Argument.metadata">=</stringProp>
367 <boolProp name="HTTPArgument.use_equals">true</boolProp>
368 <stringProp name="Argument.name">_eventId_submit</stringProp>
369 <stringProp name="Argument.desc">false</stringProp>
370 </elementProp>
371 <elementProp name="execution" elementType="HTTPArgument">
372 <boolProp name="HTTPArgument.always_encode">false</boolProp>
373 <stringProp name="Argument.value">${ExecId}</stringProp>
374 <stringProp name="Argument.metadata">=</stringProp>
375 <boolProp name="HTTPArgument.use_equals">true</boolProp>
376 <stringProp name="Argument.name">execution</stringProp>
377 </elementProp>
378 </collectionProp>
379 </elementProp>
380 <stringProp name="HTTPSampler.domain"></stringProp>
381 <stringProp name="HTTPSampler.port"></stringProp>
382 <stringProp name="HTTPSampler.protocol"></stringProp>
383 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
384 <stringProp name="HTTPSampler.path">${IdPHost}/cas/login?service=${__urlencode(${CasSP})}</stringProp>
385 <stringProp name="HTTPSampler.method">POST</stringProp>
386 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
387 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
388 <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
389 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
390 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
391 <stringProp name="HTTPSampler.connect_timeout"></stringProp>
392 <stringProp name="HTTPSampler.response_timeout"></stringProp>
393 </HTTPSamplerProxy>
394 <hashTree>
395 <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Ticket Variable" enabled="true">
396 <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
397 <stringProp name="RegexExtractor.refname">st</stringProp>
398 <stringProp name="RegexExtractor.regex">ticket=(.+)</stringProp>
399 <stringProp name="RegexExtractor.template">$1$</stringProp>
400 <stringProp name="RegexExtractor.default"></stringProp>
401 <stringProp name="RegexExtractor.match_number">1</stringProp>
402 <stringProp name="Sample.scope">all</stringProp>
403 </RegexExtractor>
404 <hashTree/>
405 </hashTree>
406 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="POST - Login Credentials no Redirects" enabled="true">
407 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
408 <collectionProp name="Arguments.arguments">
409 <elementProp name="username" elementType="HTTPArgument">
410 <boolProp name="HTTPArgument.always_encode">false</boolProp>
411 <stringProp name="Argument.value">${User}</stringProp>
412 <stringProp name="Argument.metadata">=</stringProp>
413 <boolProp name="HTTPArgument.use_equals">true</boolProp>
414 <stringProp name="Argument.name">username</stringProp>
415 <stringProp name="Argument.desc">false</stringProp>
416 </elementProp>
417 <elementProp name="password" elementType="HTTPArgument">
418 <boolProp name="HTTPArgument.always_encode">false</boolProp>
419 <stringProp name="Argument.value">${Password}</stringProp>
420 <stringProp name="Argument.metadata">=</stringProp>
421 <boolProp name="HTTPArgument.use_equals">true</boolProp>
422 <stringProp name="Argument.name">password</stringProp>
423 <stringProp name="Argument.desc">false</stringProp>
424 </elementProp>
425 <elementProp name="_eventId_submit" elementType="HTTPArgument">
426 <boolProp name="HTTPArgument.always_encode">false</boolProp>
427 <stringProp name="Argument.value"></stringProp>
428 <stringProp name="Argument.metadata">=</stringProp>
429 <boolProp name="HTTPArgument.use_equals">true</boolProp>
430 <stringProp name="Argument.name">_eventId_submit</stringProp>
431 <stringProp name="Argument.desc">false</stringProp>
432 </elementProp>
433 <elementProp name="execution" elementType="HTTPArgument">
434 <boolProp name="HTTPArgument.always_encode">false</boolProp>
435 <stringProp name="Argument.value">${ExecId}</stringProp>
436 <stringProp name="Argument.metadata">=</stringProp>
437 <boolProp name="HTTPArgument.use_equals">true</boolProp>
438 <stringProp name="Argument.name">execution</stringProp>
439 </elementProp>
440 </collectionProp>
441 </elementProp>
442 <stringProp name="HTTPSampler.domain"></stringProp>
443 <stringProp name="HTTPSampler.port"></stringProp>
444 <stringProp name="HTTPSampler.protocol"></stringProp>
445 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
446 <stringProp name="HTTPSampler.path">${IdPHost}/cas/login?service=${__urlencode(${CasSP})}</stringProp>
447 <stringProp name="HTTPSampler.method">POST</stringProp>
448 <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
449 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
450 <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
451 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
452 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
453 <stringProp name="HTTPSampler.connect_timeout"></stringProp>
454 <stringProp name="HTTPSampler.response_timeout"></stringProp>
455 </HTTPSamplerProxy>
456 <hashTree>
457 <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Ticket Variable" enabled="true">
458 <stringProp name="RegexExtractor.useHeaders">true</stringProp>
459 <stringProp name="RegexExtractor.refname">st</stringProp>
460 <stringProp name="RegexExtractor.regex">Location:(.+)ticket=(.+)</stringProp>
461 <stringProp name="RegexExtractor.template">$2$</stringProp>
462 <stringProp name="RegexExtractor.default"></stringProp>
463 <stringProp name="RegexExtractor.match_number">1</stringProp>
464 <stringProp name="Sample.scope">all</stringProp>
465 </RegexExtractor>
466 <hashTree/>
467 </hashTree>
468 </hashTree>
469 <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="GET - User Info with Service Ticket" enabled="true"/>
470 <hashTree>
471 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CAS GET Ticket Info" enabled="true">
472 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
473 <collectionProp name="Arguments.arguments"/>
474 </elementProp>
475 <stringProp name="HTTPSampler.domain"></stringProp>
476 <stringProp name="HTTPSampler.port"></stringProp>
477 <stringProp name="HTTPSampler.protocol"></stringProp>
478 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
479 <stringProp name="HTTPSampler.path">${IdPHost}/cas/serviceValidate?ticket=${st}&amp;service=${__urlencode(${CasSP})}</stringProp>
480 <stringProp name="HTTPSampler.method">GET</stringProp>
481 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
482 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
483 <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
484 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
485 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
486 <stringProp name="HTTPSampler.connect_timeout"></stringProp>
487 <stringProp name="HTTPSampler.response_timeout"></stringProp>
488 </HTTPSamplerProxy>
489 <hashTree/>
490 <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Verify User Info Returned" enabled="true">
491 <collectionProp name="Asserion.test_strings">
492 <stringProp name="919549364">&lt;cas:authenticationSuccess&gt;</stringProp>
493 <stringProp name="1774939698">&lt;cas:user&gt;${User}&lt;/cas:user&gt;</stringProp>
494 </collectionProp>
495 <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
496 <boolProp name="Assertion.assume_success">false</boolProp>
497 <intProp name="Assertion.test_type">2</intProp>
498 <stringProp name="TestPlan.comments">Verifies get user info on ticket validation</stringProp>
499 <stringProp name="Assertion.custom_message"></stringProp>
500 </ResponseAssertion>
501 <hashTree/>
502 </hashTree>
503 <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="GET - User Logout" enabled="true"/>
504 <hashTree>
505 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get - User Logout" enabled="true">
506 <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
507 <collectionProp name="Arguments.arguments"/>
508 </elementProp>
509 <stringProp name="HTTPSampler.domain"></stringProp>
510 <stringProp name="HTTPSampler.port"></stringProp>
511 <stringProp name="HTTPSampler.protocol"></stringProp>
512 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
513 <stringProp name="HTTPSampler.path">${IdPHost}/cas/logout</stringProp>
514 <stringProp name="HTTPSampler.method">GET</stringProp>
515 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
516 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
517 <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
518 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
519 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
520 <stringProp name="HTTPSampler.connect_timeout"></stringProp>
521 <stringProp name="HTTPSampler.response_timeout"></stringProp>
522 </HTTPSamplerProxy>
523 <hashTree/>
524 <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Verify User Logged Out" enabled="true">
525 <collectionProp name="Asserion.test_strings">
526 <stringProp name="49586">200</stringProp>
527 </collectionProp>
528 <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
529 <boolProp name="Assertion.assume_success">false</boolProp>
530 <intProp name="Assertion.test_type">2</intProp>
531 <stringProp name="Assertion.custom_message"></stringProp>
532 </ResponseAssertion>
533 <hashTree/>
534 </hashTree>
535 </hashTree>
536 </hashTree>
537</jmeterTestPlan>