Sleds/jmeter/functest.jmx.orig

9901 lines
611 KiB
Plaintext
Raw Permalink Normal View History

2025-03-13 21:28:38 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.4" jmeter="2.9 r1437961">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="CloudGuard Functional Test" enabled="true">
<stringProp name="TestPlan.comments">Basic plan to test services and load</stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">true</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="num.threads" elementType="Argument">
<stringProp name="Argument.name">num.threads</stringProp>
<stringProp name="Argument.value">${__P(num.threads)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="thread.loop.count" elementType="Argument">
<stringProp name="Argument.name">thread.loop.count</stringProp>
<stringProp name="Argument.value">${__P(thread.loop.count)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="thread.ramp.up" elementType="Argument">
<stringProp name="Argument.name">thread.ramp.up</stringProp>
<stringProp name="Argument.value">${__P(thread.ramp.up)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="user.id" elementType="Argument">
<stringProp name="Argument.name">user.id</stringProp>
<stringProp name="Argument.value">jmeter-${__P(user.login)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="service.context" elementType="Argument">
<stringProp name="Argument.name">service.context</stringProp>
<stringProp name="Argument.value">/cgws/v1</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="status.passphrase" elementType="Argument">
<stringProp name="Argument.name">status.passphrase</stringProp>
<stringProp name="Argument.value">${__P(status.passphrase)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.urn" elementType="Argument">
<stringProp name="Argument.name">pmo.urn</stringProp>
<stringProp name="Argument.value">urn:ionu:${__P(van.id)}:${__P(pmo.id)}::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.user" elementType="Argument">
<stringProp name="Argument.name">pmo.user</stringProp>
<stringProp name="Argument.value">${__P(pmo.user)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.email" elementType="Argument">
<stringProp name="Argument.name">pmo.email</stringProp>
<stringProp name="Argument.value">${__P(pmo.email)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.password" elementType="Argument">
<stringProp name="Argument.name">pmo.password</stringProp>
<stringProp name="Argument.value">${__P(pmo.password)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.cr1" elementType="Argument">
<stringProp name="Argument.name">pmo.cr1</stringProp>
<stringProp name="Argument.value">${__P(pmo.cr1)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.cr2" elementType="Argument">
<stringProp name="Argument.name">pmo.cr2</stringProp>
<stringProp name="Argument.value">${__P(pmo.cr2)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="unittest.urn" elementType="Argument">
<stringProp name="Argument.name">unittest.urn</stringProp>
<stringProp name="Argument.value">${__P(unittest.urn)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="service.context.sg" elementType="Argument">
<stringProp name="Argument.name">service.context.sg</stringProp>
<stringProp name="Argument.value">/sgpws/services/v1</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.id" elementType="Argument">
<stringProp name="Argument.name">pmo.id</stringProp>
<stringProp name="Argument.value">${__P(pmo.id)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.password.pbkdf2" elementType="Argument">
<stringProp name="Argument.name">pmo.password.pbkdf2</stringProp>
<stringProp name="Argument.value">${__P(pmo.password.pbkdf2)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.cr3" elementType="Argument">
<stringProp name="Argument.name">pmo.cr3</stringProp>
<stringProp name="Argument.value">${__P(pmo.cr3)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="activationBypassCode" elementType="Argument">
<stringProp name="Argument.name">activationBypassCode</stringProp>
<stringProp name="Argument.value">${__P(activation.bypass.code)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="nikki.urn" elementType="Argument">
<stringProp name="Argument.name">nikki.urn</stringProp>
<stringProp name="Argument.value">${__P(nikki.urn)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.newPassword" elementType="Argument">
<stringProp name="Argument.name">pmo.newPassword</stringProp>
<stringProp name="Argument.value">${__P(pmo.newPassword)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.newPassword.pbkdf2" elementType="Argument">
<stringProp name="Argument.name">pmo.newPassword.pbkdf2</stringProp>
<stringProp name="Argument.value">${__P(pmo.newPassword.pbkdf2)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="pmo.crhash" elementType="Argument">
<stringProp name="Argument.name">pmo.crhash</stringProp>
<stringProp name="Argument.value">${__P(pmo.crhash)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="service.context.ds" elementType="Argument">
<stringProp name="Argument.name">service.context.ds</stringProp>
<stringProp name="Argument.value">/DiscoveryService/v1/services</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</Arguments>
<hashTree/>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
<collectionProp name="HeaderManager.headers"/>
</HeaderManager>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request server config" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">40000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="TestPlan.comments"> </stringProp>
<stringProp name="HTTPSampler.concurrentPool">4</stringProp>
</ConfigTestElement>
<hashTree/>
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
<collectionProp name="CookieManager.cookies"/>
<boolProp name="CookieManager.clearEachIteration">false</boolProp>
<stringProp name="CookieManager.policy">rfc2109</stringProp>
</CookieManager>
<hashTree/>
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>true</xml>
<fieldNames>false</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<hostname>true</hostname>
<sampleCount>true</sampleCount>
</value>
</objProp>
<stringProp name="filename">BasicTestSummary.jtl</stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>true</xml>
<fieldNames>false</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>true</xml>
<fieldNames>false</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
</value>
</objProp>
<stringProp name="filename">/Users/tim/Development/daisy-svn/daisy-svn.ws/ionu-ws-tests/functest.jtl</stringProp>
</ResultCollector>
<hashTree/>
<TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Test Fragment - authenticate (reuse in multiple thread groups)" enabled="true"/>
<hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="CloudGuardService - get code and token" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
import org.json.*;
String server = props.get(&quot;test.server&quot;);
String scheme = props.get(&quot;test.server.scheme&quot;);
String port = props.get(&quot;test.server.port&quot;);
log.info(&quot;Using server: &quot; + scheme + server + &quot;:&quot; + port);
// libionu
com.ionu.EncryptionSupport es = new com.ionu.EncryptionSupport();
es.setupLibIOnU(new java.io.File(&quot;.&quot;), &quot;JMeterIOnU&quot;, null);
log.info(&quot;setupLibIOnU returned&quot;);
// load config that was saved from pmoCreate
/*
String cfg = new String(com.dt.io.FileUtil.loadFile(&quot;LocalConfiguration.json&quot;));
JSONObject obj = new JSONObject(cfg);
// only if directly calling service and not via cgs:
// obj = obj.getJSONObject(&quot;results&quot;);
log.info(&quot;Config: &quot; + obj.toString(2));
vars.put(&quot;LocalConfiguration&quot;, obj.toString());
String devUrn = obj.getJSONArray(&quot;devices&quot;).getJSONObject(0).getString(&quot;_id&quot;);
*/
try {
EyeGlass.loadKeyring(new File(&quot;jmeter-keyring.iks&quot;), vars.get(&quot;pmo.password&quot;), null);
} catch (Throwable ex){
log.error(&quot;loadKeyring&quot;, ex);
}
String devUrn = EyeGlass.getPublicOfficeData(null).getString(&quot;urn&quot;);
String user = EyeGlass.getPublicOfficeData(null).getString(&quot;user&quot;);
vars.put(&quot;device.urn&quot;, devUrn);
log.info(&quot;Device URN: &quot; + devUrn);
// CGS
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setScheme(scheme);
cgs.setPort(Integer.valueOf(port));
String code = cgs.getAccessCode();
log.info(&quot;Got code: &quot; + code);
vars.put(&quot;accessCode&quot;, code);
String tok = null;
try {
tok = cgs.getAccessToken(new CloudGuardURN(devUrn), code,
vars.get(&quot;pmo.user&quot;), vars.get(&quot;pmo.password&quot;));
} catch (Exception ex){
log.info(&quot;Exception: &quot; + ex.getMessage());
log.error(&quot;getAccessToken&quot;, ex);
}
log.info(&quot;Got token: &quot; + tok);
vars.put(&quot;accessToken&quot;, tok);
if (tok != null){
vars.put(&quot;accessTokenEncoded&quot;, java.net.URLEncoder.encode(tok));
}</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree>
<BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="BeanShell Assertion - check token" enabled="true">
<stringProp name="BeanShellAssertion.query">String tok = vars.get(&quot;accessToken&quot;);
log.info(&quot;Checking token: &quot; + tok);
if (tok == null || tok.length() == 0){
Failure = true;
FailureMessage = &quot;Invalid token&quot;;
} else {
Failure = false;
}</stringProp>
<stringProp name="BeanShellAssertion.filename"></stringProp>
<stringProp name="BeanShellAssertion.parameters"></stringProp>
<boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
</BeanShellAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="verifyToken" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="verifyURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">verifyURN</stringProp>
</elementProp>
<elementProp name="verify" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">verify</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/auth/verifyToken</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
</hashTree>
<TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Test Fragment - logout" enabled="true"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="logout" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/auth/logout</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="CG Status" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Resources test" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.Resources;
import com.dt.util.Text;
String s = Resources.getString(&quot;master_build_version_name&quot;);
vars.put(&quot;master_build_version_name&quot;, s);
return s;</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Have string assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">if (!vars.get(&quot;master_build_version_name&quot;)){
AssertionResult.setResultForFailure(&quot;Resources not correctly configured&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="vans" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/vans</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="status - using passphrase" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="passphrase" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${status.passphrase}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">passphrase</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="vanURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${pmo.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">vanURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/status</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">see if CG is alive</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="status - device status" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="vanURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">vanURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/status</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">see if CG is alive</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Smoke test all services" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<stringProp name="TestPlan.comments">Should receive server error from all of these</stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="status (fail access_token)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/status</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 500 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error 500" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="52469">500</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="status (fail token)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/status</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 403 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error 403" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 403 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="status (fail passphrase)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="passphrase" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">passphrase</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/status</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 403 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error 403" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 403 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="deviceStatus (fail token)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/deviceStatus</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 403 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error 403" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 403 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="enroll (fail empty discoveryInfo)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="discoveryInfo" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">discoveryInfo</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/enroll</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="enrolled (fail token)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/enrolled</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 403 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error 403" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 403 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="disenroll (fail token)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/disenroll</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 403 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error 403" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 403 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="create (fail not using POST)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/create</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51513">405</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="create (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/create</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="discover (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/discover</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="discover (fail captcha)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="email" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo@bar.com</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">email</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">bogus</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
<elementProp name="captcha" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">bogusbogusbogus</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">captcha</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/discover</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
<stringProp name="-505001955">X-ExceptionCode:.*EX_CAPTCHA</stringProp>
<stringProp name="0"></stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="discover (fail wrong email/pass)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="email" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo@bar.com</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">email</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">bogus</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
<elementProp name="captcha" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">asdf</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">captcha</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/discover</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="join (fail not using POST)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/join</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51513">405</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="join (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/join</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pmo (fail params)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/pmo</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pmo (fail pmo not found)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="passphrase" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${status.passphrase}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">passphrase</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:000000FE::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/pmo</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 404 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51512">404</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="npmo (fail params)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/npmo</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="update (fail not using POST)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/update</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51513">405</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="update (fail params)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/update</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="provision (fail not using POST)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/provision</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51513">405</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="provision (fail params)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/provision</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="activateDevice (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/activateDevice</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="activateDevice (fail no code)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003:0001:</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/activateDevice</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="activateDevice (fail bad code)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003:0001:</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="activationCode" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">activationCode</stringProp>
</elementProp>
<elementProp name="status" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">disabled</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">status</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/activateDevice</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 500 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="inviteContact (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/inviteContact</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="inviteContact (fail no such user)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:00000003:0001:</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="contact" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">no-such-user-exists</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">contact</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/inviteContact</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="download (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/download</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="removeDevice (fail not using DELETE)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/removeDevice</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51513">405</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="removeDevice (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/removeDevice</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="device (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/device</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="devices (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/devices</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="avatar (fail not using POST)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/avatar</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51513">405</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="avatar (fail not multipart)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/avatar</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51544">415</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="avatar (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/avatar</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="publish (fail not using POST)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/publish</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51513">405</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="publish (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/publish</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="push (fail not using POST)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/push</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51513">405</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="push (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/push</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="subscribe (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/subscribe</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="dispose (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/dispose</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sysstat (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/van/sysstat</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="report (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/van/report</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="track (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/van/track</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="ionu (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/van/ionu</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/delete (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/delete</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/file (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/file</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/metadata (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/metadata</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/mounts (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/mounts</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/nmetadata (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/nmetadata</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Include Exception headers" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="364937374">X-ExceptionClass</stringProp>
<stringProp name="-1381194323">X-ExceptionMessage</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 500 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/upload (fail bad param)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/upload</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Disco" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="requestVanList" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.ds)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.ds.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.ds.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.ds}/disco/requestVanList</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON stash VAN info assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1){
AssertionResult.setResultForFailure(&quot;Expected VANS&quot;);
} else {
var van0 = data.results[0];
var name = van0.name;
var alias = van0.alias;
vars.put(&quot;van.name&quot;, name);
vars.put(&quot;van.alias&quot;, alias);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="requestVanList with messages" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="platform" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">ALL</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">platform</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.ds)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.ds.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.ds}/disco/requestVanList</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON stash VAN info assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1){
AssertionResult.setResultForFailure(&quot;Expected VANS&quot;);
} else {
var van0 = data.results[0];
var name = van0.name;
var alias = van0.alias;
vars.put(&quot;van.name&quot;, name);
vars.put(&quot;van.alias&quot;, alias);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="requestVanList searchObject" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="searchObject" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">{&quot;name&quot;:&quot;DEFAULT VAN&quot;}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">searchObject</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.ds)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.ds.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.ds.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.ds}/disco/requestVanList</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="requestVanInfo" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="vanName" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${van.name}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">vanName</stringProp>
</elementProp>
<elementProp name="vanAlias" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${van.alias}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">vanAlias</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.ds)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.ds.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.ds.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.ds}/disco/requestVanInfo</stringProp>
<<<<<<< HEAD
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="requestVanInfo with messages" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="vanName" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${van.name}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">vanName</stringProp>
</elementProp>
<elementProp name="vanAlias" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${van.alias}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">vanAlias</stringProp>
</elementProp>
<elementProp name="platform" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">ALL</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">platform</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.ds)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.ds.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.ds}/disco/requestVanInfo</stringProp>
=======
>>>>>>> cloud_hotfix/1.2.8.10
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="requestMetaData" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.ds)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.ds.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.ds.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.ds}/disco/requestMetaData</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="fetchMessages" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.ds)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.ds.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.ds.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.ds}/message/fetchMessages</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Disco OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
if (!data.vanSearchType){
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Provision Office" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1366121967000</longProp>
<longProp name="ThreadGroup.end_time">1366121967000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="remove office" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="passphrase" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${status.passphrase}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">passphrase</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="background" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">false</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">background</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/remove</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">remove office if it exists</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="CloudGuardService - createOffice" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
import com.ionu.ijw.client.*;
import org.json.*;
import com.dt.io.*;
import com.dt.util.*;
import java.io.*;
import java.util.*;
try {
log.info(&quot;createOffice BEGINS!&quot;);
com.ionu.EncryptionSupport es = new com.ionu.EncryptionSupport();
es.setupLibIOnU(new java.io.File(&quot;.&quot;), &quot;JMeterIOnU&quot;, null);
log.info(&quot;setupLibIOnU returned&quot;);
// CGS
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;pmo.urn&quot;));
String server = props.get(&quot;test.server&quot;);
String scheme = props.get(&quot;test.server.scheme&quot;);
String port = props.get(&quot;test.server.port&quot;);
log.info(&quot;Using server: &quot; + scheme + server + &quot;:&quot; + port);
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setScheme(scheme);
cgs.setPort(Integer.valueOf(port));
//cgs.setToken(vars.get(&quot;accessToken&quot;));
//cgs.setAuthenticatedDeviceURN(urn);
// need keypair (will use same pair for both pmo and device)
String[] keyPair = EyeGlass.generateKeyPairExternal();
FileUtil.putFile(new File(&quot;officePublicKey-jmeter.pem&quot;), keyPair[1]);
String opkSHA1 = Crypt.sha1(keyPair[1]);
props.put(&quot;officePublicKeySHA1&quot;, opkSHA1); // for subsequent join service
// challenges
String cr1 = vars.get(&quot;pmo.cr1&quot;);
String cr2 = vars.get(&quot;pmo.cr2&quot;);
String cr3 = vars.get(&quot;pmo.cr3&quot;);
String crp = &quot;password::&quot;+vars.get(&quot;pmo.password&quot;);
List list = new ArrayList();
list.add(new ChallengeResponse(cr1));
list.add(new ChallengeResponse(cr2));
list.add(new ChallengeResponse(cr3));
list.add(new ChallengeResponse(crp));
JSONArray challenges = ChallengeResponse.validateChallenges(list);
for (int i=0; i&lt;challenges.length(); i++){
log.info(&quot;cr[&quot; + i + &quot;]: &quot; + challenges.get(i));
}
log.info(&quot;About to invoke pmoCreate...&quot;);
// halfkey
byte[] cghk = EyeGlass.createCloudGuardHalfKey();
log.info(&quot;cghk: &quot; + EyeGlass.dumpKey(cghk));
JSONObject pmo = cgs.pmoCreate(urn,
vars.get(&quot;pmo.user&quot;),
vars.get(&quot;pmo.email&quot;),
&quot;JMeter User&quot;,
&quot;JMeter&quot;,
StorageNodeType.SNT_IOS, // don&apos;t be a bot
cghk,
keyPair[1],
keyPair[1],
challenges,
&quot;asdf&quot;, &quot;sessionId&quot;,
new org.json.JSONObject()
);
log.info(&quot;pmoCreate: &quot; + pmo + &quot; token: &quot; + cgs.getToken() + &quot; urn: &quot; + cgs.getAuthenticatedDeviceURN());
// init office/device
File dot = new File(&quot;.&quot;);
CloudGuardURN devUrn = new CloudGuardURN(pmo.getJSONArray(&quot;devices&quot;).getJSONObject(0).getString(&quot;_id&quot;));
log.info(&quot;resendVerification&quot;);
// good place to test resendVerification is right here
cgs.resendVerification(devUrn, vars.get(&quot;pmo.user&quot;));
// activate
String bypass = vars.get(&quot;activationBypassCode&quot;);
log.info(&quot;activateDevice &quot; + bypass);
cgs.activateDevice(devUrn, bypass, &quot;active&quot;);
// EST
JSONObject prefs = new JSONObject();
prefs.put(&quot;EST&quot;, true);
log.info(&quot;pmoUpdate&quot;);
cgs.pmoUpdate(prefs);
AllServices all = new AllServices(dot, dot);
all.setCloudGuardService(cgs);
log.info(&quot;initializeDevice&quot;);
JSONUtil.setPathValue(pmo, &quot;pmo.publicKey&quot;, keyPair[1]);
JSONUtil.setPathValue(pmo, &quot;pmo.privateKey&quot;, keyPair[0]);
JSONUtil.setPathValue(pmo, &quot;devices[0].publicKey&quot;, keyPair[1]);
JSONUtil.setPathValue(pmo, &quot;devices[0].privateKey&quot;, keyPair[0]);
OfficeService.initializeDevice(cgs, pmo, new File(&quot;jmeter-keyring.iks&quot;),
cghk, list, false);
} catch (Throwable ex){
log.error(&quot;initializeDevice: &quot; + ex.getMessage());
ex.printStackTrace();
throw ex;
}
</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Authenticate" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Office/PMO" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="PMO Services Controller" enabled="true"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="status - device status" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="statusURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">statusURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/status</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">see if CG is alive</stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pmoGet - jmeter test office" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="pmo" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">pmo</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/pmo</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pmoGet - unittest office" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="pmo" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${unittest.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">pmo</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/pmo</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pmoSearch - jmeter user" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="q" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.user}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">q</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/search</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="One Element Array Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length != 1) {
AssertionResult.setResultForFailure(&quot;Expecting 1 result&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pmoSearch - should fail with no results" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="q" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">noSuch__foo_user_blah</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">q</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/search</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Empty Array Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length != 0) {
AssertionResult.setResultForFailure(&quot;Expecting no results&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="devices - jmeter test office" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="pmo" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">pmo</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/devices</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Devices Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.devices.length &lt; 2) {
AssertionResult.setResultForFailure(&quot;Not enough devices; expect JMeter and Browser&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="device - jmeter test office" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="device" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">device</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/device</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Device Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.name != &quot;JMeter&quot;) {
AssertionResult.setResultForFailure(&quot;Wrong device name&quot;);
} else if (data.results[&quot;_id&quot;] != vars.get(&quot;device.urn&quot;)){
AssertionResult.setResultForFailure(&quot;Wrong device _id&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="updateDevice" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="name" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">Phat Device</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">name</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/updateDevice?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}&amp;device=${device.urn}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Device Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.name != &quot;Phat Device&quot;) {
AssertionResult.setResultForFailure(&quot;Wrong device name&quot;);
} else if (data.results[&quot;_id&quot;] != vars.get(&quot;device.urn&quot;)){
AssertionResult.setResultForFailure(&quot;Wrong device _id&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pmoDiscover - jmeter test office" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="email" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.email}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">email</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.password.pbkdf2}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/discover</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Discover Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.user != vars.get(&quot;pmo.user&quot;)) {
AssertionResult.setResultForFailure(&quot;Wrong PMO user&quot;);
} else if (data.results.email.primary != vars.get(&quot;pmo.email&quot;)){
AssertionResult.setResultForFailure(&quot;Wrong PMO email&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pmoJoin - create second test plan device" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="user" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.user}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">user</stringProp>
</elementProp>
<elementProp name="email" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.email}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">email</stringProp>
</elementProp>
<elementProp name="fullname" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">JMeter Functest</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">fullname</stringProp>
</elementProp>
<elementProp name="name" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">JMeter</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">name</stringProp>
</elementProp>
<elementProp name="captcha" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">asdf</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">captcha</stringProp>
</elementProp>
<elementProp name="devicePublicKey" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">foo</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">devicePublicKey</stringProp>
</elementProp>
<elementProp name="cr" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">[&quot;password::${pmo.password.pbkdf2}&quot;, &quot;${pmo.cr1}&quot;, &quot;${pmo.cr2}&quot;, &quot;${pmo.cr3}&quot;]</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">cr</stringProp>
</elementProp>
<elementProp name="type" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">SNT_ROBOT</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">type</stringProp>
</elementProp>
<elementProp name="pkhash" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${__P(officePublicKeySHA1)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">pkhash</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/join?vanURN=${pmo.urn}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Creates another device in jmeter office pmo</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON stash joined device assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.devices.length != 1){
AssertionResult.setResultForFailure(&quot;Expected a single device&quot;);
} else {
var id = data.results.devices[0];
id = id[&quot;_id&quot;];
log.info(&quot;Joined office and created device: &quot; + id);
vars.put(&quot;joined.device&quot;, id);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="removeDevice - remove second test plan device" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="removeURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${joined.device}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">removeURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/removeDevice</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="npmo" enabled="true">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">offices=[{pmo:&apos;urn:ionu:000000:1C3CEEDA::&apos;, v:2}]</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/npmo?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Creates another device in jmeter office pmo</stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="avatar" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/avatar?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
<collectionProp name="HTTPFileArgs.files">
<elementProp name="TimHeadShot.jpg" elementType="HTTPFileArg">
<stringProp name="File.path">TimHeadShot.jpg</stringProp>
<stringProp name="File.paramname">file</stringProp>
<stringProp name="File.mimetype">application/octet-stream</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">upload</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="inviteContact (fail no such user)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="contact" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">no-such-user-exists</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">contact</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/inviteContact</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="inviteContact (nikki)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="contact" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">nikki</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">contact</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/inviteContact</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="VAN track" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="tcat" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">APP</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">tcat</stringProp>
</elementProp>
<elementProp name="dest" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">dest</stringProp>
</elementProp>
<elementProp name="action" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">jmeter-ftw</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">action</stringProp>
</elementProp>
<elementProp name="result" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">result</stringProp>
</elementProp>
<elementProp name="info" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">Foo!</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">info</stringProp>
</elementProp>
<elementProp name="docURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">docURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/van/track?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Artbitrary tracking event</stringProp>
</HTTPSamplerProxy>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Status" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Status Services Controller" enabled="true"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="status - deviceURN" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/status</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="status - pmoURN" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="statusURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">statusURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/status</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="enrolled" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/enrolled</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="One Element Array Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1) {
AssertionResult.setResultForFailure(&quot;Expecting 1 result&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="enroll" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="discoveryInfo" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">{&quot;urn&quot;:&quot;${device.urn}&quot;,&quot;adapters&quot;:[{&quot;name&quot;:&quot;eth0&quot;,&quot;ip&quot;:&quot;192.168.1.119&quot;},{&quot;name&quot;:&quot;ham0&quot;,&quot;ip&quot;:&quot;25.6.82.135&quot;}],&quot;vanRegex&quot;:&quot;.{6}&quot;,&quot;kind&quot;:&quot;test&quot;}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">discoveryInfo</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/enroll</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Results Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.user != vars.get(&quot;device.urn&quot;)){
AssertionResult.setResultForFailure(&quot;Did not see myself in response&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="disenroll" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/disenroll</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Results Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results.deviceUUID){
AssertionResult.setResultForFailure(&quot;Did not see myself in response&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sysstat (fail not admin)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/van/sysstat</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="report (fail not admin)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/van/report</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="track (fail not admin)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/van/report</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="ionu (fail not admin)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/van/ionu</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Search" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Search Services Controller" enabled="true"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="search - deviceURN" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="q" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.user}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">q</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/search</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="search - VAN" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">urn:ionu:000000:::</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="q" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.user}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">q</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/search</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="status - nothing" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="q" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.user}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">q</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/office/search</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="enrolled" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/enrolled</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="One Element Array Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1) {
AssertionResult.setResultForFailure(&quot;Expecting 1 result&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="enroll" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="discoveryInfo" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">{&quot;urn&quot;:&quot;${device.urn}&quot;,&quot;adapters&quot;:[{&quot;name&quot;:&quot;eth0&quot;,&quot;ip&quot;:&quot;192.168.1.119&quot;},{&quot;name&quot;:&quot;ham0&quot;,&quot;ip&quot;:&quot;25.6.82.135&quot;}],&quot;vanRegex&quot;:&quot;.{6}&quot;,&quot;kind&quot;:&quot;test&quot;}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">discoveryInfo</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/enroll</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Results Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.user != vars.get(&quot;device.urn&quot;)){
AssertionResult.setResultForFailure(&quot;Did not see myself in response&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="disenroll" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/status/disenroll</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Results Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results.deviceUUID){
AssertionResult.setResultForFailure(&quot;Did not see myself in response&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="PubSub" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="PubSub Services Controller" enabled="true"/>
<hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Setup PING message" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
PubSubMessage msg = new PubSubMessage(urn, urn);
msg.setAction(PubSubMessage.Action.PING);
msg.setIssueDate(new java.util.Date());
log.info(&quot;Put message: &quot; + msg.toString());
vars.put(&quot;message&quot;, msg.toString());</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="publish/ping" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="message" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${message}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">message</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/publish?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Sleep for 1 seconds" enabled="true">
<stringProp name="ConstantTimer.delay">1000</stringProp>
</ConstantTimer>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="publish/ping 2" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="message" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${message}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">message</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/publish?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Sleep for 1 seconds" enabled="true">
<stringProp name="ConstantTimer.delay">1000</stringProp>
</ConstantTimer>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="publish/ping 3" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="message" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${message}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">message</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/publish?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Sleep for 1 seconds" enabled="true">
<stringProp name="ConstantTimer.delay">1000</stringProp>
</ConstantTimer>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="subscribe/ping" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/subscribe</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Remove any existing testgroup</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Sleep for 1 seconds" enabled="true">
<stringProp name="ConstantTimer.delay">1000</stringProp>
</ConstantTimer>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for PING" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1){
AssertionResult.setResultForFailure(&quot;Expected one result&quot;);
} else {
var msg = null;
for (var i=0; i&lt;data.results.length; i++){
if (data.results[i].action == &quot;PING&quot;){
msg = data.results[i];
vars.put(&quot;message.id&quot;, msg[&quot;msgId&quot;]);
break;
}
}
if (msg == null) AssertionResult.setResultForFailure(&quot;Action is not PING&quot;);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="dispose/ping" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="messageID" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${message.id}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">messageID</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/dispose</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Remove any existing testgroup</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for PING" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;Expected one result&quot;);
} else if (data.results.action != &quot;PING&quot;){
AssertionResult.setResultForFailure(&quot;Action is not PING&quot;);
} else {
var msg = data.results;
vars.put(&quot;message.id&quot;, msg[&quot;_id&quot;]);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="dispose all messages" enabled="true">
<stringProp name="BeanShellSampler.query">
import org.json.*;
import com.ionu.csf.component.*;
import com.ionu.ijw.cg.*;
// libionu
log.info(&quot;disposeAll&quot;);
// CGS
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
String server = props.get(&quot;test.server&quot;);
String scheme = props.get(&quot;test.server.scheme&quot;);
String port = props.get(&quot;test.server.port&quot;);
log.info(&quot;Using server: &quot; + scheme + server + &quot;:&quot; + port);
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setScheme(scheme);
cgs.setPort(Integer.valueOf(port));
cgs.setToken(vars.get(&quot;accessToken&quot;));
cgs.setAuthenticatedDeviceURN(urn);
JSONArray msgs = cgs.subscribeMessages(null, true);
for (int i=0; i&lt;msgs.length(); i++){
PubSubMessage msg = new PubSubMessage(msgs.getJSONObject(i));
cgs.disposeMessage(msg);
}</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Eye" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Eye Services Controller" enabled="true"/>
<hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="compute and shareKeys" enabled="false">
<stringProp name="BeanShellSampler.query">
import org.json.*;
import com.ionu.csf.component.*;
// libionu
log.info(&quot;shareKeys&quot;);
// CGS
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
String server = props.get(&quot;test.server&quot;);
log.info(&quot;Using server: &quot; + server);
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setToken(vars.get(&quot;accessToken&quot;));
cgs.setAuthenticatedDeviceURN(urn);
// The keys
Permissions userPerms = Permissions.createFromOffice(urn);
JSONArray members = new JSONArray();
members.put(urn.toString()); // one member
JSONObject collab = new JSONObject();
JSONArray collabArr = new JSONArray();
JSONObject collabSelf = new JSONObject();
collabSelf.put(&quot;_id&quot;, urn.toString());
collabSelf.put(&quot;publicKey&quot;, EyeGlass.getKey(EyeGlass.OFFICE_PUBLIC_KEY_ALIAS));
collabArr.put(collabSelf);
collab.put(&quot;collab&quot;, collabArr);
JSONArray keys = EyeGlass.computeEncryptedTGIKeys(userPerms.getSignature(urn), members, collab);
userPerms.put(&quot;keys&quot;, keys);
// Let it fly
cgs.shareKeys(userPerms, &quot;share&quot;);
log.info(&quot;keys have been shared&quot;);</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="keys - jmeter test office" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/eye/keys</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure updated keys</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="OK Keys Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results
|| !data.results[0]
|| !data.results[0].sig
|| !data.results[0].owner
|| !data.results[0].key){
AssertionResult.setResultForFailure(&quot;JMeter office does not contain a shared key&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Teams" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Team Services Controller" enabled="true"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="team/remove" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="team" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">testgroup</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">team</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/team/remove</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Remove any existing testgroup</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="team/create" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="team" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">testgroup</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">team</stringProp>
</elementProp>
<elementProp name="type" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">moderated</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">type</stringProp>
</elementProp>
<elementProp name="description" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">JMeter testing</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">description</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/team/create?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion capture team URN" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
var dstr = data;
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results._id){
AssertionResult.setResultForFailure(&quot;Expected one team result&quot;);
} else {
var tu = data.results._id;
vars.put(&quot;teamURN&quot;, tu);
log.info(&quot;teamURN: &quot; + tu);
var upd = &apos;{&quot;_id&quot;:&quot;&apos; + tu + &apos;&quot;, &quot;team&quot;:&quot;testgroup&quot;, &quot;description&quot;:&quot;foo&quot;, &quot;status&quot;:&quot;active&quot;, &quot;type&quot;:&quot;moderated&quot;}&apos;;
vars.put(&quot;teamUpdateJSON&quot;, upd);
log.info(&quot;Put teamUpdateJSON: &quot; + upd);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="team/create (fail duplicate name)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="team" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">testgroup</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">team</stringProp>
</elementProp>
<elementProp name="type" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">moderated</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">type</stringProp>
</elementProp>
<elementProp name="description" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">JMeter testing</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">description</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/team/create?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error 403" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="52469">500</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 403 error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="team/team" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="team" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${teamURN}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">team</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/team/team</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="team/members" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="team" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${teamURN}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">team</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/team/members</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for members" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
var dstr = data;
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1){
AssertionResult.setResultForFailure(&quot;Expected one result&quot;);
} else {
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="team/search" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="q" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">testgroup</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">q</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/team/search</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for members" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
var dstr = data;
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1){
AssertionResult.setResultForFailure(&quot;Expected one result&quot;);
} else {
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="team/search (fail not found)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="q" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">__no__such__team__xyzzy__</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">q</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/team/search</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for data" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
var dstr = data;
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &gt;= 1){
AssertionResult.setResultForFailure(&quot;Expected no results&quot;);
} else {
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="team/sharingGraph" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="team" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${teamURN}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">team</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/team/sharingGraph</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for members" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
var dstr = data;
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1){
AssertionResult.setResultForFailure(&quot;Expected one result&quot;);
} else {
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="team/update" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="json" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${teamUpdateJSON}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">json</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/team/update?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion capture team URN" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
var dstr = data;
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results._id){
AssertionResult.setResultForFailure(&quot;Expected one team result&quot;);
} else {
var tu = data.results._id;
vars.put(&quot;teamURN&quot;, tu);
log.info(&quot;teamURN: &quot; + tu);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="StorageGuard" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true"/>
<hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Create and configure .ionu files" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
import com.ionu.ijw.client.*;
import org.json.*;
import java.io.*;
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
String server = props.get(&quot;test.server&quot;);
String scheme = props.get(&quot;test.server.scheme&quot;);
String port = props.get(&quot;test.server.port&quot;);
log.info(&quot;Using server: &quot; + scheme + server + &quot;:&quot; + port);
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setScheme(scheme);
cgs.setPort(Integer.valueOf(port));
cgs.setToken(vars.get(&quot;accessToken&quot;));
cgs.setAuthenticatedDeviceURN(urn);
OfficeService os = new OfficeService();
os.setCloudGuardService(cgs);
CloudGuardURN dest = new CloudGuardURN(vars.get(&quot;nikki.urn&quot;));
Permissions p = Permissions.createFromCollaborators(new CloudGuardURN[]{urn, dest});
vars.put(&quot;sg.permissions&quot;, p.toString());
String sig = p.getSignature(urn);
vars.put(&quot;sg.signature&quot;, sig);
log.info(&quot;Sig: &quot; + sig + &quot; from perms: &quot; + p);
File f = new File(&quot;sgupload-test.ionu&quot;);
// this is obviously not using real TGI key
EyeGlass e = EyeGlass.encryptString(&quot;test&quot;, &quot;foobar&quot;, f, urn, p, new byte[32]);
vars.put(&quot;sg.path&quot;, java.net.URLEncoder.encode(f.getName()));
vars.put(&quot;renamed.sg.path&quot;, java.net.URLEncoder.encode(&quot;renamed-&quot;+f.getName()));
File fl = new File(&quot;LargeFile.mov&quot;);
// this is obviously not using real TGI key
EyeGlass el = EyeGlass.encryptClearFile(fl, urn, p, new byte[32]);
vars.put(&quot;sg.path.large&quot;, java.net.URLEncoder.encode(fl.getName() + &quot;.ionu&quot;));
// eliza for mount=t/s testing
// need to share keys!!!
/*
CloudGuardURN edest = new CloudGuardURN(vars.get(&quot;eliza.urn&quot;));
Permissions ep = Permissions.createFromCollaborators(new CloudGuardURN[]{urn, edest});
String esig = ep.getSignature(urn);
vars.put(&quot;sg.signature.eliza&quot;, esig);
File ef = new File(&quot;sgupload-test-eliza.ionu&quot;);
// this is obviously not using real TGI key
EyeGlass e = EyeGlass.encryptString(&quot;test&quot;, &quot;foobar&quot;, ef, urn, ep, new byte[32]);
vars.put(&quot;sg.path.eliza&quot;, ef.getName());
*/</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG token" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="cg_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">cg_token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/token</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Save Token Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
log.info(&quot;StorageGuard token: &quot; + data.results.token);
vars.put(&quot;sgAccessToken&quot;, data.results.token);
vars.put(&quot;sgAccessTokenEncoded&quot;, java.net.URLEncoder.encode(data.results.token));
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG status" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="config" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">mounts</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">config</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/status</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} </stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG collaborators" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/collaborators</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results.collab || data.results.collab.length &lt; 1){
AssertionResult.setResultForFailure(&quot;No collaborators&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG mounts" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/mounts</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="One Mount Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results.length){
// allow zero AssertionResult.setResultForFailure(&quot;No mounts&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG upload shared with nikki" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/upload?access_token=${sgAccessTokenEncoded}&amp;mount=t&amp;signature=${sg.signature}&amp;path=${sg.path}&amp;share=true</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
<collectionProp name="HTTPFileArgs.files">
<elementProp name="${sg.path}" elementType="HTTPFileArg">
<stringProp name="File.path">${sg.path}</stringProp>
<stringProp name="File.paramname">file</stringProp>
<stringProp name="File.mimetype">application/octet-stream</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Update testfile.txt.eye to SG</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version || !obj.seq){
AssertionResult.setResultForFailure(&quot;Bad version or seq&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
vars.put(&quot;sgNodeURN&quot;, obj.urn);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG upload to Eliza" enabled="false">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/upload?access_token=${sgAccessTokenEncoded}&amp;mount=t&amp;signature=${sg.signature.eliza}&amp;path=${sg.path.eliza}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
<collectionProp name="HTTPFileArgs.files">
<elementProp name="${sg.path}" elementType="HTTPFileArg">
<stringProp name="File.path">${sg.path}</stringProp>
<stringProp name="File.paramname">file</stringProp>
<stringProp name="File.mimetype">application/octet-stream</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">DISABLED because we don&apos;t currently share keys</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG metadata" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="depth" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">10</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">depth</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/metadata</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || obj.name==null){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version){
AssertionResult.setResultForFailure(&quot;Bad version&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_DIRECTORY&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_DIRECTORY&apos;&quot;);
} else if (!data.results.contents){
AssertionResult.setResultForFailure(&quot;No child folders/files&quot;);
} else {
var firstChild = data.results.contents[0];
log.info(&quot;First child: &quot; + firstChild.path + &quot; &quot; + firstChild.mount + &quot; &quot; + firstChild.type + &quot; &quot; + firstChild.status);
if (!firstChild || !firstChild.path || !firstChild.mount || !firstChild.type || !firstChild.status){
AssertionResult.setResultForFailure(&quot;First child not valid&quot;);
// save path
//vars.put(&quot;path&quot;, firstChild.path);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG nmetadata" enabled="true">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">pathinfo=[{&quot;path&quot;:&quot;/&quot;,&quot;signature&quot;:&quot;${sg.signature}&quot;,&quot;hash&quot;:&quot;0&quot;}]</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/nmetadata?access_token=${sgAccessTokenEncoded}&amp;mount=t&amp;depth=1</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results.contents[0];
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || obj.name==null){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version){
AssertionResult.setResultForFailure(&quot;Bad version&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG nmetadata - FileNotFound" enabled="true">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">pathinfo=[{&quot;path&quot;:&quot;/mojo-nixon-is-a-booger-eating-moron.ionu&quot;,&quot;signature&quot;:&quot;${sg.signature}&quot;,&quot;hash&quot;:&quot;0&quot;}]</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/nmetadata?access_token=${sgAccessTokenEncoded}&amp;mount=t&amp;depth=1</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results.contents[0];
if (obj.type != &apos;SNT_UNKNOWN&apos;){
AssertionResult.setResultForFailure(&quot;Bad type&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG metadata by URN" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="docURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgNodeURN}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">docURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/metadata</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version || !obj.seq){
AssertionResult.setResultForFailure(&quot;Bad version or seq&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata File Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_FILE&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_FILE&apos;&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG file" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${sg.path}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/file</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResultSaver guiclass="ResultSaverGui" testclass="ResultSaver" testname="Save Response to file" enabled="true">
<stringProp name="FileSaver.filename">test.txt.ionu-downloaded</stringProp>
<boolProp name="FileSaver.errorsonly">false</boolProp>
<boolProp name="FileSaver.skipautonumber">true</boolProp>
<boolProp name="FileSaver.skipsuffix">true</boolProp>
<boolProp name="FileSaver.successonly">true</boolProp>
</ResultSaver>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG rename" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="newPath" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${renamed.sg.path}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">newPath</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/rename?access_token=${sgAccessTokenEncoded}&amp;docURN=${sgNodeURN}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version || !obj.seq){
AssertionResult.setResultForFailure(&quot;Bad version or seq&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
vars.put(&quot;sgNodeURN&quot;, obj.urn);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata File Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_FILE&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_FILE&apos;&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG metadata" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="depth" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">10</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">depth</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/metadata</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || obj.name==null){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version){
AssertionResult.setResultForFailure(&quot;Bad version&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_DIRECTORY&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_DIRECTORY&apos;&quot;);
} else if (!data.results.contents){
AssertionResult.setResultForFailure(&quot;No child folders/files&quot;);
} else {
var firstChild = data.results.contents[0];
log.info(&quot;First child: &quot; + firstChild.path + &quot; &quot; + firstChild.mount + &quot; &quot; + firstChild.type + &quot; &quot; + firstChild.status);
if (!firstChild || !firstChild.path || !firstChild.mount || !firstChild.type || !firstChild.status){
AssertionResult.setResultForFailure(&quot;First child not valid&quot;);
// save path
//vars.put(&quot;path&quot;, firstChild.path);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG delete" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="docURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgNodeURN}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">docURN</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/delete</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version || !obj.seq){
AssertionResult.setResultForFailure(&quot;Bad version or seq&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
vars.put(&quot;sgNodeURN&quot;, obj.urn);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata File Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_FILE&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_FILE&apos;&quot;);
} else if (data.results.status != &apos;deleted&apos;){
AssertionResult.setResultForFailure(&quot;data.results.status is not deleted&quot;);
} else if (!data.results.deleted){
AssertionResult.setResultForFailure(&quot;data.results.status is not deleted&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG upload by docURN after delete" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/upload?access_token=${sgAccessTokenEncoded}&amp;docURN=${sgNodeURN}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
<collectionProp name="HTTPFileArgs.files">
<elementProp name="${sg.path}" elementType="HTTPFileArg">
<stringProp name="File.path">${sg.path}</stringProp>
<stringProp name="File.paramname">file</stringProp>
<stringProp name="File.mimetype">application/octet-stream</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Update testfile.txt.eye to SG</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version || !obj.seq){
AssertionResult.setResultForFailure(&quot;Bad version or seq&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
vars.put(&quot;sgNodeURN&quot;, obj.urn);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG mkdir /foodir" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">/foodir</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
<elementProp name="permissions" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${sg.permissions}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">permissions</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/mkdir?access_token=${sgAccessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || obj.name==null){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version){
AssertionResult.setResultForFailure(&quot;Bad version&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_DIRECTORY&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_DIRECTORY&apos;&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG mkdir /bardir" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">/bardir</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
<elementProp name="permissions" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${sg.permissions}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">permissions</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/mkdir?access_token=${sgAccessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || obj.name==null){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version){
AssertionResult.setResultForFailure(&quot;Bad version&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_DIRECTORY&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_DIRECTORY&apos;&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG metadata /foodir" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/foodir</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="depth" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">10</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">depth</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/metadata</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || obj.name==null){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version){
AssertionResult.setResultForFailure(&quot;Bad version&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_DIRECTORY&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_DIRECTORY&apos;&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG upload to /foodir" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/upload?access_token=${sgAccessTokenEncoded}&amp;mount=t&amp;signature=${sg.signature}&amp;path=/foodir/${sg.path}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
<collectionProp name="HTTPFileArgs.files">
<elementProp name="${sg.path}" elementType="HTTPFileArg">
<stringProp name="File.path">${sg.path}</stringProp>
<stringProp name="File.paramname">file</stringProp>
<stringProp name="File.mimetype">application/octet-stream</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Update testfile.txt.eye to SG</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version || !obj.seq){
AssertionResult.setResultForFailure(&quot;Bad version or seq&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
vars.put(&quot;sgNodeURN&quot;, obj.urn);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG upload LARGE to /foodir" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/upload?access_token=${sgAccessTokenEncoded}&amp;mount=t&amp;signature=${sg.signature}&amp;path=/foodir/${sg.path.large}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
<collectionProp name="HTTPFileArgs.files">
<elementProp name="${sg.path.large}" elementType="HTTPFileArg">
<stringProp name="File.path">${sg.path.large}</stringProp>
<stringProp name="File.paramname">file</stringProp>
<stringProp name="File.mimetype">application/octet-stream</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Update testfile.txt.eye to SG</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version || !obj.seq){
AssertionResult.setResultForFailure(&quot;Bad version or seq&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
vars.put(&quot;sgNodeURN&quot;, obj.urn);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG file /foodir/file" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/foodir/${sg.path}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/file</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResultSaver guiclass="ResultSaverGui" testclass="ResultSaver" testname="Save Response to file" enabled="true">
<stringProp name="FileSaver.filename">test.txt.ionu-downloaded</stringProp>
<boolProp name="FileSaver.errorsonly">false</boolProp>
<boolProp name="FileSaver.skipautonumber">true</boolProp>
<boolProp name="FileSaver.skipsuffix">true</boolProp>
<boolProp name="FileSaver.successonly">true</boolProp>
</ResultSaver>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG metadata" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="depth" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">10</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">depth</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/metadata</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || obj.name==null){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version){
AssertionResult.setResultForFailure(&quot;Bad version&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_DIRECTORY&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_DIRECTORY&apos;&quot;);
} else if (!data.results.contents){
AssertionResult.setResultForFailure(&quot;No child folders/files&quot;);
} else {
var firstChild = data.results.contents[0];
log.info(&quot;First child: &quot; + firstChild.path + &quot; &quot; + firstChild.mount + &quot; &quot; + firstChild.type + &quot; &quot; + firstChild.status);
if (!firstChild || !firstChild.path || !firstChild.mount || !firstChild.type || !firstChild.status){
AssertionResult.setResultForFailure(&quot;First child not valid&quot;);
// save path
//vars.put(&quot;path&quot;, firstChild.path);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG rename/move /foodir/file to /bardir" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="newPath" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/bardir/${sg.path}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">newPath</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/rename?access_token=${sgAccessTokenEncoded}&amp;mount=t&amp;signature=${sg.signature}&amp;path=/foodir/${sg.path}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version || !obj.seq){
AssertionResult.setResultForFailure(&quot;Bad version or seq&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
vars.put(&quot;sgNodeURN&quot;, obj.urn);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata File Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_FILE&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_FILE&apos;&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG metadata verify parent dirhash" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="depth" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">10</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">depth</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/metadata</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || obj.name==null){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version){
AssertionResult.setResultForFailure(&quot;Bad version&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_DIRECTORY&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_DIRECTORY&apos;&quot;);
} else if (!data.results.contents){
AssertionResult.setResultForFailure(&quot;No child folders/files&quot;);
} else {
var firstChild = data.results.contents[0];
log.info(&quot;First child: &quot; + firstChild.path + &quot; &quot; + firstChild.mount + &quot; &quot; + firstChild.type + &quot; &quot; + firstChild.status);
if (!firstChild || !firstChild.path || !firstChild.mount || !firstChild.type || !firstChild.status){
AssertionResult.setResultForFailure(&quot;First child not valid&quot;);
// save path
//vars.put(&quot;path&quot;, firstChild.path);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG file /bardir/file" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/bardir/${sg.path}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/file</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResultSaver guiclass="ResultSaverGui" testclass="ResultSaver" testname="Save Response to file" enabled="true">
<stringProp name="FileSaver.filename">test.txt.ionu-downloaded</stringProp>
<boolProp name="FileSaver.errorsonly">false</boolProp>
<boolProp name="FileSaver.skipautonumber">true</boolProp>
<boolProp name="FileSaver.skipsuffix">true</boolProp>
<boolProp name="FileSaver.successonly">true</boolProp>
</ResultSaver>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG delete /bardir/file" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/bardir/${sg.path}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/delete</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.version || !obj.seq){
AssertionResult.setResultForFailure(&quot;Bad version or seq&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
vars.put(&quot;sgNodeURN&quot;, obj.urn);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata File Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_FILE&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_FILE&apos;&quot;);
} else if (data.results.status != &apos;deleted&apos;){
AssertionResult.setResultForFailure(&quot;data.results.status is not deleted&quot;);
} else if (!data.results.deleted){
AssertionResult.setResultForFailure(&quot;data.results.status is not deleted&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG delete /mojodir" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/mojodir</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/delete</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG rename /foodir /mojodir" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="newPath" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/mojodir</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">newPath</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/rename?access_token=${sgAccessTokenEncoded}&amp;mount=t&amp;signature=${sg.signature}&amp;path=/foodir</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || !obj.name){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
vars.put(&quot;sgNodeURN&quot;, obj.urn);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_DIRECTORY&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_DIRECTORY&apos;&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SG metadata verify /mojodir hash" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">/</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
<elementProp name="mount" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">t</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">mount</stringProp>
</elementProp>
<elementProp name="depth" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">10</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">depth</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sg.signature}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout">10000</stringProp>
<stringProp name="HTTPSampler.response_timeout">20000</stringProp>
<stringProp name="HTTPSampler.protocol">${__P(test.server.sg.scheme)}</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/metadata</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Insure that shared path just added is returned</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Result Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else {
var obj = data.results;
if (!obj.van || obj.mount != &quot;t&quot; || !obj.signature || !obj.path ){
AssertionResult.setResultForFailure(&quot;Bad result van, mount, signature or path&quot;);
}
if (!obj.urn){
AssertionResult.setResultForFailure(&quot;Bad urn&quot;);
}
if (!obj.folder || obj.name==null){
AssertionResult.setResultForFailure(&quot;Bad folder or name&quot;);
}
if (!obj.mtime || !obj.utime){
AssertionResult.setResultForFailure(&quot;Bad mtime or utime&quot;);
}
if (!obj.mimetype){
AssertionResult.setResultForFailure(&quot;Bad mimetype&quot;);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Metadata Directory Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;No results&quot;);
} else if (!data.results.mount || !data.results.path || !data.results.status || !data.results.type){
AssertionResult.setResultForFailure(&quot;Result data incomplete&quot;);
} else if (data.results.type != &apos;SNT_REMOTE_DIRECTORY&apos;){
AssertionResult.setResultForFailure(&quot;data.results.type is not &apos;SNT_REMOTE_DIRECTORY&apos;&quot;);
} else if (!data.results.contents){
AssertionResult.setResultForFailure(&quot;No child folders/files&quot;);
} else {
var firstChild = data.results.contents[0];
log.info(&quot;First child: &quot; + firstChild.path + &quot; &quot; + firstChild.mount + &quot; &quot; + firstChild.type + &quot; &quot; + firstChild.status);
if (!firstChild || !firstChild.path || !firstChild.mount || !firstChild.type || !firstChild.status){
AssertionResult.setResultForFailure(&quot;First child not valid&quot;);
// save path
//vars.put(&quot;path&quot;, firstChild.path);
}
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/delete (fail no signature)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/delete</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51508">400</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/delete (fail not found)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">123456789ABC</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">/foo.ionu</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/delete</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51512">404</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/file (fail not found)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">123456789ABC</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">/foo.ionu</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/file</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51512">404</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/metadata (fail not found)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="access_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${sgAccessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">access_token</stringProp>
</elementProp>
<elementProp name="signature" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">123456789ABC</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">signature</stringProp>
</elementProp>
<elementProp name="path" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">/foo.ionu</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">path</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/metadata</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51512">404</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="sg/upload (fail not .ionu file)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${__P(test.server.sg)}</stringProp>
<stringProp name="HTTPSampler.port">${__P(test.server.sg.port)}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context.sg}/upload?access_token=${sgAccessTokenEncoded}&amp;signature=123456789ABC&amp;path=/lt-gui.sh</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
<collectionProp name="HTTPFileArgs.files">
<elementProp name="/Users/tim/Development/daisy-svn/daisy-svn.ws/ionu-ws-tests/lt-gui.sh" elementType="HTTPFileArg">
<stringProp name="File.path">/Users/tim/Development/daisy-svn/daisy-svn.ws/ionu-ws-tests/lt-gui.sh</stringProp>
<stringProp name="File.paramname">file</stringProp>
<stringProp name="File.mimetype">application/octet-stream</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51544">415</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="false">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Nikki" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1370881794000</longProp>
<longProp name="ThreadGroup.end_time">1370881794000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<stringProp name="TestPlan.comments">Nikki better be running against test.server ;)</stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Nikki Services Controller" enabled="true"/>
<hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Verify Collaborator file" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
import com.ionu.ijw.client.*;
import org.json.*;
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
String server = props.get(&quot;test.server&quot;);
String scheme = props.get(&quot;test.server.scheme&quot;);
String port = props.get(&quot;test.server.port&quot;);
log.info(&quot;Using server: &quot; + scheme + server + &quot;:&quot; + port);
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setScheme(scheme);
cgs.setPort(Integer.valueOf(port));
cgs.setToken(vars.get(&quot;accessToken&quot;));
cgs.setAuthenticatedDeviceURN(urn);
OfficeService os = new OfficeService();
os.setCloudGuardService(cgs);
try {
JSONObject obj = os.getCollaborators(false);
} catch (Throwable ex){
log.error(&quot;getCollaborators: &quot; + ex.getMessage());
ex.printStackTrace();
throw ex;
}</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Setup Nikki COLLABORATE message" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
CloudGuardURN dest = new CloudGuardURN(vars.get(&quot;nikki.urn&quot;));
PubSubMessage msg = new PubSubMessage(urn, dest);
msg.setAction(PubSubMessage.Action.COLLABORATE_REQUEST);
msg.setIssueDate(new java.util.Date());
log.info(&quot;Put message: &quot; + msg.toString());
vars.put(&quot;message&quot;, msg.toString());</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="COLLABORATE_REQUEST Nikki" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="message" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${message}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">message</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/publish?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Verify Collaborator file" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
import com.ionu.ijw.client.*;
import org.json.*;
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
String server = props.get(&quot;test.server&quot;);
String scheme = props.get(&quot;test.server.scheme&quot;);
String port = props.get(&quot;test.server.port&quot;);
log.info(&quot;Using server: &quot; + scheme + server + &quot;:&quot; + port);
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setScheme(scheme);
cgs.setPort(Integer.valueOf(port));
cgs.setToken(vars.get(&quot;accessToken&quot;));
cgs.setAuthenticatedDeviceURN(urn);
OfficeService os = new OfficeService();
os.setCloudGuardService(cgs);
try {
JSONObject obj = os.getCollaborators(false);
} catch (Throwable ex){
log.error(&quot;getCollaborators: &quot; + ex.getMessage());
ex.printStackTrace();
throw ex;
}</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="subscribe Nikki COLLABORATE_REPLY" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/subscribe</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for COLLABORATE_REPLY" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
var dstr = data;
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1){
AssertionResult.setResultForFailure(&quot;Expected one result&quot;);
} else {
var msg = null;
for (var i=0; i&lt;data.results.length; i++){
if (data.results[i].action == &quot;COLLABORATE_REPLY&quot; &amp;&amp; data.results[i].source.match(/urn:ionu:000000:00000003/)){
msg = data.results[i];
vars.put(&quot;message.id&quot;, msg[&quot;msgId&quot;]);
vars.put(&quot;collab.data&quot;, dstr);
break;
}
}
if (msg == null) AssertionResult.setResultForFailure(&quot;Action is not COLLABORATE_REPLY&quot;);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Sleep " enabled="true">
<stringProp name="ConstantTimer.delay">10000</stringProp>
</ConstantTimer>
<hashTree/>
</hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Add Nikki as Collaborator" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
import com.ionu.ijw.client.*;
import org.json.*;
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
String server = props.get(&quot;test.server&quot;);
String scheme = props.get(&quot;test.server.scheme&quot;);
String port = props.get(&quot;test.server.port&quot;);
log.info(&quot;Using server: &quot; + scheme + server + &quot;:&quot; + port);
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setScheme(scheme);
cgs.setPort(Integer.valueOf(port));
cgs.setToken(vars.get(&quot;accessToken&quot;));
cgs.setAuthenticatedDeviceURN(urn);
OfficeService os = new OfficeService();
os.setCloudGuardService(cgs);
String cmsg = (String)vars.get(&quot;collab.data&quot;);
log.info(&quot;cmsg: &quot; + cmsg);
JSONObject j = new JSONObject(cmsg);
j = j.getJSONArray(&quot;results&quot;).getJSONObject(0);
PubSubMessage m = new PubSubMessage(j);
log.info(&quot;About to invoke collaborate: &quot; + m);
try {
os.collaborate(m.getSource(), m.getMessageIdentifier(), null, &quot;active&quot;, true, false);
} catch (Throwable ex){
log.error(&quot;collaborate: &quot; + ex.getMessage());
ex.printStackTrace();
throw ex;
}</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="dispose" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="messageID" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${message.id}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">messageID</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/dispose</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Collab</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for REPLY" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;Expected one result&quot;);
} else if (data.results.action != &quot;COLLABORATE_REPLY&quot;){
AssertionResult.setResultForFailure(&quot;Action is not COLLABORATE_REPLY&quot;);
} else {
var msg = data.results;
vars.put(&quot;message.id&quot;, msg[&quot;_id&quot;]);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Send Nikki SHARE message" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
import com.ionu.ijw.client.*;
import org.json.*;
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
CloudGuardURN dest = new CloudGuardURN(vars.get(&quot;nikki.urn&quot;));
String server = props.get(&quot;test.server&quot;);
String scheme = props.get(&quot;test.server.scheme&quot;);
String port = props.get(&quot;test.server.port&quot;);
log.info(&quot;Using server: &quot; + scheme + server + &quot;:&quot; + port);
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setScheme(scheme);
cgs.setPort(Integer.valueOf(port));
cgs.setToken(vars.get(&quot;accessToken&quot;));
cgs.setAuthenticatedDeviceURN(urn);
try {
JSONObject ci = new JSONObject();
ci.put(&quot;collab_type&quot;, &quot;office&quot;);
ci.put(&quot;publicKey&quot;, &quot;&quot;);
ci.put(&quot;messageIdentifier&quot;, &quot;&quot;);
ci.put(&quot;_id&quot;, dest.as(CloudGuardURN.URN_TYPE.PMO).toString());
PubSubMessage msg = ChatService.sendChatMessage(cgs, ci, null, new Object[]{&quot;JMeter says hello&quot;});
log.info(&quot;Put message: &quot; + msg);
vars.put(&quot;message&quot;, msg.toString());
} catch (Throwable ex){
log.error(&quot;sendChat: &quot; + ex.getMessage());
ex.printStackTrace();
throw ex;
}
</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="subscribe Nikki SHARE REPLY" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/subscribe</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Sleep " enabled="true">
<stringProp name="ConstantTimer.delay">5000</stringProp>
</ConstantTimer>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for SHARE" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (data.results.length &lt; 1){
AssertionResult.setResultForFailure(&quot;Expected one result&quot;);
} else {
var msg = null;
for (var i=0; i&lt;data.results.length; i++){
if (data.results[i].action == &quot;SHARE&quot; &amp;&amp; data.results[i].source.match(/urn:ionu:000000:00000003/)){
msg = data.results[i];
vars.put(&quot;message.id&quot;, msg[&quot;msgId&quot;]);
break;
}
}
if (msg == null) AssertionResult.setResultForFailure(&quot;Action is not SHARE&quot;);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="dispose" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="messageID" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${message.id}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">messageID</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/dispose</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Share</stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion check for REPLY" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
} else if (!data.results){
AssertionResult.setResultForFailure(&quot;Expected one result&quot;);
} else if (data.results.action != &quot;SHARE&quot;){
AssertionResult.setResultForFailure(&quot;Action is not SHARE&quot;);
} else {
var msg = data.results;
vars.put(&quot;message.id&quot;, msg[&quot;_id&quot;]);
}
</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Web Pages" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Page Controller" enabled="true"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="office.jsp" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/cgws/office.jsp</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<HTMLAssertion guiclass="HTMLAssertionGui" testclass="HTMLAssertion" testname="HTML Assertion" enabled="true">
<stringProp name="TestPlan.comments">Should get the office page</stringProp>
<longProp name="html_assertion_error_threshold">1</longProp>
<longProp name="html_assertion_warning_threshold">30</longProp>
<stringProp name="html_assertion_doctype">omit</stringProp>
<boolProp name="html_assertion_errorsonly">false</boolProp>
<longProp name="html_assertion_format">0</longProp>
<stringProp name="html_assertion_filename">office-page.txt</stringProp>
</HTMLAssertion>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="PubSub Spam the Hell out of CG" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="PubSub Services Controller" enabled="true"/>
<hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Setup SHARE message to Nikki" enabled="true">
<stringProp name="BeanShellSampler.query">import com.ionu.csf.component.*;
import org.json.*;
CloudGuardURN src = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
CloudGuardURN dest = new CloudGuardURN(vars.get(&quot;nikki.urn&quot;));
PubSubMessage msg = new PubSubMessage(src, dest);
msg.setAction(PubSubMessage.Action.SHARE);
msg.setIssueDate(new java.util.Date());
msg.setMessageIdentifier(&quot;SPAMMY-JMETER-SHARE&quot;);
JSONObject ad = new JSONObject();
ad.put(&quot;mount&quot;, &quot;t&quot;);
ad.put(&quot;path&quot;, &quot;/no-such-file.txt.ionu&quot;);
ad.put(&quot;signature&quot;, &quot;00000000&quot;);
msg.setActionData(ad);
log.info(&quot;Put message: &quot; + msg.toString());
vars.put(&quot;message&quot;, msg.toString());</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller: Publish X SHARE&apos;s" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
<stringProp name="LoopController.loops">20</stringProp>
</LoopController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="publish/share" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="message" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${message}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">message</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/pubsub/publish?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Sleep for 1 seconds" enabled="true">
<stringProp name="ConstantTimer.delay">1000</stringProp>
</ConstantTimer>
<hashTree/>
</hashTree>
</hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="dispose all messages" enabled="true">
<stringProp name="BeanShellSampler.query">
import org.json.*;
import com.ionu.csf.component.*;
import com.ionu.ijw.cg.*;
// libionu
log.info(&quot;disposeAll&quot;);
// CGS
CloudGuardURN urn = new CloudGuardURN(vars.get(&quot;device.urn&quot;));
String server = props.get(&quot;test.server&quot;);
String scheme = props.get(&quot;test.server.scheme&quot;);
String port = props.get(&quot;test.server.port&quot;);
log.info(&quot;Using server: &quot; + scheme + server + &quot;:&quot; + port);
com.ionu.ijw.cg.CloudGuardService cgs = new com.ionu.ijw.cg.CloudGuardService();
cgs.setHost(server);
cgs.setScheme(scheme);
cgs.setPort(Integer.valueOf(port));
cgs.setToken(vars.get(&quot;accessToken&quot;));
cgs.setAuthenticatedDeviceURN(urn);
JSONArray msgs = cgs.subscribeMessages(null, true);
for (int i=0; i&lt;msgs.length(); i++){
PubSubMessage msg = new PubSubMessage(msgs.getJSONObject(i));
cgs.disposeMessage(msg);
}</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call logout" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-1005376353">Test Fragment - logout</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Password" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1295640284000</longProp>
<longProp name="ThreadGroup.end_time">1295640284000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller - call authenticate" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="-1227702913">WorkBench</stringProp>
<stringProp name="508666367">CloudGuard Functional Test</stringProp>
<stringProp name="-845977678">Test Fragment - authenticate (reuse in multiple thread groups)</stringProp>
</collectionProp>
</ModuleController>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Reset Controller" enabled="true"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="passwordChange (wrong current password)" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="oldPassword" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">nottherightpassword</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">oldPassword</stringProp>
</elementProp>
<elementProp name="newPassword" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.password}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">newPassword</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/auth/passwordChange?deviceURN=${device.urn}&amp;token=${accessTokenEncoded}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Should fail with 400 server error</stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion Server Error " enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="51511">403</stringProp>
</collectionProp>
<stringProp name="TestPlan.comments">Expect 4xx/5xx error </stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="requestPasswordReset" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="email" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.email}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">email</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/auth/requestPasswordReset</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Get reset code Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
if (data.code == 200){
var rcode = data.results.passwordResetCode;
var rexp = data.results.passwordResetExpires;
if (!rcode || !rexp){
AssertionResult.setResultForFailure(&quot;No reset code/expires&quot;);
}
vars.put(&quot;passwordResetCode&quot;, rcode);
vars.put(&quot;passwordResetExpires&quot;, rexp);
} else {
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="confirmPasswordReset - email link page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="code" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${passwordResetCode}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">code</stringProp>
</elementProp>
<elementProp name="email" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.email}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">email</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/auth/confirmPasswordReset</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<HTMLAssertion guiclass="HTMLAssertionGui" testclass="HTMLAssertion" testname="HTML Assertion (allow two nav/section errors)" enabled="true">
<stringProp name="TestPlan.comments">Should get the office page</stringProp>
<longProp name="html_assertion_error_threshold">2</longProp>
<longProp name="html_assertion_warning_threshold">30</longProp>
<stringProp name="html_assertion_doctype">omit</stringProp>
<boolProp name="html_assertion_errorsonly">false</boolProp>
<longProp name="html_assertion_format">0</longProp>
<stringProp name="html_assertion_filename">password-reset-tidy.txt</stringProp>
</HTMLAssertion>
<hashTree/>
<ResultSaver guiclass="ResultSaverGui" testclass="ResultSaver" testname="Save Responses to a file" enabled="true">
<stringProp name="FileSaver.filename">confirmPassReset</stringProp>
<boolProp name="FileSaver.errorsonly">false</boolProp>
<boolProp name="FileSaver.skipautonumber">false</boolProp>
<boolProp name="FileSaver.skipsuffix">false</boolProp>
<boolProp name="FileSaver.successonly">false</boolProp>
</ResultSaver>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="confirmPasswordReset - set new password" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="deviceURN" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${device.urn}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">deviceURN</stringProp>
</elementProp>
<elementProp name="token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${accessToken}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">token</stringProp>
</elementProp>
<elementProp name="code" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${passwordResetCode}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">code</stringProp>
</elementProp>
<elementProp name="email" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.email}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">email</stringProp>
</elementProp>
<elementProp name="newPasswordHash" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${pmo.newPassword.sha}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">newPasswordHash</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${service.context}/auth/confirmPasswordReset</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSON OK Assertion" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">var data = SampleResult.getResponseDataAsString();
log.info(&quot;data: &quot; + data);
data = eval(&apos;(&apos;+data+&apos;)&apos;);
log.info(data.code);
if (data.code!=200){
AssertionResult.setResultForFailure(&quot;OK status not returned&quot;);
}</stringProp>
<stringProp name="scriptLanguage">javascript</stringProp>
<stringProp name="cacheKey"></stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>