0 | 0 |
<?xml version="1.0" encoding="UTF-8"?>
|
1 | 1 |
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.1.1.20190725">
|
2 | 2 |
<hashTree>
|
3 | |
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="OpenID Connect Apache Module Test Plan" enabled="true">
|
|
3 |
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="mod_auth_openidc test plan" enabled="true">
|
4 | 4 |
<stringProp name="TestPlan.comments"></stringProp>
|
5 | 5 |
<boolProp name="TestPlan.functional_mode">false</boolProp>
|
|
6 |
<boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
|
6 | 7 |
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
|
7 | 8 |
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
8 | 9 |
<collectionProp name="Arguments.arguments">
|
9 | |
<elementProp name="APP_SERVER" elementType="Argument">
|
10 | |
<stringProp name="Argument.name">APP_SERVER</stringProp>
|
11 | |
<stringProp name="Argument.value">localhost.zmartzone.eu</stringProp>
|
|
10 |
<elementProp name="APP_HOST" elementType="Argument">
|
|
11 |
<stringProp name="Argument.name">APP_HOST</stringProp>
|
|
12 |
<stringProp name="Argument.value">apache</stringProp>
|
12 | 13 |
<stringProp name="Argument.metadata">=</stringProp>
|
13 | 14 |
</elementProp>
|
14 | 15 |
<elementProp name="APP_PORT" elementType="Argument">
|
|
16 | 17 |
<stringProp name="Argument.value">443</stringProp>
|
17 | 18 |
<stringProp name="Argument.metadata">=</stringProp>
|
18 | 19 |
</elementProp>
|
19 | |
<elementProp name="APP_PATH_USER" elementType="Argument">
|
20 | |
<stringProp name="Argument.name">APP_PATH_USER</stringProp>
|
21 | |
<stringProp name="Argument.value">/protected/index.php?param=sample</stringProp>
|
22 | |
<stringProp name="Argument.metadata">=</stringProp>
|
23 | |
</elementProp>
|
24 | |
<elementProp name="AS_HOST" elementType="Argument">
|
25 | |
<stringProp name="Argument.name">AS_HOST</stringProp>
|
26 | |
<stringProp name="Argument.value">localhost</stringProp>
|
27 | |
<stringProp name="Argument.metadata">=</stringProp>
|
28 | |
</elementProp>
|
29 | |
<elementProp name="AS_PORT" elementType="Argument">
|
30 | |
<stringProp name="Argument.name">AS_PORT</stringProp>
|
31 | |
<stringProp name="Argument.value">9031</stringProp>
|
32 | |
<stringProp name="Argument.metadata">=</stringProp>
|
33 | |
</elementProp>
|
34 | |
<elementProp name="AS_PATH_TOKEN" elementType="Argument">
|
35 | |
<stringProp name="Argument.name">AS_PATH_TOKEN</stringProp>
|
36 | |
<stringProp name="Argument.value">/as/token.oauth2</stringProp>
|
37 | |
<stringProp name="Argument.metadata">=</stringProp>
|
38 | |
</elementProp>
|
39 | |
<elementProp name="AS_CLIENT_ID" elementType="Argument">
|
40 | |
<stringProp name="Argument.name">AS_CLIENT_ID</stringProp>
|
41 | |
<stringProp name="Argument.value">ro_client</stringProp>
|
42 | |
<stringProp name="Argument.desc">false</stringProp>
|
43 | |
<stringProp name="Argument.metadata">=</stringProp>
|
44 | |
</elementProp>
|
45 | |
<elementProp name="AS_USERNAME" elementType="Argument">
|
46 | |
<stringProp name="Argument.name">AS_USERNAME</stringProp>
|
47 | |
<stringProp name="Argument.value">joe</stringProp>
|
48 | |
<stringProp name="Argument.desc">false</stringProp>
|
49 | |
<stringProp name="Argument.metadata">=</stringProp>
|
50 | |
</elementProp>
|
51 | |
<elementProp name="AS_PASSWORD" elementType="Argument">
|
52 | |
<stringProp name="Argument.name">AS_PASSWORD</stringProp>
|
53 | |
<stringProp name="Argument.value">2Federate</stringProp>
|
54 | |
<stringProp name="Argument.desc">false</stringProp>
|
55 | |
<stringProp name="Argument.metadata">=</stringProp>
|
56 | |
</elementProp>
|
57 | |
<elementProp name="APP_PATH_ACCESS" elementType="Argument">
|
58 | |
<stringProp name="Argument.name">APP_PATH_ACCESS</stringProp>
|
59 | |
<stringProp name="Argument.value">/api/index.php</stringProp>
|
|
20 |
<elementProp name="USERNAME" elementType="Argument">
|
|
21 |
<stringProp name="Argument.name">USERNAME</stringProp>
|
|
22 |
<stringProp name="Argument.value">admin</stringProp>
|
|
23 |
<stringProp name="Argument.metadata">=</stringProp>
|
|
24 |
</elementProp>
|
|
25 |
<elementProp name="PASSWORD" elementType="Argument">
|
|
26 |
<stringProp name="Argument.name">PASSWORD</stringProp>
|
|
27 |
<stringProp name="Argument.value">admin</stringProp>
|
|
28 |
<stringProp name="Argument.metadata">=</stringProp>
|
|
29 |
</elementProp>
|
|
30 |
<elementProp name="THREADS" elementType="Argument">
|
|
31 |
<stringProp name="Argument.name">THREADS</stringProp>
|
|
32 |
<stringProp name="Argument.value">${__P(THREADS,2)}</stringProp>
|
|
33 |
<stringProp name="Argument.metadata">=</stringProp>
|
|
34 |
</elementProp>
|
|
35 |
<elementProp name="LOOP" elementType="Argument">
|
|
36 |
<stringProp name="Argument.name">LOOP</stringProp>
|
|
37 |
<stringProp name="Argument.value">${__P(LOOP,2)}</stringProp>
|
|
38 |
<stringProp name="Argument.metadata">=</stringProp>
|
|
39 |
</elementProp>
|
|
40 |
<elementProp name="PROVIDER_HOST" elementType="Argument">
|
|
41 |
<stringProp name="Argument.name">PROVIDER_HOST</stringProp>
|
|
42 |
<stringProp name="Argument.value">keycloak</stringProp>
|
|
43 |
<stringProp name="Argument.metadata">=</stringProp>
|
|
44 |
</elementProp>
|
|
45 |
<elementProp name="PROVIDER_PORT" elementType="Argument">
|
|
46 |
<stringProp name="Argument.name">PROVIDER_PORT</stringProp>
|
|
47 |
<stringProp name="Argument.value">8443</stringProp>
|
60 | 48 |
<stringProp name="Argument.metadata">=</stringProp>
|
61 | 49 |
</elementProp>
|
62 | 50 |
</collectionProp>
|
|
64 | 52 |
<stringProp name="TestPlan.user_define_classpath"></stringProp>
|
65 | 53 |
</TestPlan>
|
66 | 54 |
<hashTree>
|
67 | |
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="OpenID Connect User Login" enabled="true">
|
|
55 |
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
|
|
56 |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
|
57 |
<collectionProp name="Arguments.arguments"/>
|
|
58 |
</elementProp>
|
|
59 |
<stringProp name="HTTPSampler.domain"></stringProp>
|
|
60 |
<stringProp name="HTTPSampler.port"></stringProp>
|
|
61 |
<stringProp name="HTTPSampler.protocol"></stringProp>
|
|
62 |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
|
63 |
<stringProp name="HTTPSampler.path"></stringProp>
|
|
64 |
<stringProp name="HTTPSampler.concurrentPool">6</stringProp>
|
|
65 |
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
|
|
66 |
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
|
|
67 |
</ConfigTestElement>
|
|
68 |
<hashTree/>
|
|
69 |
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="OpenID Connect" enabled="true">
|
68 | 70 |
<stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp>
|
69 | 71 |
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
|
70 | 72 |
<boolProp name="LoopController.continue_forever">false</boolProp>
|
71 | |
<stringProp name="LoopController.loops">5</stringProp>
|
|
73 |
<stringProp name="LoopController.loops">${LOOP}</stringProp>
|
72 | 74 |
</elementProp>
|
73 | |
<stringProp name="ThreadGroup.num_threads">15</stringProp>
|
74 | |
<stringProp name="ThreadGroup.ramp_time">0</stringProp>
|
75 | |
<longProp name="ThreadGroup.start_time">1299167831000</longProp>
|
76 | |
<longProp name="ThreadGroup.end_time">1299167831000</longProp>
|
|
75 |
<stringProp name="ThreadGroup.num_threads">${THREADS}</stringProp>
|
|
76 |
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
|
77 | 77 |
<boolProp name="ThreadGroup.scheduler">false</boolProp>
|
78 | 78 |
<stringProp name="ThreadGroup.duration"></stringProp>
|
79 | 79 |
<stringProp name="ThreadGroup.delay"></stringProp>
|
80 | 80 |
</ThreadGroup>
|
81 | 81 |
<hashTree>
|
82 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Initial Application Access" enabled="true">
|
|
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 |
</CookieManager>
|
|
86 |
<hashTree/>
|
|
87 |
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="Set Accept Header" enabled="true">
|
|
88 |
<collectionProp name="HeaderManager.headers">
|
|
89 |
<elementProp name="" elementType="Header">
|
|
90 |
<stringProp name="Header.name">Accept</stringProp>
|
|
91 |
<stringProp name="Header.value">text/html, */*</stringProp>
|
|
92 |
</elementProp>
|
|
93 |
</collectionProp>
|
|
94 |
</HeaderManager>
|
|
95 |
<hashTree/>
|
|
96 |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Send Unauthenticated Request" enabled="true">
|
83 | 97 |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
84 | |
<collectionProp name="Arguments.arguments">
|
85 | |
<elementProp name="jan" elementType="HTTPArgument">
|
86 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
87 | |
<stringProp name="Argument.value">piet</stringProp>
|
88 | |
<stringProp name="Argument.metadata">=</stringProp>
|
89 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
90 | |
<stringProp name="Argument.name">jan</stringProp>
|
91 | |
</elementProp>
|
92 | |
</collectionProp>
|
93 | |
</elementProp>
|
94 | |
<stringProp name="HTTPSampler.domain">${APP_SERVER}</stringProp>
|
|
98 |
<collectionProp name="Arguments.arguments"/>
|
|
99 |
</elementProp>
|
|
100 |
<stringProp name="HTTPSampler.domain">${APP_HOST}</stringProp>
|
95 | 101 |
<stringProp name="HTTPSampler.port">${APP_PORT}</stringProp>
|
96 | 102 |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
97 | 103 |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
98 | |
<stringProp name="HTTPSampler.path">${APP_PATH_USER}</stringProp>
|
|
104 |
<stringProp name="HTTPSampler.path">/</stringProp>
|
99 | 105 |
<stringProp name="HTTPSampler.method">GET</stringProp>
|
100 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
|
106 |
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
|
101 | 107 |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
102 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
|
108 |
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
|
103 | 109 |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
104 | 110 |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
105 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
106 | 111 |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
107 | 112 |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
108 | 113 |
</HTTPSamplerProxy>
|
109 | 114 |
<hashTree>
|
110 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab AuthorizationRequestPath" enabled="true">
|
111 | |
<stringProp name="RegexExtractor.useHeaders">true</stringProp>
|
112 | |
<stringProp name="RegexExtractor.refname">AuthorizationRequestPath</stringProp>
|
113 | |
<stringProp name="RegexExtractor.regex">Location: https://(.*?)/(.*)</stringProp>
|
114 | |
<stringProp name="RegexExtractor.template">$2$</stringProp>
|
115 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
116 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
117 | |
</RegexExtractor>
|
|
115 |
<XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract Login URL" enabled="true">
|
|
116 |
<stringProp name="XPathExtractor.default"></stringProp>
|
|
117 |
<stringProp name="XPathExtractor.refname">LOGIN_URL</stringProp>
|
|
118 |
<stringProp name="XPathExtractor.matchNumber">-1</stringProp>
|
|
119 |
<stringProp name="XPathExtractor.xpathQuery">//form[@id="kc-form-login"]/@action </stringProp>
|
|
120 |
<boolProp name="XPathExtractor.validate">false</boolProp>
|
|
121 |
<boolProp name="XPathExtractor.tolerant">true</boolProp>
|
|
122 |
<boolProp name="XPathExtractor.namespace">false</boolProp>
|
|
123 |
</XPathExtractor>
|
|
124 |
<hashTree/>
|
|
125 |
<BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Extract Login Components" enabled="true">
|
|
126 |
<stringProp name="filename"></stringProp>
|
|
127 |
<stringProp name="parameters"></stringProp>
|
|
128 |
<boolProp name="resetInterpreter">false</boolProp>
|
|
129 |
<stringProp name="script">URL url = new URL(vars.get("LOGIN_URL"));
|
|
130 |
vars.put("LOGIN_PROTO", url.getProtocol());
|
|
131 |
vars.put("LOGIN_HOST", url.getHost());
|
|
132 |
vars.put("LOGIN_PORT", Integer.toString(url.getPort()));
|
|
133 |
vars.put("LOGIN_PATH", url.getPath() + "?" + url.getQuery());</stringProp>
|
|
134 |
</BeanShellPostProcessor>
|
118 | 135 |
<hashTree/>
|
119 | 136 |
</hashTree>
|
120 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Authorization Request" enabled="true">
|
121 | |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
122 | |
<collectionProp name="Arguments.arguments"/>
|
123 | |
</elementProp>
|
124 | |
<stringProp name="HTTPSampler.domain">${AS_HOST}</stringProp>
|
125 | |
<stringProp name="HTTPSampler.port">${AS_PORT}</stringProp>
|
126 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
127 | |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
128 | |
<stringProp name="HTTPSampler.path">/${AuthorizationRequestPath}</stringProp>
|
129 | |
<stringProp name="HTTPSampler.method">GET</stringProp>
|
130 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
131 | |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
132 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
133 | |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
134 | |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
135 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
136 | |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
137 | |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
138 | |
</HTTPSamplerProxy>
|
139 | |
<hashTree>
|
140 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab AuthzResumePath" enabled="true">
|
141 | |
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
|
142 | |
<stringProp name="RegexExtractor.refname">AuthzResumePath</stringProp>
|
143 | |
<stringProp name="RegexExtractor.regex"><form method=\"POST"\ action=\"(.+)" autocomplete="off"></stringProp>
|
144 | |
<stringProp name="RegexExtractor.template">$1$</stringProp>
|
145 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
146 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
147 | |
</RegexExtractor>
|
148 | |
<hashTree/>
|
149 | |
</hashTree>
|
150 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="OP Adapter Selection" enabled="false">
|
|
137 |
<DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Debug Sampler" enabled="false">
|
|
138 |
<boolProp name="displayJMeterProperties">false</boolProp>
|
|
139 |
<boolProp name="displayJMeterVariables">true</boolProp>
|
|
140 |
<boolProp name="displaySystemProperties">false</boolProp>
|
|
141 |
</DebugSampler>
|
|
142 |
<hashTree/>
|
|
143 |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Provider Login" enabled="true">
|
151 | 144 |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
152 | 145 |
<collectionProp name="Arguments.arguments">
|
153 | |
<elementProp name="pfidpadapterid" elementType="HTTPArgument">
|
154 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
155 | |
<stringProp name="Argument.value">OTIdPJava</stringProp>
|
156 | |
<stringProp name="Argument.metadata">=</stringProp>
|
157 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
158 | |
<stringProp name="Argument.name">pfidpadapterid</stringProp>
|
159 | |
</elementProp>
|
160 | |
</collectionProp>
|
161 | |
</elementProp>
|
162 | |
<stringProp name="HTTPSampler.domain">${AS_HOST}</stringProp>
|
163 | |
<stringProp name="HTTPSampler.port">${AS_PORT}</stringProp>
|
164 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
165 | |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
166 | |
<stringProp name="HTTPSampler.path">${AuthzResumePath}</stringProp>
|
167 | |
<stringProp name="HTTPSampler.method">GET</stringProp>
|
168 | |
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
|
169 | |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
170 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
171 | |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
172 | |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
173 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
174 | |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
175 | |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
176 | |
</HTTPSamplerProxy>
|
177 | |
<hashTree>
|
178 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab ResumeParam" enabled="true">
|
179 | |
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
|
180 | |
<stringProp name="RegexExtractor.refname">ResumeParam</stringProp>
|
181 | |
<stringProp name="RegexExtractor.regex"><input type=\"hidden\" name=\"resume\" value=\"(.+)\"></stringProp>
|
182 | |
<stringProp name="RegexExtractor.template">$1$</stringProp>
|
183 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
184 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
185 | |
</RegexExtractor>
|
186 | |
<hashTree/>
|
187 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab LoginPath" enabled="true">
|
188 | |
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
|
189 | |
<stringProp name="RegexExtractor.refname">LoginPath</stringProp>
|
190 | |
<stringProp name="RegexExtractor.regex">form method=\"post\" action=\"(.+)\"></stringProp>
|
191 | |
<stringProp name="RegexExtractor.template">$1$</stringProp>
|
192 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
193 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
194 | |
</RegexExtractor>
|
195 | |
<hashTree/>
|
196 | |
</hashTree>
|
197 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Implict: OP User Login" enabled="false">
|
198 | |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
199 | |
<collectionProp name="Arguments.arguments">
|
200 | |
<elementProp name="resume" elementType="HTTPArgument">
|
201 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
202 | |
<stringProp name="Argument.value">${ResumeParam}</stringProp>
|
203 | |
<stringProp name="Argument.metadata">=</stringProp>
|
204 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
205 | |
<stringProp name="Argument.name">resume</stringProp>
|
206 | |
</elementProp>
|
207 | |
<elementProp name="userName" elementType="HTTPArgument">
|
|
146 |
<elementProp name="username" elementType="HTTPArgument">
|
208 | 147 |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
209 | 148 |
<stringProp name="Argument.value">${USERNAME}</stringProp>
|
210 | 149 |
<stringProp name="Argument.metadata">=</stringProp>
|
211 | 150 |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
212 | |
<stringProp name="Argument.name">userName</stringProp>
|
|
151 |
<stringProp name="Argument.name">username</stringProp>
|
213 | 152 |
</elementProp>
|
214 | 153 |
<elementProp name="password" elementType="HTTPArgument">
|
215 | 154 |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
|
220 | 159 |
</elementProp>
|
221 | 160 |
</collectionProp>
|
222 | 161 |
</elementProp>
|
223 | |
<stringProp name="HTTPSampler.domain">${AS_HOST}</stringProp>
|
224 | |
<stringProp name="HTTPSampler.port">${AS_PORT}</stringProp>
|
225 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
|
162 |
<stringProp name="HTTPSampler.domain">${LOGIN_HOST}</stringProp>
|
|
163 |
<stringProp name="HTTPSampler.port">${LOGIN_PORT}</stringProp>
|
|
164 |
<stringProp name="HTTPSampler.protocol">${LOGIN_PROTO}</stringProp>
|
226 | 165 |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
227 | |
<stringProp name="HTTPSampler.path">/IdpSample/MainPage?cmd=login</stringProp>
|
228 | |
<stringProp name="HTTPSampler.method">POST</stringProp>
|
229 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
230 | |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
231 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
232 | |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
233 | |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
234 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
235 | |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
236 | |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
237 | |
</HTTPSamplerProxy>
|
238 | |
<hashTree>
|
239 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab ResumePath" enabled="true">
|
240 | |
<stringProp name="RegexExtractor.useHeaders">true</stringProp>
|
241 | |
<stringProp name="RegexExtractor.refname">ResumePath</stringProp>
|
242 | |
<stringProp name="RegexExtractor.regex">Location: https://(.*?)/(.*)</stringProp>
|
243 | |
<stringProp name="RegexExtractor.template">$2$</stringProp>
|
244 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
245 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
246 | |
</RegexExtractor>
|
247 | |
<hashTree/>
|
248 | |
</hashTree>
|
249 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Implict: Resume Authorization" enabled="false">
|
250 | |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
251 | |
<collectionProp name="Arguments.arguments"/>
|
252 | |
</elementProp>
|
253 | |
<stringProp name="HTTPSampler.domain">${AS_HOST}</stringProp>
|
254 | |
<stringProp name="HTTPSampler.port">${AS_PORT}</stringProp>
|
255 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
256 | |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
257 | |
<stringProp name="HTTPSampler.path">${ResumePath}</stringProp>
|
258 | |
<stringProp name="HTTPSampler.method">POST</stringProp>
|
259 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
260 | |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
261 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
262 | |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
263 | |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
264 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
265 | |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
266 | |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
267 | |
</HTTPSamplerProxy>
|
268 | |
<hashTree>
|
269 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab RedirectURIPath" enabled="true">
|
270 | |
<stringProp name="RegexExtractor.useHeaders">true</stringProp>
|
271 | |
<stringProp name="RegexExtractor.refname">RedirectURIPath</stringProp>
|
272 | |
<stringProp name="RegexExtractor.regex">Location: https://(.*?)/(.*)#</stringProp>
|
273 | |
<stringProp name="RegexExtractor.template">$2$</stringProp>
|
274 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
275 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
276 | |
</RegexExtractor>
|
277 | |
<hashTree/>
|
278 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab StateFragment" enabled="true">
|
279 | |
<stringProp name="RegexExtractor.useHeaders">true</stringProp>
|
280 | |
<stringProp name="RegexExtractor.refname">StateFragment</stringProp>
|
281 | |
<stringProp name="RegexExtractor.regex">Location: https://(.*?)#(.*?)state=(.*?)&</stringProp>
|
282 | |
<stringProp name="RegexExtractor.template">$3$</stringProp>
|
283 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
284 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
285 | |
</RegexExtractor>
|
286 | |
<hashTree/>
|
287 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab IDTokenFragment" enabled="true">
|
288 | |
<stringProp name="RegexExtractor.useHeaders">true</stringProp>
|
289 | |
<stringProp name="RegexExtractor.refname">IDTokenFragment</stringProp>
|
290 | |
<stringProp name="RegexExtractor.regex">Location: https://(.*?)#(.*?)id_token=(.*)</stringProp>
|
291 | |
<stringProp name="RegexExtractor.template">$3$</stringProp>
|
292 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
293 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
294 | |
</RegexExtractor>
|
295 | |
<hashTree/>
|
296 | |
</hashTree>
|
297 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Implicit: Authorization Response" enabled="false">
|
298 | |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
299 | |
<collectionProp name="Arguments.arguments">
|
300 | |
<elementProp name="state" elementType="HTTPArgument">
|
301 | |
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
302 | |
<stringProp name="Argument.value">${StateFragment}</stringProp>
|
303 | |
<stringProp name="Argument.metadata">=</stringProp>
|
304 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
305 | |
<stringProp name="Argument.name">state</stringProp>
|
306 | |
</elementProp>
|
307 | |
<elementProp name="id_token" elementType="HTTPArgument">
|
308 | |
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
309 | |
<stringProp name="Argument.value">${IDTokenFragment}</stringProp>
|
310 | |
<stringProp name="Argument.metadata">=</stringProp>
|
311 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
312 | |
<stringProp name="Argument.name">id_token</stringProp>
|
313 | |
</elementProp>
|
314 | |
</collectionProp>
|
315 | |
</elementProp>
|
316 | |
<stringProp name="HTTPSampler.domain">${APP_SERVER}</stringProp>
|
317 | |
<stringProp name="HTTPSampler.port">${APP_PORT}</stringProp>
|
318 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
319 | |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
320 | |
<stringProp name="HTTPSampler.path">/${RedirectURIPath}</stringProp>
|
321 | |
<stringProp name="HTTPSampler.method">POST</stringProp>
|
322 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
323 | |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
324 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
325 | |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
326 | |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
327 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
328 | |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
329 | |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
330 | |
</HTTPSamplerProxy>
|
331 | |
<hashTree>
|
332 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab ApplicationPath" enabled="true">
|
333 | |
<stringProp name="RegexExtractor.useHeaders">true</stringProp>
|
334 | |
<stringProp name="RegexExtractor.refname">ApplicationPath</stringProp>
|
335 | |
<stringProp name="RegexExtractor.regex">Location: https://(.*?)/(.*)</stringProp>
|
336 | |
<stringProp name="RegexExtractor.template">$2$</stringProp>
|
337 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
338 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
339 | |
</RegexExtractor>
|
340 | |
<hashTree/>
|
341 | |
</hashTree>
|
342 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Basic: OP User Login Consent" enabled="true">
|
343 | |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
344 | |
<collectionProp name="Arguments.arguments">
|
345 | |
<elementProp name="pf.username" elementType="HTTPArgument">
|
346 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
347 | |
<stringProp name="Argument.value">${USERNAME}</stringProp>
|
348 | |
<stringProp name="Argument.metadata">=</stringProp>
|
349 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
350 | |
<stringProp name="Argument.name">pf.username</stringProp>
|
351 | |
</elementProp>
|
352 | |
<elementProp name="pf.pass" elementType="HTTPArgument">
|
353 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
354 | |
<stringProp name="Argument.value">${PASSWORD}</stringProp>
|
355 | |
<stringProp name="Argument.metadata">=</stringProp>
|
356 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
357 | |
<stringProp name="Argument.name">pf.pass</stringProp>
|
358 | |
</elementProp>
|
359 | |
</collectionProp>
|
360 | |
</elementProp>
|
361 | |
<stringProp name="HTTPSampler.domain">${AS_HOST}</stringProp>
|
362 | |
<stringProp name="HTTPSampler.port">${AS_PORT}</stringProp>
|
363 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
364 | |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
365 | |
<stringProp name="HTTPSampler.path">${AuthzResumePath}</stringProp>
|
|
166 |
<stringProp name="HTTPSampler.path">${LOGIN_PATH}</stringProp>
|
366 | 167 |
<stringProp name="HTTPSampler.method">POST</stringProp>
|
367 | 168 |
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
|
368 | 169 |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
369 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
370 | |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
371 | |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
372 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
373 | |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
374 | |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
375 | |
</HTTPSamplerProxy>
|
376 | |
<hashTree>
|
377 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab cSRFToken Parameter" enabled="true">
|
378 | |
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
|
379 | |
<stringProp name="RegexExtractor.refname">cSRFTokenParam</stringProp>
|
380 | |
<stringProp name="RegexExtractor.regex"><input type=\"hidden\" name=\"cSRFToken\" value=\"(.+)\"/></stringProp>
|
381 | |
<stringProp name="RegexExtractor.template">$1$</stringProp>
|
382 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
383 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
384 | |
</RegexExtractor>
|
385 | |
<hashTree/>
|
386 | |
</hashTree>
|
387 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Basic: OP User Consent" enabled="true">
|
388 | |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
389 | |
<collectionProp name="Arguments.arguments">
|
390 | |
<elementProp name="check-user-approved-scope" elementType="HTTPArgument">
|
391 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
392 | |
<stringProp name="Argument.value">true</stringProp>
|
393 | |
<stringProp name="Argument.metadata">=</stringProp>
|
394 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
395 | |
<stringProp name="Argument.name">check-user-approved-scope</stringProp>
|
396 | |
</elementProp>
|
397 | |
<elementProp name="scope" elementType="HTTPArgument">
|
398 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
399 | |
<stringProp name="Argument.value">openid</stringProp>
|
400 | |
<stringProp name="Argument.metadata">=</stringProp>
|
401 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
402 | |
<stringProp name="Argument.name">scope</stringProp>
|
403 | |
</elementProp>
|
404 | |
<elementProp name="scope" elementType="HTTPArgument">
|
405 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
406 | |
<stringProp name="Argument.value">email</stringProp>
|
407 | |
<stringProp name="Argument.metadata">=</stringProp>
|
408 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
409 | |
<stringProp name="Argument.name">scope</stringProp>
|
410 | |
</elementProp>
|
411 | |
<elementProp name="scope" elementType="HTTPArgument">
|
412 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
413 | |
<stringProp name="Argument.value">profile</stringProp>
|
414 | |
<stringProp name="Argument.metadata">=</stringProp>
|
415 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
416 | |
<stringProp name="Argument.name">scope</stringProp>
|
417 | |
</elementProp>
|
418 | |
<elementProp name="cSRFToken" elementType="HTTPArgument">
|
419 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
420 | |
<stringProp name="Argument.value">${cSRFTokenParam}</stringProp>
|
421 | |
<stringProp name="Argument.metadata">=</stringProp>
|
422 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
423 | |
<stringProp name="Argument.name">cSRFToken</stringProp>
|
424 | |
</elementProp>
|
425 | |
<elementProp name="pf.oauth.authz.consent" elementType="HTTPArgument">
|
426 | |
<boolProp name="HTTPArgument.always_encode">true</boolProp>
|
427 | |
<stringProp name="Argument.value">allow</stringProp>
|
428 | |
<stringProp name="Argument.metadata">=</stringProp>
|
429 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
430 | |
<stringProp name="Argument.name">pf.oauth.authz.consent</stringProp>
|
431 | |
</elementProp>
|
432 | |
</collectionProp>
|
433 | |
</elementProp>
|
434 | |
<stringProp name="HTTPSampler.domain">${AS_HOST}</stringProp>
|
435 | |
<stringProp name="HTTPSampler.port">${AS_PORT}</stringProp>
|
436 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
437 | |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
438 | |
<stringProp name="HTTPSampler.path">${AuthzResumePath}</stringProp>
|
439 | |
<stringProp name="HTTPSampler.method">POST</stringProp>
|
440 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
441 | |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
442 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
443 | |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
444 | |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
445 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
446 | |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
447 | |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
448 | |
</HTTPSamplerProxy>
|
449 | |
<hashTree>
|
450 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab LocationPath" enabled="true">
|
451 | |
<stringProp name="RegexExtractor.useHeaders">true</stringProp>
|
452 | |
<stringProp name="RegexExtractor.refname">LocationPath</stringProp>
|
453 | |
<stringProp name="RegexExtractor.regex">Location: https://(.*?)/(.*)</stringProp>
|
454 | |
<stringProp name="RegexExtractor.template">$2$</stringProp>
|
455 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
456 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
457 | |
</RegexExtractor>
|
458 | |
<hashTree/>
|
459 | |
</hashTree>
|
460 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Basic: Authorization Response" enabled="true">
|
461 | |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
462 | |
<collectionProp name="Arguments.arguments"/>
|
463 | |
</elementProp>
|
464 | |
<stringProp name="HTTPSampler.domain">${APP_SERVER}</stringProp>
|
465 | |
<stringProp name="HTTPSampler.port">${APP_PORT}</stringProp>
|
466 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
467 | |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
468 | |
<stringProp name="HTTPSampler.path">/${LocationPath}</stringProp>
|
469 | |
<stringProp name="HTTPSampler.method">GET</stringProp>
|
470 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
471 | |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
472 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
473 | |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
474 | |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
475 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
476 | |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
477 | |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
478 | |
</HTTPSamplerProxy>
|
479 | |
<hashTree>
|
480 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab ApplicationPath" enabled="true">
|
481 | |
<stringProp name="RegexExtractor.useHeaders">true</stringProp>
|
482 | |
<stringProp name="RegexExtractor.refname">ApplicationPath</stringProp>
|
483 | |
<stringProp name="RegexExtractor.regex">Location: https://(.*?)/(.*)</stringProp>
|
484 | |
<stringProp name="RegexExtractor.template">$2$</stringProp>
|
485 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
486 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
487 | |
</RegexExtractor>
|
488 | |
<hashTree/>
|
489 | |
</hashTree>
|
490 | |
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="Set Malicious Header" enabled="false">
|
491 | |
<collectionProp name="HeaderManager.headers">
|
492 | |
<elementProp name="" elementType="Header">
|
493 | |
<stringProp name="Header.name">OIDC_CLAIM_BOGUS</stringProp>
|
494 | |
<stringProp name="Header.value">bogus</stringProp>
|
495 | |
</elementProp>
|
496 | |
</collectionProp>
|
497 | |
</HeaderManager>
|
498 | |
<hashTree/>
|
499 | |
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Authenticated Application Access" enabled="true">
|
500 | |
<boolProp name="LoopController.continue_forever">true</boolProp>
|
501 | |
<stringProp name="LoopController.loops">5</stringProp>
|
502 | |
</LoopController>
|
503 | |
<hashTree>
|
504 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Authenticated Application Access" enabled="true">
|
505 | |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
506 | |
<collectionProp name="Arguments.arguments"/>
|
507 | |
</elementProp>
|
508 | |
<stringProp name="HTTPSampler.domain">${APP_SERVER}</stringProp>
|
509 | |
<stringProp name="HTTPSampler.port">${APP_PORT}</stringProp>
|
510 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
511 | |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
512 | |
<stringProp name="HTTPSampler.path">/${ApplicationPath}</stringProp>
|
513 | |
<stringProp name="HTTPSampler.method">GET</stringProp>
|
514 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
515 | |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
516 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
517 | |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
518 | |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
519 | |
<stringProp name="HTTPSampler.implementation">HttpClient4</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="Assert User Logged In" enabled="true">
|
525 | |
<collectionProp name="Asserion.test_strings">
|
526 | |
<stringProp name="-1682027846">\[OIDC_CLAIM_sub\] => ${USERNAME}</stringProp>
|
527 | |
</collectionProp>
|
528 | |
<stringProp name="Assertion.test_field">Assertion.response_data</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 | |
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Fake Header Removal" enabled="true">
|
535 | |
<collectionProp name="Asserion.test_strings">
|
536 | |
<stringProp name="-2019701846">\[OIDC_CLAIM_BOGUS\] => bogus</stringProp>
|
537 | |
</collectionProp>
|
538 | |
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
|
539 | |
<boolProp name="Assertion.assume_success">false</boolProp>
|
540 | |
<intProp name="Assertion.test_type">6</intProp>
|
541 | |
<stringProp name="Assertion.custom_message"></stringProp>
|
542 | |
</ResponseAssertion>
|
543 | |
<hashTree/>
|
544 | |
</hashTree>
|
545 | |
</hashTree>
|
546 | |
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
|
547 | |
<collectionProp name="CookieManager.cookies"/>
|
548 | |
<boolProp name="CookieManager.clearEachIteration">true</boolProp>
|
549 | |
<stringProp name="CookieManager.policy">rfc2109</stringProp>
|
550 | |
</CookieManager>
|
551 | |
<hashTree/>
|
552 | |
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Username/Password Data Set" enabled="true">
|
553 | |
<stringProp name="delimiter">,</stringProp>
|
554 | |
<stringProp name="fileEncoding"></stringProp>
|
555 | |
<stringProp name="filename">users.txt</stringProp>
|
556 | |
<boolProp name="quotedData">false</boolProp>
|
557 | |
<boolProp name="recycle">true</boolProp>
|
558 | |
<stringProp name="shareMode">shareMode.all</stringProp>
|
559 | |
<boolProp name="stopThread">false</boolProp>
|
560 | |
<stringProp name="variableNames">USERNAME,PASSWORD</stringProp>
|
561 | |
<boolProp name="ignoreFirstLine">false</boolProp>
|
562 | |
</CSVDataSet>
|
563 | |
<hashTree/>
|
564 | |
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
|
565 | |
<collectionProp name="HeaderManager.headers">
|
566 | |
<elementProp name="" elementType="Header">
|
567 | |
<stringProp name="Header.name">Accept</stringProp>
|
568 | |
<stringProp name="Header.value">*/*</stringProp>
|
569 | |
</elementProp>
|
570 | |
</collectionProp>
|
571 | |
</HeaderManager>
|
572 | |
<hashTree/>
|
573 | |
</hashTree>
|
574 | |
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="OAuth Resource Access" enabled="true">
|
575 | |
<stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp>
|
576 | |
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
|
577 | |
<boolProp name="LoopController.continue_forever">false</boolProp>
|
578 | |
<stringProp name="LoopController.loops">5</stringProp>
|
579 | |
</elementProp>
|
580 | |
<stringProp name="ThreadGroup.num_threads">15</stringProp>
|
581 | |
<stringProp name="ThreadGroup.ramp_time">0</stringProp>
|
582 | |
<longProp name="ThreadGroup.start_time">1388176686000</longProp>
|
583 | |
<longProp name="ThreadGroup.end_time">1388176686000</longProp>
|
584 | |
<boolProp name="ThreadGroup.scheduler">false</boolProp>
|
585 | |
<stringProp name="ThreadGroup.duration"></stringProp>
|
586 | |
<stringProp name="ThreadGroup.delay"></stringProp>
|
587 | |
</ThreadGroup>
|
588 | |
<hashTree>
|
589 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Token Request" enabled="true">
|
590 | |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
591 | |
<collectionProp name="Arguments.arguments">
|
592 | |
<elementProp name="client_id" elementType="HTTPArgument">
|
593 | |
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
594 | |
<stringProp name="Argument.value">${AS_CLIENT_ID}</stringProp>
|
595 | |
<stringProp name="Argument.metadata">=</stringProp>
|
596 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
597 | |
<stringProp name="Argument.name">client_id</stringProp>
|
598 | |
</elementProp>
|
599 | |
<elementProp name="grant_type" elementType="HTTPArgument">
|
600 | |
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
601 | |
<stringProp name="Argument.value">password</stringProp>
|
602 | |
<stringProp name="Argument.metadata">=</stringProp>
|
603 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
604 | |
<stringProp name="Argument.name">grant_type</stringProp>
|
605 | |
</elementProp>
|
606 | |
<elementProp name="username" elementType="HTTPArgument">
|
607 | |
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
608 | |
<stringProp name="Argument.value">${AS_USERNAME}</stringProp>
|
609 | |
<stringProp name="Argument.metadata">=</stringProp>
|
610 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
611 | |
<stringProp name="Argument.name">username</stringProp>
|
612 | |
</elementProp>
|
613 | |
<elementProp name="password" elementType="HTTPArgument">
|
614 | |
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
615 | |
<stringProp name="Argument.value">${AS_PASSWORD}</stringProp>
|
616 | |
<stringProp name="Argument.metadata">=</stringProp>
|
617 | |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
618 | |
<stringProp name="Argument.name">password</stringProp>
|
619 | |
</elementProp>
|
620 | |
</collectionProp>
|
621 | |
</elementProp>
|
622 | |
<stringProp name="HTTPSampler.domain">${AS_HOST}</stringProp>
|
623 | |
<stringProp name="HTTPSampler.port">${AS_PORT}</stringProp>
|
624 | |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
625 | |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
626 | |
<stringProp name="HTTPSampler.path">${AS_PATH_TOKEN}</stringProp>
|
627 | |
<stringProp name="HTTPSampler.method">POST</stringProp>
|
628 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
629 | |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
630 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
|
170 |
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
|
631 | 171 |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
632 | 172 |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
633 | 173 |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
634 | 174 |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
635 | 175 |
</HTTPSamplerProxy>
|
636 | 176 |
<hashTree>
|
637 | |
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Grab AccessToken" enabled="true">
|
638 | |
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
|
639 | |
<stringProp name="RegexExtractor.refname">AccessToken</stringProp>
|
640 | |
<stringProp name="RegexExtractor.regex">\"access_token\":\"(.+)\",\"token_type\"</stringProp>
|
641 | |
<stringProp name="RegexExtractor.template">$1$</stringProp>
|
642 | |
<stringProp name="RegexExtractor.default">REGEX_FAILED</stringProp>
|
643 | |
<stringProp name="RegexExtractor.match_number">1</stringProp>
|
644 | |
</RegexExtractor>
|
|
177 |
<JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="Assert Preferred Username Header" enabled="true">
|
|
178 |
<stringProp name="JSON_PATH">$.headers.oidc_claim_preferred_username</stringProp>
|
|
179 |
<stringProp name="EXPECTED_VALUE">admin</stringProp>
|
|
180 |
<boolProp name="JSONVALIDATION">true</boolProp>
|
|
181 |
<boolProp name="EXPECT_NULL">false</boolProp>
|
|
182 |
<boolProp name="INVERT">false</boolProp>
|
|
183 |
<boolProp name="ISREGEX">false</boolProp>
|
|
184 |
</JSONPathAssertion>
|
645 | 185 |
<hashTree/>
|
646 | 186 |
</hashTree>
|
647 | |
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="Set Authorization Bearer Token" enabled="true">
|
648 | |
<collectionProp name="HeaderManager.headers">
|
649 | |
<elementProp name="" elementType="Header">
|
650 | |
<stringProp name="Header.name">Authorization</stringProp>
|
651 | |
<stringProp name="Header.value">bearer ${AccessToken}</stringProp>
|
652 | |
</elementProp>
|
653 | |
<elementProp name="" elementType="Header">
|
654 | |
<stringProp name="Header.name">Accept</stringProp>
|
655 | |
<stringProp name="Header.value">application/json</stringProp>
|
656 | |
</elementProp>
|
657 | |
</collectionProp>
|
658 | |
</HeaderManager>
|
659 | |
<hashTree/>
|
660 | |
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Resource Access Requests" enabled="true">
|
|
187 |
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Authenticated Requests" enabled="true">
|
661 | 188 |
<boolProp name="LoopController.continue_forever">true</boolProp>
|
662 | |
<stringProp name="LoopController.loops">5</stringProp>
|
|
189 |
<stringProp name="LoopController.loops">${LOOP}</stringProp>
|
663 | 190 |
</LoopController>
|
664 | 191 |
<hashTree>
|
665 | |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Resource Access" enabled="true">
|
|
192 |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Send Authenticated Request" enabled="true">
|
666 | 193 |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
667 | 194 |
<collectionProp name="Arguments.arguments"/>
|
668 | 195 |
</elementProp>
|
669 | |
<stringProp name="HTTPSampler.domain">${APP_SERVER}</stringProp>
|
|
196 |
<stringProp name="HTTPSampler.domain">${APP_HOST}</stringProp>
|
670 | 197 |
<stringProp name="HTTPSampler.port">${APP_PORT}</stringProp>
|
671 | 198 |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
672 | 199 |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
673 | |
<stringProp name="HTTPSampler.path">${APP_PATH_ACCESS}</stringProp>
|
|
200 |
<stringProp name="HTTPSampler.path">/</stringProp>
|
674 | 201 |
<stringProp name="HTTPSampler.method">GET</stringProp>
|
675 | |
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
|
|
202 |
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
|
676 | 203 |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
677 | |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
|
204 |
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
|
678 | 205 |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
679 | 206 |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
680 | 207 |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
681 | 208 |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
682 | 209 |
</HTTPSamplerProxy>
|
683 | 210 |
<hashTree>
|
684 | |
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert AS_USERNAME" enabled="true">
|
685 | |
<collectionProp name="Asserion.test_strings">
|
686 | |
<stringProp name="240033137">\[OIDC_CLAIM_Username\] => ${AS_USERNAME}</stringProp>
|
687 | |
</collectionProp>
|
688 | |
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
|
689 | |
<boolProp name="Assertion.assume_success">false</boolProp>
|
690 | |
<intProp name="Assertion.test_type">2</intProp>
|
691 | |
<stringProp name="Assertion.custom_message"></stringProp>
|
692 | |
</ResponseAssertion>
|
|
211 |
<XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract Login URL" enabled="true">
|
|
212 |
<stringProp name="XPathExtractor.default"></stringProp>
|
|
213 |
<stringProp name="XPathExtractor.refname">LOGIN_URL</stringProp>
|
|
214 |
<stringProp name="XPathExtractor.matchNumber">-1</stringProp>
|
|
215 |
<stringProp name="XPathExtractor.xpathQuery">//form[@id="kc-form-login"]/@action </stringProp>
|
|
216 |
<boolProp name="XPathExtractor.validate">false</boolProp>
|
|
217 |
<boolProp name="XPathExtractor.tolerant">true</boolProp>
|
|
218 |
<boolProp name="XPathExtractor.namespace">false</boolProp>
|
|
219 |
</XPathExtractor>
|
|
220 |
<hashTree/>
|
|
221 |
<BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Extract Login Components" enabled="true">
|
|
222 |
<stringProp name="filename"></stringProp>
|
|
223 |
<stringProp name="parameters"></stringProp>
|
|
224 |
<boolProp name="resetInterpreter">false</boolProp>
|
|
225 |
<stringProp name="script">URL url = new URL(vars.get("LOGIN_URL"));
|
|
226 |
vars.put("LOGIN_PROTO", url.getProtocol());
|
|
227 |
vars.put("LOGIN_HOST", url.getHost());
|
|
228 |
vars.put("LOGIN_PORT", Integer.toString(url.getPort()));
|
|
229 |
vars.put("LOGIN_PATH", url.getPath() + "?" + url.getQuery());</stringProp>
|
|
230 |
</BeanShellPostProcessor>
|
|
231 |
<hashTree/>
|
|
232 |
</hashTree>
|
|
233 |
</hashTree>
|
|
234 |
</hashTree>
|
|
235 |
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="OAuth 2.0" enabled="true">
|
|
236 |
<stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
|
|
237 |
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
|
|
238 |
<boolProp name="LoopController.continue_forever">false</boolProp>
|
|
239 |
<stringProp name="LoopController.loops">${LOOP}</stringProp>
|
|
240 |
</elementProp>
|
|
241 |
<stringProp name="ThreadGroup.num_threads">${THREADS}</stringProp>
|
|
242 |
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
|
|
243 |
<boolProp name="ThreadGroup.scheduler">false</boolProp>
|
|
244 |
<stringProp name="ThreadGroup.duration"></stringProp>
|
|
245 |
<stringProp name="ThreadGroup.delay"></stringProp>
|
|
246 |
</ThreadGroup>
|
|
247 |
<hashTree>
|
|
248 |
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="Set Accept Header" enabled="true">
|
|
249 |
<collectionProp name="HeaderManager.headers">
|
|
250 |
<elementProp name="" elementType="Header">
|
|
251 |
<stringProp name="Header.name">Accept</stringProp>
|
|
252 |
<stringProp name="Header.value">application/json</stringProp>
|
|
253 |
</elementProp>
|
|
254 |
</collectionProp>
|
|
255 |
</HeaderManager>
|
|
256 |
<hashTree/>
|
|
257 |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Execute Client Credentials" enabled="true">
|
|
258 |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
|
259 |
<collectionProp name="Arguments.arguments">
|
|
260 |
<elementProp name="grant_type" elementType="HTTPArgument">
|
|
261 |
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
|
262 |
<stringProp name="Argument.value">client_credentials</stringProp>
|
|
263 |
<stringProp name="Argument.metadata">=</stringProp>
|
|
264 |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
|
265 |
<stringProp name="Argument.name">grant_type</stringProp>
|
|
266 |
</elementProp>
|
|
267 |
<elementProp name="client_id" elementType="HTTPArgument">
|
|
268 |
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
|
269 |
<stringProp name="Argument.value">cc_client</stringProp>
|
|
270 |
<stringProp name="Argument.metadata">=</stringProp>
|
|
271 |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
|
272 |
<stringProp name="Argument.name">client_id</stringProp>
|
|
273 |
</elementProp>
|
|
274 |
<elementProp name="client_secret" elementType="HTTPArgument">
|
|
275 |
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
|
276 |
<stringProp name="Argument.value">mysecret</stringProp>
|
|
277 |
<stringProp name="Argument.metadata">=</stringProp>
|
|
278 |
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
|
279 |
<stringProp name="Argument.name">client_secret</stringProp>
|
|
280 |
</elementProp>
|
|
281 |
</collectionProp>
|
|
282 |
</elementProp>
|
|
283 |
<stringProp name="HTTPSampler.domain">${PROVIDER_HOST}</stringProp>
|
|
284 |
<stringProp name="HTTPSampler.port">${PROVIDER_PORT}</stringProp>
|
|
285 |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
|
286 |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
|
287 |
<stringProp name="HTTPSampler.path">/auth/realms/master/protocol/openid-connect/token</stringProp>
|
|
288 |
<stringProp name="HTTPSampler.method">POST</stringProp>
|
|
289 |
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
|
|
290 |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
|
291 |
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
|
|
292 |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
|
293 |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
|
294 |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
|
295 |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
|
296 |
</HTTPSamplerProxy>
|
|
297 |
<hashTree>
|
|
298 |
<JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Extract Access Token" enabled="true">
|
|
299 |
<stringProp name="JSONPostProcessor.referenceNames">ACCESS_TOKEN</stringProp>
|
|
300 |
<stringProp name="JSONPostProcessor.jsonPathExprs">$.access_token</stringProp>
|
|
301 |
<stringProp name="JSONPostProcessor.match_numbers"></stringProp>
|
|
302 |
</JSONPostProcessor>
|
|
303 |
<hashTree/>
|
|
304 |
</hashTree>
|
|
305 |
<DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Debug Sampler" enabled="false">
|
|
306 |
<boolProp name="displayJMeterProperties">false</boolProp>
|
|
307 |
<boolProp name="displayJMeterVariables">true</boolProp>
|
|
308 |
<boolProp name="displaySystemProperties">false</boolProp>
|
|
309 |
</DebugSampler>
|
|
310 |
<hashTree/>
|
|
311 |
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="Set Authorization Header" enabled="true">
|
|
312 |
<collectionProp name="HeaderManager.headers">
|
|
313 |
<elementProp name="" elementType="Header">
|
|
314 |
<stringProp name="Header.name">Accept</stringProp>
|
|
315 |
<stringProp name="Header.value">application/json</stringProp>
|
|
316 |
</elementProp>
|
|
317 |
<elementProp name="" elementType="Header">
|
|
318 |
<stringProp name="Header.name">Authorization</stringProp>
|
|
319 |
<stringProp name="Header.value">bearer ${ACCESS_TOKEN}</stringProp>
|
|
320 |
</elementProp>
|
|
321 |
</collectionProp>
|
|
322 |
</HeaderManager>
|
|
323 |
<hashTree/>
|
|
324 |
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Authenticated Requests" enabled="true">
|
|
325 |
<boolProp name="LoopController.continue_forever">true</boolProp>
|
|
326 |
<stringProp name="LoopController.loops">${LOOP}</stringProp>
|
|
327 |
</LoopController>
|
|
328 |
<hashTree>
|
|
329 |
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Send Authenticated Request" enabled="true">
|
|
330 |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
|
|
331 |
<collectionProp name="Arguments.arguments"/>
|
|
332 |
</elementProp>
|
|
333 |
<stringProp name="HTTPSampler.domain">${APP_HOST}</stringProp>
|
|
334 |
<stringProp name="HTTPSampler.port">${APP_PORT}</stringProp>
|
|
335 |
<stringProp name="HTTPSampler.protocol">https</stringProp>
|
|
336 |
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
|
|
337 |
<stringProp name="HTTPSampler.path">/api</stringProp>
|
|
338 |
<stringProp name="HTTPSampler.method">GET</stringProp>
|
|
339 |
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
|
|
340 |
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
|
341 |
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
|
|
342 |
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
|
343 |
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
|
|
344 |
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
|
|
345 |
<stringProp name="HTTPSampler.response_timeout"></stringProp>
|
|
346 |
</HTTPSamplerProxy>
|
|
347 |
<hashTree>
|
|
348 |
<JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="Assert Client ID Header" enabled="true">
|
|
349 |
<stringProp name="JSON_PATH">$.headers.oidc_claim_clientid</stringProp>
|
|
350 |
<stringProp name="EXPECTED_VALUE">cc_client</stringProp>
|
|
351 |
<boolProp name="JSONVALIDATION">true</boolProp>
|
|
352 |
<boolProp name="EXPECT_NULL">false</boolProp>
|
|
353 |
<boolProp name="INVERT">false</boolProp>
|
|
354 |
<boolProp name="ISREGEX">false</boolProp>
|
|
355 |
</JSONPathAssertion>
|
693 | 356 |
<hashTree/>
|
694 | 357 |
</hashTree>
|
695 | 358 |
</hashTree>
|
|
722 | 385 |
<assertionsResultsToSave>0</assertionsResultsToSave>
|
723 | 386 |
<bytes>true</bytes>
|
724 | 387 |
<sentBytes>true</sentBytes>
|
|
388 |
<url>true</url>
|
725 | 389 |
<threadCounts>true</threadCounts>
|
726 | 390 |
<idleTime>true</idleTime>
|
727 | 391 |
<connectTime>true</connectTime>
|
728 | |
</value>
|
729 | |
</objProp>
|
730 | |
<objProp>
|
731 | |
<name></name>
|
732 | |
<value class="SampleSaveConfiguration">
|
733 | |
<time>true</time>
|
734 | |
<latency>true</latency>
|
735 | |
<timestamp>true</timestamp>
|
736 | |
<success>true</success>
|
737 | |
<label>true</label>
|
738 | |
<code>true</code>
|
739 | |
<message>true</message>
|
740 | |
<threadName>true</threadName>
|
741 | |
<dataType>true</dataType>
|
742 | |
<encoding>false</encoding>
|
743 | |
<assertions>false</assertions>
|
744 | |
<subresults>false</subresults>
|
745 | |
<responseData>false</responseData>
|
746 | |
<samplerData>false</samplerData>
|
747 | |
<xml>false</xml>
|
748 | |
<fieldNames>true</fieldNames>
|
749 | |
<responseHeaders>false</responseHeaders>
|
750 | |
<requestHeaders>false</requestHeaders>
|
751 | |
<responseDataOnError>false</responseDataOnError>
|
752 | |
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
753 | |
<assertionsResultsToSave>0</assertionsResultsToSave>
|
754 | 392 |
</value>
|
755 | 393 |
</objProp>
|
756 | 394 |
<stringProp name="filename"></stringProp>
|
|
784 | 422 |
<assertionsResultsToSave>0</assertionsResultsToSave>
|
785 | 423 |
<bytes>true</bytes>
|
786 | 424 |
<sentBytes>true</sentBytes>
|
|
425 |
<url>true</url>
|
787 | 426 |
<threadCounts>true</threadCounts>
|
788 | 427 |
<idleTime>true</idleTime>
|
789 | 428 |
<connectTime>true</connectTime>
|
790 | |
</value>
|
791 | |
</objProp>
|
792 | |
<objProp>
|
793 | |
<name></name>
|
794 | |
<value class="SampleSaveConfiguration">
|
795 | |
<time>true</time>
|
796 | |
<latency>true</latency>
|
797 | |
<timestamp>true</timestamp>
|
798 | |
<success>true</success>
|
799 | |
<label>true</label>
|
800 | |
<code>true</code>
|
801 | |
<message>true</message>
|
802 | |
<threadName>true</threadName>
|
803 | |
<dataType>true</dataType>
|
804 | |
<encoding>false</encoding>
|
805 | |
<assertions>true</assertions>
|
806 | |
<subresults>true</subresults>
|
807 | |
<responseData>false</responseData>
|
808 | |
<samplerData>false</samplerData>
|
809 | |
<xml>false</xml>
|
810 | |
<fieldNames>false</fieldNames>
|
811 | |
<responseHeaders>false</responseHeaders>
|
812 | |
<requestHeaders>false</requestHeaders>
|
813 | |
<responseDataOnError>false</responseDataOnError>
|
814 | |
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
815 | |
<assertionsResultsToSave>0</assertionsResultsToSave>
|
816 | |
<bytes>true</bytes>
|
817 | |
</value>
|
818 | |
</objProp>
|
819 | |
<stringProp name="filename"></stringProp>
|
820 | |
</ResultCollector>
|
821 | |
<hashTree/>
|
822 | |
<ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true">
|
823 | |
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
824 | |
<objProp>
|
825 | |
<name>saveConfig</name>
|
826 | |
<value class="SampleSaveConfiguration">
|
827 | |
<time>true</time>
|
828 | |
<latency>true</latency>
|
829 | |
<timestamp>true</timestamp>
|
830 | |
<success>true</success>
|
831 | |
<label>true</label>
|
832 | |
<code>true</code>
|
833 | |
<message>true</message>
|
834 | |
<threadName>true</threadName>
|
835 | |
<dataType>true</dataType>
|
836 | |
<encoding>false</encoding>
|
837 | |
<assertions>true</assertions>
|
838 | |
<subresults>true</subresults>
|
839 | |
<responseData>false</responseData>
|
840 | |
<samplerData>false</samplerData>
|
841 | |
<xml>false</xml>
|
842 | |
<fieldNames>true</fieldNames>
|
843 | |
<responseHeaders>false</responseHeaders>
|
844 | |
<requestHeaders>false</requestHeaders>
|
845 | |
<responseDataOnError>false</responseDataOnError>
|
846 | |
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
|
847 | |
<assertionsResultsToSave>0</assertionsResultsToSave>
|
848 | |
<bytes>true</bytes>
|
849 | |
<sentBytes>true</sentBytes>
|
850 | |
<threadCounts>true</threadCounts>
|
851 | |
<idleTime>true</idleTime>
|
852 | |
<connectTime>true</connectTime>
|
853 | |
</value>
|
854 | |
</objProp>
|
855 | |
<objProp>
|
856 | |
<name></name>
|
857 | |
<value class="SampleSaveConfiguration">
|
858 | |
<time>true</time>
|
859 | |
<latency>true</latency>
|
860 | |
<timestamp>true</timestamp>
|
861 | |
<success>true</success>
|
862 | |
<label>true</label>
|
863 | |
<code>true</code>
|
864 | |
<message>true</message>
|
865 | |
<threadName>true</threadName>
|
866 | |
<dataType>true</dataType>
|
867 | |
<encoding>false</encoding>
|
868 | |
<assertions>true</assertions>
|
869 | |
<subresults>true</subresults>
|
870 | |
<responseData>false</responseData>
|
871 | |
<samplerData>false</samplerData>
|
872 | |
<xml>false</xml>
|
873 | |
<fieldNames>false</fieldNames>
|
874 | |
<responseHeaders>false</responseHeaders>
|
875 | |
<requestHeaders>false</requestHeaders>
|
876 | |
<responseDataOnError>false</responseDataOnError>
|
877 | |
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
878 | |
<assertionsResultsToSave>0</assertionsResultsToSave>
|
879 | |
<bytes>true</bytes>
|
880 | 429 |
</value>
|
881 | 430 |
</objProp>
|
882 | 431 |
<stringProp name="filename"></stringProp>
|