lookup_table_sql.jmx 67 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. ~ Copyright 2022 EMQ Technologies Co., Ltd.
  4. ~
  5. ~ Licensed under the Apache License, Version 2.0 (the "License");
  6. ~ you may not use this file except in compliance with the License.
  7. ~ You may obtain a copy of the License at
  8. ~
  9. ~ http://www.apache.org/licenses/LICENSE-2.0
  10. ~
  11. ~ Unless required by applicable law or agreed to in writing, software
  12. ~ distributed under the License is distributed on an "AS IS" BASIS,
  13. ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. ~ See the License for the specific language governing permissions and
  15. ~ limitations under the License.
  16. -->
  17. <jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3">
  18. <hashTree>
  19. <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
  20. <stringProp name="TestPlan.comments"></stringProp>
  21. <boolProp name="TestPlan.functional_mode">false</boolProp>
  22. <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
  23. <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
  24. <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  25. <collectionProp name="Arguments.arguments"/>
  26. </elementProp>
  27. <stringProp name="TestPlan.user_define_classpath"></stringProp>
  28. </TestPlan>
  29. <hashTree>
  30. <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  31. <collectionProp name="Arguments.arguments">
  32. <elementProp name="srv" elementType="Argument">
  33. <stringProp name="Argument.name">srv</stringProp>
  34. <stringProp name="Argument.value">127.0.0.1</stringProp>
  35. <stringProp name="Argument.metadata">=</stringProp>
  36. </elementProp>
  37. <elementProp name="rest_port" elementType="Argument">
  38. <stringProp name="Argument.name">rest_port</stringProp>
  39. <stringProp name="Argument.value">9081</stringProp>
  40. <stringProp name="Argument.metadata">=</stringProp>
  41. </elementProp>
  42. <elementProp name="mqtt_srv" elementType="Argument">
  43. <stringProp name="Argument.name">mqtt_srv</stringProp>
  44. <stringProp name="Argument.value">127.0.0.1</stringProp>
  45. <stringProp name="Argument.metadata">=</stringProp>
  46. </elementProp>
  47. </collectionProp>
  48. </Arguments>
  49. <hashTree/>
  50. <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Rules" enabled="true">
  51. <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  52. <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
  53. <boolProp name="LoopController.continue_forever">false</boolProp>
  54. <stringProp name="LoopController.loops">1</stringProp>
  55. </elementProp>
  56. <stringProp name="ThreadGroup.num_threads">1</stringProp>
  57. <stringProp name="ThreadGroup.ramp_time">1</stringProp>
  58. <boolProp name="ThreadGroup.scheduler">false</boolProp>
  59. <stringProp name="ThreadGroup.duration"></stringProp>
  60. <stringProp name="ThreadGroup.delay"></stringProp>
  61. <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
  62. </ThreadGroup>
  63. <hashTree>
  64. <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
  65. <boolProp name="ResultCollector.error_logging">false</boolProp>
  66. <objProp>
  67. <name>saveConfig</name>
  68. <value class="SampleSaveConfiguration">
  69. <time>true</time>
  70. <latency>true</latency>
  71. <timestamp>true</timestamp>
  72. <success>true</success>
  73. <label>true</label>
  74. <code>true</code>
  75. <message>true</message>
  76. <threadName>true</threadName>
  77. <dataType>true</dataType>
  78. <encoding>false</encoding>
  79. <assertions>true</assertions>
  80. <subresults>true</subresults>
  81. <responseData>false</responseData>
  82. <samplerData>false</samplerData>
  83. <xml>false</xml>
  84. <fieldNames>true</fieldNames>
  85. <responseHeaders>false</responseHeaders>
  86. <requestHeaders>false</requestHeaders>
  87. <responseDataOnError>false</responseDataOnError>
  88. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  89. <assertionsResultsToSave>0</assertionsResultsToSave>
  90. <bytes>true</bytes>
  91. <sentBytes>true</sentBytes>
  92. <threadCounts>true</threadCounts>
  93. <idleTime>true</idleTime>
  94. <connectTime>true</connectTime>
  95. </value>
  96. </objProp>
  97. <stringProp name="filename"></stringProp>
  98. </ResultCollector>
  99. <hashTree/>
  100. <TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="API" enabled="true">
  101. <boolProp name="TransactionController.includeTimers">false</boolProp>
  102. <boolProp name="TransactionController.parent">false</boolProp>
  103. </TransactionController>
  104. <hashTree>
  105. <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="MQTT Connect" enabled="true">
  106. <stringProp name="mqtt.server">${mqtt_srv}</stringProp>
  107. <stringProp name="mqtt.port">1883</stringProp>
  108. <stringProp name="mqtt.version">3.1</stringProp>
  109. <stringProp name="mqtt.conn_timeout">10</stringProp>
  110. <boolProp name="mqtt.private_protocol">false</boolProp>
  111. <stringProp name="mqtt.listener_timeout">10</stringProp>
  112. <stringProp name="mqtt.protocol">TCP</stringProp>
  113. <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
  114. <stringProp name="mqtt.keystore_file_path"></stringProp>
  115. <stringProp name="mqtt.keystore_password"></stringProp>
  116. <stringProp name="mqtt.clientcert_file_path"></stringProp>
  117. <stringProp name="mqtt.clientcert_password"></stringProp>
  118. <stringProp name="mqtt.user_name"></stringProp>
  119. <stringProp name="mqtt.password"></stringProp>
  120. <stringProp name="mqtt.client_id_prefix">conn_</stringProp>
  121. <boolProp name="mqtt.client_id_suffix">true</boolProp>
  122. <stringProp name="mqtt.conn_keep_alive">300</stringProp>
  123. <stringProp name="mqtt.conn_attampt_max">0</stringProp>
  124. <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
  125. <boolProp name="mqtt.conn_clean_session">true</boolProp>
  126. </net.xmeter.samplers.ConnectSampler>
  127. <hashTree/>
  128. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="AddSourcePlugin" enabled="true">
  129. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  130. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  131. <collectionProp name="Arguments.arguments">
  132. <elementProp name="" elementType="HTTPArgument">
  133. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  134. <stringProp name="Argument.value">{&#xd;
  135. &quot;name&quot;:&quot;sql&quot;,&#xd;
  136. &quot;file&quot;:&quot;http://127.0.0.1:9090/plugins/sqlSrc.zip&quot;&#xd;
  137. }</stringProp>
  138. <stringProp name="Argument.metadata">=</stringProp>
  139. </elementProp>
  140. </collectionProp>
  141. </elementProp>
  142. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  143. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  144. <stringProp name="HTTPSampler.protocol"></stringProp>
  145. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  146. <stringProp name="HTTPSampler.path">/plugins/sources</stringProp>
  147. <stringProp name="HTTPSampler.method">POST</stringProp>
  148. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  149. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  150. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  151. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  152. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  153. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  154. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  155. </HTTPSamplerProxy>
  156. <hashTree>
  157. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  158. <collectionProp name="Asserion.test_strings">
  159. <stringProp name="49587">201</stringProp>
  160. </collectionProp>
  161. <stringProp name="Assertion.custom_message"></stringProp>
  162. <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
  163. <boolProp name="Assertion.assume_success">true</boolProp>
  164. <intProp name="Assertion.test_type">16</intProp>
  165. </ResponseAssertion>
  166. <hashTree/>
  167. <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
  168. <stringProp name="ConstantTimer.delay">500</stringProp>
  169. </ConstantTimer>
  170. <hashTree/>
  171. </hashTree>
  172. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="DescSourcePlugin" enabled="true">
  173. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  174. <collectionProp name="Arguments.arguments"/>
  175. </elementProp>
  176. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  177. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  178. <stringProp name="HTTPSampler.protocol"></stringProp>
  179. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  180. <stringProp name="HTTPSampler.path">/plugins/sources/sql</stringProp>
  181. <stringProp name="HTTPSampler.method">GET</stringProp>
  182. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  183. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  184. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  185. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  186. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  187. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  188. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  189. </HTTPSamplerProxy>
  190. <hashTree>
  191. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  192. <collectionProp name="Asserion.test_strings">
  193. <stringProp name="114126">sql</stringProp>
  194. </collectionProp>
  195. <stringProp name="Assertion.custom_message"></stringProp>
  196. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  197. <boolProp name="Assertion.assume_success">true</boolProp>
  198. <intProp name="Assertion.test_type">16</intProp>
  199. </ResponseAssertion>
  200. <hashTree/>
  201. </hashTree>
  202. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="DescSinkPlugin" enabled="true">
  203. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  204. <collectionProp name="Arguments.arguments"/>
  205. </elementProp>
  206. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  207. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  208. <stringProp name="HTTPSampler.protocol"></stringProp>
  209. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  210. <stringProp name="HTTPSampler.path">/plugins/sinks/sql</stringProp>
  211. <stringProp name="HTTPSampler.method">GET</stringProp>
  212. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  213. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  214. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  215. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  216. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  217. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  218. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  219. </HTTPSamplerProxy>
  220. <hashTree>
  221. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  222. <collectionProp name="Asserion.test_strings">
  223. <stringProp name="114126">sql</stringProp>
  224. </collectionProp>
  225. <stringProp name="Assertion.custom_message"></stringProp>
  226. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  227. <boolProp name="Assertion.assume_success">true</boolProp>
  228. <intProp name="Assertion.test_type">16</intProp>
  229. </ResponseAssertion>
  230. <hashTree/>
  231. </hashTree>
  232. <SystemSampler guiclass="SystemSamplerGui" testclass="SystemSampler" testname="CreateTable" enabled="true">
  233. <boolProp name="SystemSampler.checkReturnCode">false</boolProp>
  234. <stringProp name="SystemSampler.expectedReturnCode">0</stringProp>
  235. <stringProp name="SystemSampler.command">test/plugins/sql/create_table</stringProp>
  236. <elementProp name="SystemSampler.arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  237. <collectionProp name="Arguments.arguments"/>
  238. </elementProp>
  239. <elementProp name="SystemSampler.environment" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  240. <collectionProp name="Arguments.arguments"/>
  241. </elementProp>
  242. <stringProp name="SystemSampler.directory">${__property(fvt,,)}</stringProp>
  243. </SystemSampler>
  244. <hashTree>
  245. <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
  246. <stringProp name="ConstantTimer.delay">500</stringProp>
  247. </ConstantTimer>
  248. <hashTree/>
  249. </hashTree>
  250. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CreateAlertSettingStream" enabled="true">
  251. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  252. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  253. <collectionProp name="Arguments.arguments">
  254. <elementProp name="" elementType="HTTPArgument">
  255. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  256. <stringProp name="Argument.value">{&quot;sql&quot;:&quot;CREATE STREAM alertStream() WITH (DATASOURCE=\&quot;scene/alert\&quot;, FORMAT=\&quot;json\&quot;, TYPE=\&quot;mqtt\&quot;)&quot;}</stringProp>
  257. <stringProp name="Argument.metadata">=</stringProp>
  258. </elementProp>
  259. </collectionProp>
  260. </elementProp>
  261. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  262. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  263. <stringProp name="HTTPSampler.protocol"></stringProp>
  264. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  265. <stringProp name="HTTPSampler.path">/streams</stringProp>
  266. <stringProp name="HTTPSampler.method">POST</stringProp>
  267. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  268. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  269. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  270. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  271. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  272. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  273. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  274. <stringProp name="TestPlan.comments">Create stream for alert setting actions</stringProp>
  275. </HTTPSamplerProxy>
  276. <hashTree>
  277. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  278. <collectionProp name="Asserion.test_strings">
  279. <stringProp name="2128378328">Stream alertStream is created.</stringProp>
  280. </collectionProp>
  281. <stringProp name="Assertion.custom_message"></stringProp>
  282. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  283. <boolProp name="Assertion.assume_success">true</boolProp>
  284. <intProp name="Assertion.test_type">16</intProp>
  285. </ResponseAssertion>
  286. <hashTree/>
  287. </hashTree>
  288. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CreateRuleUpdateAlert" enabled="true">
  289. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  290. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  291. <collectionProp name="Arguments.arguments">
  292. <elementProp name="" elementType="HTTPArgument">
  293. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  294. <stringProp name="Argument.value">{&#xd;
  295. &quot;id&quot;: &quot;ruleUpdateAlert&quot;,&#xd;
  296. &quot;sql&quot;:&quot;SELECT * FROM alertStream&quot;,&#xd;
  297. &quot;actions&quot;:[&#xd;
  298. {&#xd;
  299. &quot;sql&quot;: {&#xd;
  300. &quot;url&quot;: &quot;sqlite:/tmp/test.db&quot;,&#xd;
  301. &quot;keyField&quot;: &quot;id&quot;,&#xd;
  302. &quot;rowkindField&quot;: &quot;action&quot;,&#xd;
  303. &quot;table&quot;: &quot;alertTable&quot;,&#xd;
  304. &quot;sendSingle&quot;: true&#xd;
  305. }&#xd;
  306. }&#xd;
  307. ]&#xd;
  308. }</stringProp>
  309. <stringProp name="Argument.metadata">=</stringProp>
  310. </elementProp>
  311. </collectionProp>
  312. </elementProp>
  313. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  314. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  315. <stringProp name="HTTPSampler.protocol"></stringProp>
  316. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  317. <stringProp name="HTTPSampler.path">/rules</stringProp>
  318. <stringProp name="HTTPSampler.method">POST</stringProp>
  319. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  320. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  321. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  322. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  323. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  324. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  325. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  326. </HTTPSamplerProxy>
  327. <hashTree>
  328. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  329. <collectionProp name="Asserion.test_strings">
  330. <stringProp name="-1451809660">Rule ruleUpdateAlert was created</stringProp>
  331. </collectionProp>
  332. <stringProp name="Assertion.custom_message"></stringProp>
  333. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  334. <boolProp name="Assertion.assume_success">true</boolProp>
  335. <intProp name="Assertion.test_type">16</intProp>
  336. </ResponseAssertion>
  337. <hashTree/>
  338. </hashTree>
  339. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CreateDataStream" enabled="true">
  340. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  341. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  342. <collectionProp name="Arguments.arguments">
  343. <elementProp name="" elementType="HTTPArgument">
  344. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  345. <stringProp name="Argument.value">{&quot;sql&quot;:&quot;CREATE STREAM demoStream() WITH (DATASOURCE=\&quot;scene/data\&quot;, FORMAT=\&quot;json\&quot;, TYPE=\&quot;mqtt\&quot;)&quot;}</stringProp>
  346. <stringProp name="Argument.metadata">=</stringProp>
  347. </elementProp>
  348. </collectionProp>
  349. </elementProp>
  350. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  351. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  352. <stringProp name="HTTPSampler.protocol"></stringProp>
  353. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  354. <stringProp name="HTTPSampler.path">/streams</stringProp>
  355. <stringProp name="HTTPSampler.method">POST</stringProp>
  356. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  357. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  358. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  359. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  360. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  361. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  362. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  363. <stringProp name="TestPlan.comments">Create stream for alert setting actions</stringProp>
  364. </HTTPSamplerProxy>
  365. <hashTree>
  366. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  367. <collectionProp name="Asserion.test_strings">
  368. <stringProp name="-894755937">Stream demoStream is created.</stringProp>
  369. </collectionProp>
  370. <stringProp name="Assertion.custom_message"></stringProp>
  371. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  372. <boolProp name="Assertion.assume_success">true</boolProp>
  373. <intProp name="Assertion.test_type">16</intProp>
  374. </ResponseAssertion>
  375. <hashTree/>
  376. </hashTree>
  377. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CreateSqlTable" enabled="true">
  378. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  379. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  380. <collectionProp name="Arguments.arguments">
  381. <elementProp name="" elementType="HTTPArgument">
  382. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  383. <stringProp name="Argument.value">{&quot;sql&quot;:&quot;CREATE TABLE alertTable() WITH (DATASOURCE=\&quot;alertTable\&quot;, CONF_KEY=\&quot;sqlite_config\&quot;, TYPE=\&quot;sql\&quot;, KIND=\&quot;lookup\&quot;)&quot;}</stringProp>
  384. <stringProp name="Argument.metadata">=</stringProp>
  385. </elementProp>
  386. </collectionProp>
  387. </elementProp>
  388. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  389. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  390. <stringProp name="HTTPSampler.protocol"></stringProp>
  391. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  392. <stringProp name="HTTPSampler.path">/tables</stringProp>
  393. <stringProp name="HTTPSampler.method">POST</stringProp>
  394. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  395. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  396. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  397. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  398. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  399. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  400. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  401. </HTTPSamplerProxy>
  402. <hashTree>
  403. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  404. <collectionProp name="Asserion.test_strings">
  405. <stringProp name="-1341540896">Table alertTable is created.</stringProp>
  406. </collectionProp>
  407. <stringProp name="Assertion.custom_message"></stringProp>
  408. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  409. <boolProp name="Assertion.assume_success">true</boolProp>
  410. <intProp name="Assertion.test_type">16</intProp>
  411. </ResponseAssertion>
  412. <hashTree/>
  413. </hashTree>
  414. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CreateRuleAlert" enabled="true">
  415. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  416. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  417. <collectionProp name="Arguments.arguments">
  418. <elementProp name="" elementType="HTTPArgument">
  419. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  420. <stringProp name="Argument.value">{&#xd;
  421. &quot;id&quot;: &quot;ruleAlert&quot;,&#xd;
  422. &quot;sql&quot;:&quot;SELECT demoStream.device, demoStream.value FROM demoStream INNER JOIN alertTable ON demoStream.deviceKind = alertTable.id WHERE demoStream.value &gt; alertTable.alarm&quot;,&#xd;
  423. &quot;actions&quot;:[&#xd;
  424. {&#xd;
  425. &quot;mqtt&quot;: {&#xd;
  426. &quot;server&quot;: &quot;tcp://${mqtt_srv}:1883&quot;,&#xd;
  427. &quot;topic&quot;: &quot;rule/alert&quot;,&#xd;
  428. &quot;sendSingle&quot;: true&#xd;
  429. }&#xd;
  430. }&#xd;
  431. ]&#xd;
  432. }</stringProp>
  433. <stringProp name="Argument.metadata">=</stringProp>
  434. </elementProp>
  435. </collectionProp>
  436. </elementProp>
  437. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  438. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  439. <stringProp name="HTTPSampler.protocol"></stringProp>
  440. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  441. <stringProp name="HTTPSampler.path">/rules</stringProp>
  442. <stringProp name="HTTPSampler.method">POST</stringProp>
  443. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  444. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  445. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  446. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  447. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  448. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  449. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  450. </HTTPSamplerProxy>
  451. <hashTree>
  452. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  453. <collectionProp name="Asserion.test_strings">
  454. <stringProp name="-2079532467">Rule ruleAlert was created</stringProp>
  455. </collectionProp>
  456. <stringProp name="Assertion.custom_message"></stringProp>
  457. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  458. <boolProp name="Assertion.assume_success">true</boolProp>
  459. <intProp name="Assertion.test_type">16</intProp>
  460. </ResponseAssertion>
  461. <hashTree/>
  462. </hashTree>
  463. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_GetRuleStatus" enabled="true">
  464. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  465. <collectionProp name="Arguments.arguments"/>
  466. </elementProp>
  467. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  468. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  469. <stringProp name="HTTPSampler.protocol"></stringProp>
  470. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  471. <stringProp name="HTTPSampler.path">/rules/ruleAlert/status</stringProp>
  472. <stringProp name="HTTPSampler.method">GET</stringProp>
  473. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  474. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  475. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  476. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  477. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  478. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  479. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  480. </HTTPSamplerProxy>
  481. <hashTree>
  482. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  483. <stringProp name="JSON_PATH">$.source_demoStream_0_records_in_total</stringProp>
  484. <stringProp name="EXPECTED_VALUE">0</stringProp>
  485. <boolProp name="JSONVALIDATION">true</boolProp>
  486. <boolProp name="EXPECT_NULL">false</boolProp>
  487. <boolProp name="INVERT">false</boolProp>
  488. <boolProp name="ISREGEX">false</boolProp>
  489. </JSONPathAssertion>
  490. <hashTree/>
  491. </hashTree>
  492. <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="FeedTable" enabled="true">
  493. <boolProp name="LoopController.continue_forever">true</boolProp>
  494. <stringProp name="LoopController.loops">4</stringProp>
  495. </LoopController>
  496. <hashTree>
  497. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
  498. <stringProp name="delimiter">,</stringProp>
  499. <stringProp name="fileEncoding"></stringProp>
  500. <stringProp name="filename">alert_init_data.txt</stringProp>
  501. <boolProp name="ignoreFirstLine">false</boolProp>
  502. <boolProp name="quotedData">false</boolProp>
  503. <boolProp name="recycle">true</boolProp>
  504. <stringProp name="shareMode">shareMode.thread</stringProp>
  505. <boolProp name="stopThread">false</boolProp>
  506. <stringProp name="variableNames">action,id,alarm</stringProp>
  507. </CSVDataSet>
  508. <hashTree/>
  509. <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="MQTT Pub Sampler" enabled="true">
  510. <stringProp name="mqtt.topic_name">scene/alert</stringProp>
  511. <stringProp name="mqtt.qos_level">0</stringProp>
  512. <boolProp name="mqtt.add_timestamp">false</boolProp>
  513. <stringProp name="mqtt.message_type">String</stringProp>
  514. <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
  515. <stringProp name="mqtt.message_to_sent">{&quot;id&quot;: ${id}, &quot;action&quot;: ${action}, &quot;alarm&quot; : ${alarm}}</stringProp>
  516. <boolProp name="mqtt.retained_message">false</boolProp>
  517. </net.xmeter.samplers.PubSampler>
  518. <hashTree/>
  519. </hashTree>
  520. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="GetTableRuleStatus" enabled="true">
  521. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  522. <collectionProp name="Arguments.arguments"/>
  523. </elementProp>
  524. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  525. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  526. <stringProp name="HTTPSampler.protocol"></stringProp>
  527. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  528. <stringProp name="HTTPSampler.path">/rules/ruleUpdateAlert/status</stringProp>
  529. <stringProp name="HTTPSampler.method">GET</stringProp>
  530. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  531. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  532. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  533. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  534. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  535. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  536. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  537. </HTTPSamplerProxy>
  538. <hashTree>
  539. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  540. <stringProp name="JSON_PATH">$.source_alertStream_0_records_in_total</stringProp>
  541. <stringProp name="EXPECTED_VALUE">4</stringProp>
  542. <boolProp name="JSONVALIDATION">true</boolProp>
  543. <boolProp name="EXPECT_NULL">false</boolProp>
  544. <boolProp name="INVERT">false</boolProp>
  545. <boolProp name="ISREGEX">false</boolProp>
  546. </JSONPathAssertion>
  547. <hashTree/>
  548. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="false">
  549. <stringProp name="JSON_PATH">$.sink_memory_0_0_records_out_total</stringProp>
  550. <stringProp name="EXPECTED_VALUE">4</stringProp>
  551. <boolProp name="JSONVALIDATION">true</boolProp>
  552. <boolProp name="EXPECT_NULL">false</boolProp>
  553. <boolProp name="INVERT">false</boolProp>
  554. <boolProp name="ISREGEX">false</boolProp>
  555. </JSONPathAssertion>
  556. <hashTree/>
  557. <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
  558. <stringProp name="ConstantTimer.delay">5000</stringProp>
  559. </ConstantTimer>
  560. <hashTree/>
  561. </hashTree>
  562. <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SendData" enabled="true">
  563. <boolProp name="LoopController.continue_forever">true</boolProp>
  564. <stringProp name="LoopController.loops">4</stringProp>
  565. </LoopController>
  566. <hashTree>
  567. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
  568. <stringProp name="delimiter">,</stringProp>
  569. <stringProp name="fileEncoding"></stringProp>
  570. <stringProp name="filename">collect_data.txt</stringProp>
  571. <boolProp name="ignoreFirstLine">false</boolProp>
  572. <boolProp name="quotedData">false</boolProp>
  573. <boolProp name="recycle">true</boolProp>
  574. <stringProp name="shareMode">shareMode.thread</stringProp>
  575. <boolProp name="stopThread">false</boolProp>
  576. <stringProp name="variableNames">device,deviceKind,value</stringProp>
  577. </CSVDataSet>
  578. <hashTree/>
  579. <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="MQTT Pub Sampler" enabled="true">
  580. <stringProp name="mqtt.topic_name">scene/data</stringProp>
  581. <stringProp name="mqtt.qos_level">0</stringProp>
  582. <boolProp name="mqtt.add_timestamp">false</boolProp>
  583. <stringProp name="mqtt.message_type">String</stringProp>
  584. <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
  585. <stringProp name="mqtt.message_to_sent">{&quot;deviceKind&quot;: ${deviceKind}, &quot;device&quot;: ${device}, &quot;value&quot; : ${value}}</stringProp>
  586. <boolProp name="mqtt.retained_message">false</boolProp>
  587. </net.xmeter.samplers.PubSampler>
  588. <hashTree/>
  589. </hashTree>
  590. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_GetRuleStatus" enabled="true">
  591. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  592. <collectionProp name="Arguments.arguments"/>
  593. </elementProp>
  594. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  595. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  596. <stringProp name="HTTPSampler.protocol"></stringProp>
  597. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  598. <stringProp name="HTTPSampler.path">/rules/ruleAlert/status</stringProp>
  599. <stringProp name="HTTPSampler.method">GET</stringProp>
  600. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  601. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  602. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  603. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  604. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  605. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  606. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  607. </HTTPSamplerProxy>
  608. <hashTree>
  609. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  610. <stringProp name="JSON_PATH">$.source_demoStream_0_records_in_total</stringProp>
  611. <stringProp name="EXPECTED_VALUE">4</stringProp>
  612. <boolProp name="JSONVALIDATION">true</boolProp>
  613. <boolProp name="EXPECT_NULL">false</boolProp>
  614. <boolProp name="INVERT">false</boolProp>
  615. <boolProp name="ISREGEX">false</boolProp>
  616. </JSONPathAssertion>
  617. <hashTree/>
  618. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="false">
  619. <stringProp name="JSON_PATH">$.sink_mqtt_0_0_records_out_total</stringProp>
  620. <stringProp name="EXPECTED_VALUE">2</stringProp>
  621. <boolProp name="JSONVALIDATION">true</boolProp>
  622. <boolProp name="EXPECT_NULL">false</boolProp>
  623. <boolProp name="INVERT">false</boolProp>
  624. <boolProp name="ISREGEX">false</boolProp>
  625. </JSONPathAssertion>
  626. <hashTree/>
  627. </hashTree>
  628. <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="UpdateTable" enabled="true">
  629. <boolProp name="LoopController.continue_forever">true</boolProp>
  630. <stringProp name="LoopController.loops">4</stringProp>
  631. </LoopController>
  632. <hashTree>
  633. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
  634. <stringProp name="delimiter">,</stringProp>
  635. <stringProp name="fileEncoding"></stringProp>
  636. <stringProp name="filename">alert_update_data.txt</stringProp>
  637. <boolProp name="ignoreFirstLine">false</boolProp>
  638. <boolProp name="quotedData">false</boolProp>
  639. <boolProp name="recycle">true</boolProp>
  640. <stringProp name="shareMode">shareMode.thread</stringProp>
  641. <boolProp name="stopThread">false</boolProp>
  642. <stringProp name="variableNames">action,id,alarm</stringProp>
  643. </CSVDataSet>
  644. <hashTree/>
  645. <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="MQTT Pub Sampler" enabled="true">
  646. <stringProp name="mqtt.topic_name">scene/alert</stringProp>
  647. <stringProp name="mqtt.qos_level">0</stringProp>
  648. <boolProp name="mqtt.add_timestamp">false</boolProp>
  649. <stringProp name="mqtt.message_type">String</stringProp>
  650. <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
  651. <stringProp name="mqtt.message_to_sent">{&quot;id&quot;: ${id}, &quot;action&quot;: ${action}, &quot;alarm&quot; : ${alarm}}</stringProp>
  652. <boolProp name="mqtt.retained_message">false</boolProp>
  653. </net.xmeter.samplers.PubSampler>
  654. <hashTree/>
  655. </hashTree>
  656. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="GetTableRuleStatus" enabled="true">
  657. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  658. <collectionProp name="Arguments.arguments"/>
  659. </elementProp>
  660. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  661. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  662. <stringProp name="HTTPSampler.protocol"></stringProp>
  663. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  664. <stringProp name="HTTPSampler.path">/rules/ruleUpdateAlert/status</stringProp>
  665. <stringProp name="HTTPSampler.method">GET</stringProp>
  666. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  667. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  668. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  669. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  670. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  671. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  672. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  673. </HTTPSamplerProxy>
  674. <hashTree>
  675. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  676. <stringProp name="JSON_PATH">$.source_alertStream_0_records_in_total</stringProp>
  677. <stringProp name="EXPECTED_VALUE">8</stringProp>
  678. <boolProp name="JSONVALIDATION">true</boolProp>
  679. <boolProp name="EXPECT_NULL">false</boolProp>
  680. <boolProp name="INVERT">false</boolProp>
  681. <boolProp name="ISREGEX">false</boolProp>
  682. </JSONPathAssertion>
  683. <hashTree/>
  684. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="false">
  685. <stringProp name="JSON_PATH">$.sink_memory_0_0_records_out_total</stringProp>
  686. <stringProp name="EXPECTED_VALUE">8</stringProp>
  687. <boolProp name="JSONVALIDATION">true</boolProp>
  688. <boolProp name="EXPECT_NULL">false</boolProp>
  689. <boolProp name="INVERT">false</boolProp>
  690. <boolProp name="ISREGEX">false</boolProp>
  691. </JSONPathAssertion>
  692. <hashTree/>
  693. <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
  694. <stringProp name="ConstantTimer.delay">5000</stringProp>
  695. </ConstantTimer>
  696. <hashTree/>
  697. </hashTree>
  698. <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SendData" enabled="true">
  699. <boolProp name="LoopController.continue_forever">true</boolProp>
  700. <stringProp name="LoopController.loops">4</stringProp>
  701. </LoopController>
  702. <hashTree>
  703. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
  704. <stringProp name="delimiter">,</stringProp>
  705. <stringProp name="fileEncoding"></stringProp>
  706. <stringProp name="filename">collect_data.txt</stringProp>
  707. <boolProp name="ignoreFirstLine">false</boolProp>
  708. <boolProp name="quotedData">false</boolProp>
  709. <boolProp name="recycle">true</boolProp>
  710. <stringProp name="shareMode">shareMode.thread</stringProp>
  711. <boolProp name="stopThread">false</boolProp>
  712. <stringProp name="variableNames">device,deviceKind,value</stringProp>
  713. </CSVDataSet>
  714. <hashTree/>
  715. <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="MQTT Pub Sampler" enabled="true">
  716. <stringProp name="mqtt.topic_name">scene/data</stringProp>
  717. <stringProp name="mqtt.qos_level">0</stringProp>
  718. <boolProp name="mqtt.add_timestamp">false</boolProp>
  719. <stringProp name="mqtt.message_type">String</stringProp>
  720. <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
  721. <stringProp name="mqtt.message_to_sent">{&quot;deviceKind&quot;: ${deviceKind}, &quot;device&quot;: ${device}, &quot;value&quot; : ${value}}</stringProp>
  722. <boolProp name="mqtt.retained_message">false</boolProp>
  723. </net.xmeter.samplers.PubSampler>
  724. <hashTree/>
  725. </hashTree>
  726. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_GetRuleStatus" enabled="true">
  727. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  728. <collectionProp name="Arguments.arguments"/>
  729. </elementProp>
  730. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  731. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  732. <stringProp name="HTTPSampler.protocol"></stringProp>
  733. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  734. <stringProp name="HTTPSampler.path">/rules/ruleAlert/status</stringProp>
  735. <stringProp name="HTTPSampler.method">GET</stringProp>
  736. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  737. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  738. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  739. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  740. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  741. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  742. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  743. </HTTPSamplerProxy>
  744. <hashTree>
  745. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  746. <stringProp name="JSON_PATH">$.source_demoStream_0_records_in_total</stringProp>
  747. <stringProp name="EXPECTED_VALUE">8</stringProp>
  748. <boolProp name="JSONVALIDATION">true</boolProp>
  749. <boolProp name="EXPECT_NULL">false</boolProp>
  750. <boolProp name="INVERT">false</boolProp>
  751. <boolProp name="ISREGEX">false</boolProp>
  752. </JSONPathAssertion>
  753. <hashTree/>
  754. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="false">
  755. <stringProp name="JSON_PATH">$.sink_mqtt_0_0_records_out_total</stringProp>
  756. <stringProp name="EXPECTED_VALUE">3</stringProp>
  757. <boolProp name="JSONVALIDATION">true</boolProp>
  758. <boolProp name="EXPECT_NULL">false</boolProp>
  759. <boolProp name="INVERT">false</boolProp>
  760. <boolProp name="ISREGEX">false</boolProp>
  761. </JSONPathAssertion>
  762. <hashTree/>
  763. </hashTree>
  764. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_DropRule" enabled="true">
  765. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  766. <collectionProp name="Arguments.arguments"/>
  767. </elementProp>
  768. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  769. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  770. <stringProp name="HTTPSampler.protocol"></stringProp>
  771. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  772. <stringProp name="HTTPSampler.path">/rules/ruleAlert</stringProp>
  773. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  774. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  775. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  776. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  777. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  778. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  779. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  780. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  781. </HTTPSamplerProxy>
  782. <hashTree>
  783. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  784. <collectionProp name="Asserion.test_strings">
  785. <stringProp name="659914816">Rule ruleAlert is dropped.</stringProp>
  786. </collectionProp>
  787. <stringProp name="Assertion.custom_message"></stringProp>
  788. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  789. <boolProp name="Assertion.assume_success">false</boolProp>
  790. <intProp name="Assertion.test_type">16</intProp>
  791. </ResponseAssertion>
  792. <hashTree/>
  793. </hashTree>
  794. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_Drop_Stream" enabled="true">
  795. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  796. <collectionProp name="Arguments.arguments"/>
  797. </elementProp>
  798. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  799. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  800. <stringProp name="HTTPSampler.protocol"></stringProp>
  801. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  802. <stringProp name="HTTPSampler.path">/streams/demoStream</stringProp>
  803. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  804. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  805. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  806. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  807. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  808. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  809. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  810. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  811. </HTTPSamplerProxy>
  812. <hashTree>
  813. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  814. <collectionProp name="Asserion.test_strings">
  815. <stringProp name="1148079559">Stream demoStream is dropped.</stringProp>
  816. </collectionProp>
  817. <stringProp name="Assertion.custom_message"></stringProp>
  818. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  819. <boolProp name="Assertion.assume_success">false</boolProp>
  820. <intProp name="Assertion.test_type">16</intProp>
  821. </ResponseAssertion>
  822. <hashTree/>
  823. </hashTree>
  824. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_Drop_Table" enabled="true">
  825. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  826. <collectionProp name="Arguments.arguments"/>
  827. </elementProp>
  828. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  829. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  830. <stringProp name="HTTPSampler.protocol"></stringProp>
  831. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  832. <stringProp name="HTTPSampler.path">/tables/alertTable</stringProp>
  833. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  834. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  835. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  836. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  837. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  838. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  839. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  840. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  841. </HTTPSamplerProxy>
  842. <hashTree>
  843. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  844. <collectionProp name="Asserion.test_strings">
  845. <stringProp name="701294600">Table alertTable is dropped.</stringProp>
  846. </collectionProp>
  847. <stringProp name="Assertion.custom_message"></stringProp>
  848. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  849. <boolProp name="Assertion.assume_success">false</boolProp>
  850. <intProp name="Assertion.test_type">16</intProp>
  851. </ResponseAssertion>
  852. <hashTree/>
  853. </hashTree>
  854. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_DropRule" enabled="true">
  855. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  856. <collectionProp name="Arguments.arguments"/>
  857. </elementProp>
  858. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  859. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  860. <stringProp name="HTTPSampler.protocol"></stringProp>
  861. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  862. <stringProp name="HTTPSampler.path">/rules/ruleUpdateAlert</stringProp>
  863. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  864. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  865. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  866. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  867. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  868. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  869. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  870. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  871. </HTTPSamplerProxy>
  872. <hashTree>
  873. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  874. <collectionProp name="Asserion.test_strings">
  875. <stringProp name="1287637623">Rule ruleUpdateAlert is dropped.</stringProp>
  876. </collectionProp>
  877. <stringProp name="Assertion.custom_message"></stringProp>
  878. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  879. <boolProp name="Assertion.assume_success">false</boolProp>
  880. <intProp name="Assertion.test_type">16</intProp>
  881. </ResponseAssertion>
  882. <hashTree/>
  883. </hashTree>
  884. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_Drop_Stream" enabled="true">
  885. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  886. <collectionProp name="Arguments.arguments"/>
  887. </elementProp>
  888. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  889. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  890. <stringProp name="HTTPSampler.protocol"></stringProp>
  891. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  892. <stringProp name="HTTPSampler.path">/streams/alertStream</stringProp>
  893. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  894. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  895. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  896. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  897. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  898. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  899. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  900. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  901. </HTTPSamplerProxy>
  902. <hashTree>
  903. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  904. <collectionProp name="Asserion.test_strings">
  905. <stringProp name="-123753472">Stream alertStream is dropped.</stringProp>
  906. </collectionProp>
  907. <stringProp name="Assertion.custom_message"></stringProp>
  908. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  909. <boolProp name="Assertion.assume_success">false</boolProp>
  910. <intProp name="Assertion.test_type">16</intProp>
  911. </ResponseAssertion>
  912. <hashTree/>
  913. </hashTree>
  914. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="DropSourcePlugin" enabled="true">
  915. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  916. <collectionProp name="Arguments.arguments"/>
  917. </elementProp>
  918. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  919. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  920. <stringProp name="HTTPSampler.protocol"></stringProp>
  921. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  922. <stringProp name="HTTPSampler.path">/plugins/sources/sql</stringProp>
  923. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  924. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  925. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  926. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  927. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  928. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  929. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  930. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  931. </HTTPSamplerProxy>
  932. <hashTree>
  933. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  934. <collectionProp name="Asserion.test_strings">
  935. <stringProp name="-57041190">sources plugin sql is deleted</stringProp>
  936. </collectionProp>
  937. <stringProp name="Assertion.custom_message"></stringProp>
  938. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  939. <boolProp name="Assertion.assume_success">true</boolProp>
  940. <intProp name="Assertion.test_type">16</intProp>
  941. </ResponseAssertion>
  942. <hashTree/>
  943. </hashTree>
  944. <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
  945. <stringProp name="ConstantTimer.delay">500</stringProp>
  946. </ConstantTimer>
  947. <hashTree/>
  948. </hashTree>
  949. </hashTree>
  950. <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Result" enabled="true">
  951. <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  952. <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
  953. <boolProp name="LoopController.continue_forever">false</boolProp>
  954. <stringProp name="LoopController.loops">2</stringProp>
  955. </elementProp>
  956. <stringProp name="ThreadGroup.num_threads">1</stringProp>
  957. <stringProp name="ThreadGroup.ramp_time">1</stringProp>
  958. <boolProp name="ThreadGroup.scheduler">false</boolProp>
  959. <stringProp name="ThreadGroup.duration"></stringProp>
  960. <stringProp name="ThreadGroup.delay"></stringProp>
  961. <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
  962. </ThreadGroup>
  963. <hashTree>
  964. <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
  965. <boolProp name="ResultCollector.error_logging">false</boolProp>
  966. <objProp>
  967. <name>saveConfig</name>
  968. <value class="SampleSaveConfiguration">
  969. <time>true</time>
  970. <latency>true</latency>
  971. <timestamp>true</timestamp>
  972. <success>true</success>
  973. <label>true</label>
  974. <code>true</code>
  975. <message>true</message>
  976. <threadName>true</threadName>
  977. <dataType>true</dataType>
  978. <encoding>false</encoding>
  979. <assertions>true</assertions>
  980. <subresults>true</subresults>
  981. <responseData>false</responseData>
  982. <samplerData>false</samplerData>
  983. <xml>false</xml>
  984. <fieldNames>true</fieldNames>
  985. <responseHeaders>false</responseHeaders>
  986. <requestHeaders>false</requestHeaders>
  987. <responseDataOnError>false</responseDataOnError>
  988. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  989. <assertionsResultsToSave>0</assertionsResultsToSave>
  990. <bytes>true</bytes>
  991. <sentBytes>true</sentBytes>
  992. <threadCounts>true</threadCounts>
  993. <idleTime>true</idleTime>
  994. <connectTime>true</connectTime>
  995. </value>
  996. </objProp>
  997. <stringProp name="filename"></stringProp>
  998. </ResultCollector>
  999. <hashTree/>
  1000. <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true"/>
  1001. <hashTree>
  1002. <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="MQTT Connect" enabled="true">
  1003. <stringProp name="mqtt.server">${mqtt_srv}</stringProp>
  1004. <stringProp name="mqtt.port">1883</stringProp>
  1005. <stringProp name="mqtt.version">3.1</stringProp>
  1006. <stringProp name="mqtt.conn_timeout">10</stringProp>
  1007. <boolProp name="mqtt.private_protocol">false</boolProp>
  1008. <stringProp name="mqtt.listener_timeout">10</stringProp>
  1009. <stringProp name="mqtt.protocol">TCP</stringProp>
  1010. <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
  1011. <stringProp name="mqtt.keystore_file_path"></stringProp>
  1012. <stringProp name="mqtt.keystore_password"></stringProp>
  1013. <stringProp name="mqtt.clientcert_file_path"></stringProp>
  1014. <stringProp name="mqtt.clientcert_password"></stringProp>
  1015. <stringProp name="mqtt.user_name"></stringProp>
  1016. <stringProp name="mqtt.password"></stringProp>
  1017. <stringProp name="mqtt.client_id_prefix">conn_</stringProp>
  1018. <boolProp name="mqtt.client_id_suffix">true</boolProp>
  1019. <stringProp name="mqtt.conn_keep_alive">300</stringProp>
  1020. <stringProp name="mqtt.conn_attampt_max">0</stringProp>
  1021. <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
  1022. <boolProp name="mqtt.conn_clean_session">true</boolProp>
  1023. </net.xmeter.samplers.ConnectSampler>
  1024. <hashTree/>
  1025. </hashTree>
  1026. <net.xmeter.samplers.SubSampler guiclass="net.xmeter.gui.SubSamplerUI" testclass="net.xmeter.samplers.SubSampler" testname="AnalysisResult" enabled="true">
  1027. <stringProp name="mqtt.topic_name">rule/alert</stringProp>
  1028. <stringProp name="mqtt.qos_level">0</stringProp>
  1029. <boolProp name="mqtt.add_timestamp">false</boolProp>
  1030. <boolProp name="mqtt.debug_response">true</boolProp>
  1031. <stringProp name="mqtt.sample_condition">number of received messages</stringProp>
  1032. <stringProp name="mqtt.sample_condition_value">1</stringProp>
  1033. </net.xmeter.samplers.SubSampler>
  1034. <hashTree>
  1035. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="value Assertion" enabled="true">
  1036. <stringProp name="JSON_PATH">$.value</stringProp>
  1037. <stringProp name="EXPECTED_VALUE">${value}</stringProp>
  1038. <boolProp name="JSONVALIDATION">true</boolProp>
  1039. <boolProp name="EXPECT_NULL">false</boolProp>
  1040. <boolProp name="INVERT">false</boolProp>
  1041. <boolProp name="ISREGEX">false</boolProp>
  1042. </JSONPathAssertion>
  1043. <hashTree/>
  1044. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="device Assertion" enabled="true">
  1045. <stringProp name="JSON_PATH">$.device</stringProp>
  1046. <stringProp name="EXPECTED_VALUE">${device}</stringProp>
  1047. <boolProp name="JSONVALIDATION">true</boolProp>
  1048. <boolProp name="EXPECT_NULL">false</boolProp>
  1049. <boolProp name="INVERT">false</boolProp>
  1050. <boolProp name="ISREGEX">false</boolProp>
  1051. </JSONPathAssertion>
  1052. <hashTree/>
  1053. </hashTree>
  1054. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
  1055. <stringProp name="delimiter">,</stringProp>
  1056. <stringProp name="fileEncoding"></stringProp>
  1057. <stringProp name="filename">lookup_table_result_data.txt</stringProp>
  1058. <boolProp name="ignoreFirstLine">false</boolProp>
  1059. <boolProp name="quotedData">false</boolProp>
  1060. <boolProp name="recycle">true</boolProp>
  1061. <stringProp name="shareMode">shareMode.thread</stringProp>
  1062. <boolProp name="stopThread">false</boolProp>
  1063. <stringProp name="variableNames">device,value</stringProp>
  1064. </CSVDataSet>
  1065. <hashTree/>
  1066. </hashTree>
  1067. </hashTree>
  1068. </hashTree>
  1069. </jmeterTestPlan>