shared_source_rules.jmx 62 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3">
  3. <hashTree>
  4. <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
  5. <stringProp name="TestPlan.comments"></stringProp>
  6. <boolProp name="TestPlan.functional_mode">false</boolProp>
  7. <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
  8. <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
  9. <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  10. <collectionProp name="Arguments.arguments"/>
  11. </elementProp>
  12. <stringProp name="TestPlan.user_define_classpath"></stringProp>
  13. </TestPlan>
  14. <hashTree>
  15. <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  16. <collectionProp name="Arguments.arguments">
  17. <elementProp name="srv" elementType="Argument">
  18. <stringProp name="Argument.name">srv</stringProp>
  19. <stringProp name="Argument.value">127.0.0.1</stringProp>
  20. <stringProp name="Argument.metadata">=</stringProp>
  21. </elementProp>
  22. <elementProp name="rest_port" elementType="Argument">
  23. <stringProp name="Argument.name">rest_port</stringProp>
  24. <stringProp name="Argument.value">9081</stringProp>
  25. <stringProp name="Argument.metadata">=</stringProp>
  26. </elementProp>
  27. <elementProp name="mqtt_srv" elementType="Argument">
  28. <stringProp name="Argument.name">mqtt_srv</stringProp>
  29. <stringProp name="Argument.value">127.0.0.1</stringProp>
  30. <stringProp name="Argument.metadata">=</stringProp>
  31. </elementProp>
  32. </collectionProp>
  33. </Arguments>
  34. <hashTree/>
  35. <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Rules" enabled="true">
  36. <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  37. <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
  38. <boolProp name="LoopController.continue_forever">false</boolProp>
  39. <stringProp name="LoopController.loops">1</stringProp>
  40. </elementProp>
  41. <stringProp name="ThreadGroup.num_threads">1</stringProp>
  42. <stringProp name="ThreadGroup.ramp_time">1</stringProp>
  43. <boolProp name="ThreadGroup.scheduler">false</boolProp>
  44. <stringProp name="ThreadGroup.duration"></stringProp>
  45. <stringProp name="ThreadGroup.delay"></stringProp>
  46. <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
  47. </ThreadGroup>
  48. <hashTree>
  49. <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
  50. <boolProp name="ResultCollector.error_logging">false</boolProp>
  51. <objProp>
  52. <name>saveConfig</name>
  53. <value class="SampleSaveConfiguration">
  54. <time>true</time>
  55. <latency>true</latency>
  56. <timestamp>true</timestamp>
  57. <success>true</success>
  58. <label>true</label>
  59. <code>true</code>
  60. <message>true</message>
  61. <threadName>true</threadName>
  62. <dataType>true</dataType>
  63. <encoding>false</encoding>
  64. <assertions>true</assertions>
  65. <subresults>true</subresults>
  66. <responseData>false</responseData>
  67. <samplerData>false</samplerData>
  68. <xml>false</xml>
  69. <fieldNames>true</fieldNames>
  70. <responseHeaders>false</responseHeaders>
  71. <requestHeaders>false</requestHeaders>
  72. <responseDataOnError>false</responseDataOnError>
  73. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  74. <assertionsResultsToSave>0</assertionsResultsToSave>
  75. <bytes>true</bytes>
  76. <sentBytes>true</sentBytes>
  77. <threadCounts>true</threadCounts>
  78. <idleTime>true</idleTime>
  79. <connectTime>true</connectTime>
  80. </value>
  81. </objProp>
  82. <stringProp name="filename"></stringProp>
  83. </ResultCollector>
  84. <hashTree/>
  85. <TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="API" enabled="true">
  86. <boolProp name="TransactionController.includeTimers">false</boolProp>
  87. <boolProp name="TransactionController.parent">false</boolProp>
  88. </TransactionController>
  89. <hashTree>
  90. <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="MQTT Connect" enabled="true">
  91. <stringProp name="mqtt.server">${mqtt_srv}</stringProp>
  92. <stringProp name="mqtt.port">1883</stringProp>
  93. <stringProp name="mqtt.version">3.1</stringProp>
  94. <stringProp name="mqtt.conn_timeout">10</stringProp>
  95. <boolProp name="mqtt.private_protocol">false</boolProp>
  96. <stringProp name="mqtt.listener_timeout">10</stringProp>
  97. <stringProp name="mqtt.protocol">TCP</stringProp>
  98. <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
  99. <stringProp name="mqtt.keystore_file_path"></stringProp>
  100. <stringProp name="mqtt.keystore_password"></stringProp>
  101. <stringProp name="mqtt.clientcert_file_path"></stringProp>
  102. <stringProp name="mqtt.clientcert_password"></stringProp>
  103. <stringProp name="mqtt.user_name"></stringProp>
  104. <stringProp name="mqtt.password"></stringProp>
  105. <stringProp name="mqtt.client_id_prefix">conn_</stringProp>
  106. <boolProp name="mqtt.client_id_suffix">true</boolProp>
  107. <stringProp name="mqtt.conn_keep_alive">300</stringProp>
  108. <stringProp name="mqtt.conn_attampt_max">0</stringProp>
  109. <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
  110. <boolProp name="mqtt.conn_clean_session">true</boolProp>
  111. </net.xmeter.samplers.ConnectSampler>
  112. <hashTree/>
  113. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_CreateStream_Demo" enabled="true">
  114. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  115. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  116. <collectionProp name="Arguments.arguments">
  117. <elementProp name="" elementType="HTTPArgument">
  118. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  119. <stringProp name="Argument.value">{&#xd;
  120. &quot;sql&quot; : &quot;create stream demo (temperature float, humidity bigint) WITH (FORMAT=\&quot;JSON\&quot;, DATASOURCE=\&quot;devices/+/messages\&quot;, SHARED=\&quot;true\&quot; )&quot;&#xd;
  121. }</stringProp>
  122. <stringProp name="Argument.metadata">=</stringProp>
  123. </elementProp>
  124. </collectionProp>
  125. </elementProp>
  126. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  127. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  128. <stringProp name="HTTPSampler.protocol"></stringProp>
  129. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  130. <stringProp name="HTTPSampler.path">/streams</stringProp>
  131. <stringProp name="HTTPSampler.method">POST</stringProp>
  132. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  133. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  134. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  135. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  136. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  137. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  138. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  139. </HTTPSamplerProxy>
  140. <hashTree>
  141. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  142. <collectionProp name="Asserion.test_strings">
  143. <stringProp name="-1754954177">Stream demo is created.</stringProp>
  144. </collectionProp>
  145. <stringProp name="Assertion.custom_message"></stringProp>
  146. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  147. <boolProp name="Assertion.assume_success">true</boolProp>
  148. <intProp name="Assertion.test_type">16</intProp>
  149. </ResponseAssertion>
  150. <hashTree/>
  151. </hashTree>
  152. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_CreateRule1" enabled="true">
  153. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  154. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  155. <collectionProp name="Arguments.arguments">
  156. <elementProp name="" elementType="HTTPArgument">
  157. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  158. <stringProp name="Argument.value">{&#xd;
  159. &quot;id&quot;: &quot;rule1&quot;,&#xd;
  160. &quot;sql&quot;: &quot;SELECT * FROM demo WHERE temperature &gt; 30&quot;,&#xd;
  161. &quot;actions&quot;: [&#xd;
  162. {&#xd;
  163. &quot;mqtt&quot;: {&#xd;
  164. &quot;server&quot;: &quot;tcp://${mqtt_srv}:1883&quot;,&#xd;
  165. &quot;topic&quot;: &quot;devices/result/temperature&quot;,&#xd;
  166. &quot;qos&quot;: 1,&#xd;
  167. &quot;clientId&quot;: &quot;demo_001&quot;&#xd;
  168. }&#xd;
  169. }&#xd;
  170. ]&#xd;
  171. }</stringProp>
  172. <stringProp name="Argument.metadata">=</stringProp>
  173. </elementProp>
  174. </collectionProp>
  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">/rules</stringProp>
  181. <stringProp name="HTTPSampler.method">POST</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="-2022196798">Rule rule1 was created</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="API_GetRule1Status" 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">/rules/rule1/status</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. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  222. <stringProp name="JSON_PATH">$.source_demo_0_records_in_total</stringProp>
  223. <stringProp name="EXPECTED_VALUE">0</stringProp>
  224. <boolProp name="JSONVALIDATION">true</boolProp>
  225. <boolProp name="EXPECT_NULL">false</boolProp>
  226. <boolProp name="INVERT">false</boolProp>
  227. <boolProp name="ISREGEX">false</boolProp>
  228. </JSONPathAssertion>
  229. <hashTree/>
  230. </hashTree>
  231. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_CreateRule2" enabled="true">
  232. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  233. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  234. <collectionProp name="Arguments.arguments">
  235. <elementProp name="" elementType="HTTPArgument">
  236. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  237. <stringProp name="Argument.value">{&#xd;
  238. &quot;id&quot;: &quot;rule2&quot;,&#xd;
  239. &quot;sql&quot;: &quot;SELECT * FROM demo WHERE humidity &gt; 50&quot;,&#xd;
  240. &quot;actions&quot;: [&#xd;
  241. {&#xd;
  242. &quot;mqtt&quot;: {&#xd;
  243. &quot;server&quot;: &quot;tcp://${mqtt_srv}:1883&quot;,&#xd;
  244. &quot;topic&quot;: &quot;devices/result/humidity&quot;,&#xd;
  245. &quot;qos&quot;: 1,&#xd;
  246. &quot;clientId&quot;: &quot;demo_002&quot;&#xd;
  247. }&#xd;
  248. }&#xd;
  249. ]&#xd;
  250. }</stringProp>
  251. <stringProp name="Argument.metadata">=</stringProp>
  252. </elementProp>
  253. </collectionProp>
  254. </elementProp>
  255. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  256. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  257. <stringProp name="HTTPSampler.protocol"></stringProp>
  258. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  259. <stringProp name="HTTPSampler.path">/rules</stringProp>
  260. <stringProp name="HTTPSampler.method">POST</stringProp>
  261. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  262. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  263. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  264. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  265. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  266. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  267. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  268. </HTTPSamplerProxy>
  269. <hashTree>
  270. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  271. <collectionProp name="Asserion.test_strings">
  272. <stringProp name="1979367491">Rule rule2 was created</stringProp>
  273. </collectionProp>
  274. <stringProp name="Assertion.custom_message"></stringProp>
  275. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  276. <boolProp name="Assertion.assume_success">true</boolProp>
  277. <intProp name="Assertion.test_type">16</intProp>
  278. </ResponseAssertion>
  279. <hashTree/>
  280. </hashTree>
  281. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_GetRule2Status" enabled="true">
  282. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  283. <collectionProp name="Arguments.arguments"/>
  284. </elementProp>
  285. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  286. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  287. <stringProp name="HTTPSampler.protocol"></stringProp>
  288. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  289. <stringProp name="HTTPSampler.path">/rules/rule2/status</stringProp>
  290. <stringProp name="HTTPSampler.method">GET</stringProp>
  291. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  292. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  293. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  294. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  295. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  296. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  297. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  298. </HTTPSamplerProxy>
  299. <hashTree>
  300. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  301. <stringProp name="JSON_PATH">$.source_demo_0_records_in_total</stringProp>
  302. <stringProp name="EXPECTED_VALUE">0</stringProp>
  303. <boolProp name="JSONVALIDATION">true</boolProp>
  304. <boolProp name="EXPECT_NULL">false</boolProp>
  305. <boolProp name="INVERT">false</boolProp>
  306. <boolProp name="ISREGEX">false</boolProp>
  307. </JSONPathAssertion>
  308. <hashTree/>
  309. </hashTree>
  310. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_CreateRule3" enabled="true">
  311. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  312. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  313. <collectionProp name="Arguments.arguments">
  314. <elementProp name="" elementType="HTTPArgument">
  315. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  316. <stringProp name="Argument.value">{&#xd;
  317. &quot;id&quot;: &quot;rule3&quot;,&#xd;
  318. &quot;sql&quot;: &quot;SELECT * FROM demo WHERE temperature &lt; 30 and humidity &lt; 50&quot;,&#xd;
  319. &quot;actions&quot;: [&#xd;
  320. {&#xd;
  321. &quot;mqtt&quot;: {&#xd;
  322. &quot;server&quot;: &quot;tcp://${mqtt_srv}:1883&quot;,&#xd;
  323. &quot;topic&quot;: &quot;devices/result/both&quot;,&#xd;
  324. &quot;qos&quot;: 1,&#xd;
  325. &quot;clientId&quot;: &quot;demo_003&quot;&#xd;
  326. }&#xd;
  327. }&#xd;
  328. ]&#xd;
  329. }</stringProp>
  330. <stringProp name="Argument.metadata">=</stringProp>
  331. </elementProp>
  332. </collectionProp>
  333. </elementProp>
  334. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  335. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  336. <stringProp name="HTTPSampler.protocol"></stringProp>
  337. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  338. <stringProp name="HTTPSampler.path">/rules</stringProp>
  339. <stringProp name="HTTPSampler.method">POST</stringProp>
  340. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  341. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  342. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  343. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  344. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  345. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  346. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  347. </HTTPSamplerProxy>
  348. <hashTree>
  349. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  350. <collectionProp name="Asserion.test_strings">
  351. <stringProp name="1685964484">Rule rule3 was created</stringProp>
  352. </collectionProp>
  353. <stringProp name="Assertion.custom_message"></stringProp>
  354. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  355. <boolProp name="Assertion.assume_success">true</boolProp>
  356. <intProp name="Assertion.test_type">16</intProp>
  357. </ResponseAssertion>
  358. <hashTree/>
  359. </hashTree>
  360. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_GetRule3Status" enabled="true">
  361. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  362. <collectionProp name="Arguments.arguments"/>
  363. </elementProp>
  364. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  365. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  366. <stringProp name="HTTPSampler.protocol"></stringProp>
  367. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  368. <stringProp name="HTTPSampler.path">/rules/rule3/status</stringProp>
  369. <stringProp name="HTTPSampler.method">GET</stringProp>
  370. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  371. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  372. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  373. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  374. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  375. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  376. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  377. </HTTPSamplerProxy>
  378. <hashTree>
  379. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  380. <stringProp name="JSON_PATH">$.source_demo_0_records_in_total</stringProp>
  381. <stringProp name="EXPECTED_VALUE">0</stringProp>
  382. <boolProp name="JSONVALIDATION">true</boolProp>
  383. <boolProp name="EXPECT_NULL">false</boolProp>
  384. <boolProp name="INVERT">false</boolProp>
  385. <boolProp name="ISREGEX">false</boolProp>
  386. </JSONPathAssertion>
  387. <hashTree/>
  388. </hashTree>
  389. <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="loop_controller" enabled="true">
  390. <boolProp name="LoopController.continue_forever">true</boolProp>
  391. <stringProp name="LoopController.loops">10</stringProp>
  392. </LoopController>
  393. <hashTree>
  394. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
  395. <stringProp name="delimiter">,</stringProp>
  396. <stringProp name="fileEncoding"></stringProp>
  397. <stringProp name="filename">iot_data.txt</stringProp>
  398. <boolProp name="ignoreFirstLine">false</boolProp>
  399. <boolProp name="quotedData">false</boolProp>
  400. <boolProp name="recycle">true</boolProp>
  401. <stringProp name="shareMode">shareMode.thread</stringProp>
  402. <boolProp name="stopThread">false</boolProp>
  403. <stringProp name="variableNames">device_id,temperature,humidity</stringProp>
  404. </CSVDataSet>
  405. <hashTree/>
  406. <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="MQTT Pub Sampler" enabled="true">
  407. <stringProp name="mqtt.topic_name">devices/${device_id}/messages</stringProp>
  408. <stringProp name="mqtt.qos_level">0</stringProp>
  409. <boolProp name="mqtt.add_timestamp">false</boolProp>
  410. <stringProp name="mqtt.message_type">String</stringProp>
  411. <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
  412. <stringProp name="mqtt.message_to_sent">{&quot;temperature&quot;: ${temperature}, &quot;humidity&quot; : ${humidity}}</stringProp>
  413. <boolProp name="mqtt.retained_message">false</boolProp>
  414. </net.xmeter.samplers.PubSampler>
  415. <hashTree/>
  416. </hashTree>
  417. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_GetRule1Status" enabled="true">
  418. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  419. <collectionProp name="Arguments.arguments"/>
  420. </elementProp>
  421. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  422. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  423. <stringProp name="HTTPSampler.protocol"></stringProp>
  424. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  425. <stringProp name="HTTPSampler.path">/rules/rule1/status</stringProp>
  426. <stringProp name="HTTPSampler.method">GET</stringProp>
  427. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  428. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  429. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  430. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  431. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  432. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  433. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  434. </HTTPSamplerProxy>
  435. <hashTree>
  436. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  437. <stringProp name="JSON_PATH">$.source_demo_0_records_in_total</stringProp>
  438. <stringProp name="EXPECTED_VALUE">10</stringProp>
  439. <boolProp name="JSONVALIDATION">true</boolProp>
  440. <boolProp name="EXPECT_NULL">false</boolProp>
  441. <boolProp name="INVERT">false</boolProp>
  442. <boolProp name="ISREGEX">false</boolProp>
  443. </JSONPathAssertion>
  444. <hashTree/>
  445. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="false">
  446. <stringProp name="JSON_PATH">$.sink_mqtt_0_0_records_in_total</stringProp>
  447. <stringProp name="EXPECTED_VALUE">6</stringProp>
  448. <boolProp name="JSONVALIDATION">true</boolProp>
  449. <boolProp name="EXPECT_NULL">false</boolProp>
  450. <boolProp name="INVERT">false</boolProp>
  451. <boolProp name="ISREGEX">false</boolProp>
  452. </JSONPathAssertion>
  453. <hashTree/>
  454. <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
  455. <stringProp name="ConstantTimer.delay">5000</stringProp>
  456. </ConstantTimer>
  457. <hashTree/>
  458. </hashTree>
  459. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_DropRule1" enabled="true">
  460. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  461. <collectionProp name="Arguments.arguments"/>
  462. </elementProp>
  463. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  464. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  465. <stringProp name="HTTPSampler.protocol"></stringProp>
  466. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  467. <stringProp name="HTTPSampler.path">/rules/rule1</stringProp>
  468. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  469. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  470. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  471. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  472. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  473. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  474. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  475. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  476. </HTTPSamplerProxy>
  477. <hashTree>
  478. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  479. <collectionProp name="Asserion.test_strings">
  480. <stringProp name="717250485">Rule rule1 is dropped.</stringProp>
  481. </collectionProp>
  482. <stringProp name="Assertion.custom_message"></stringProp>
  483. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  484. <boolProp name="Assertion.assume_success">false</boolProp>
  485. <intProp name="Assertion.test_type">16</intProp>
  486. </ResponseAssertion>
  487. <hashTree/>
  488. </hashTree>
  489. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_GetRule2Status" enabled="true">
  490. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  491. <collectionProp name="Arguments.arguments"/>
  492. </elementProp>
  493. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  494. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  495. <stringProp name="HTTPSampler.protocol"></stringProp>
  496. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  497. <stringProp name="HTTPSampler.path">/rules/rule2/status</stringProp>
  498. <stringProp name="HTTPSampler.method">GET</stringProp>
  499. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  500. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  501. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  502. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  503. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  504. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  505. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  506. </HTTPSamplerProxy>
  507. <hashTree>
  508. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  509. <stringProp name="JSON_PATH">$.source_demo_0_records_in_total</stringProp>
  510. <stringProp name="EXPECTED_VALUE">10</stringProp>
  511. <boolProp name="JSONVALIDATION">true</boolProp>
  512. <boolProp name="EXPECT_NULL">false</boolProp>
  513. <boolProp name="INVERT">false</boolProp>
  514. <boolProp name="ISREGEX">false</boolProp>
  515. </JSONPathAssertion>
  516. <hashTree/>
  517. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="false">
  518. <stringProp name="JSON_PATH">$.sink_mqtt_0_0_records_in_total</stringProp>
  519. <stringProp name="EXPECTED_VALUE">2</stringProp>
  520. <boolProp name="JSONVALIDATION">true</boolProp>
  521. <boolProp name="EXPECT_NULL">false</boolProp>
  522. <boolProp name="INVERT">false</boolProp>
  523. <boolProp name="ISREGEX">false</boolProp>
  524. </JSONPathAssertion>
  525. <hashTree/>
  526. <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
  527. <stringProp name="ConstantTimer.delay">5000</stringProp>
  528. </ConstantTimer>
  529. <hashTree/>
  530. </hashTree>
  531. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_DropRule2" enabled="true">
  532. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  533. <collectionProp name="Arguments.arguments"/>
  534. </elementProp>
  535. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  536. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  537. <stringProp name="HTTPSampler.protocol"></stringProp>
  538. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  539. <stringProp name="HTTPSampler.path">/rules/rule2</stringProp>
  540. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  541. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  542. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  543. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  544. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  545. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  546. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  547. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  548. </HTTPSamplerProxy>
  549. <hashTree>
  550. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  551. <collectionProp name="Asserion.test_strings">
  552. <stringProp name="423847478">Rule rule2 is dropped.</stringProp>
  553. </collectionProp>
  554. <stringProp name="Assertion.custom_message"></stringProp>
  555. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  556. <boolProp name="Assertion.assume_success">false</boolProp>
  557. <intProp name="Assertion.test_type">16</intProp>
  558. </ResponseAssertion>
  559. <hashTree/>
  560. </hashTree>
  561. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_GetRule3Status" enabled="true">
  562. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  563. <collectionProp name="Arguments.arguments"/>
  564. </elementProp>
  565. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  566. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  567. <stringProp name="HTTPSampler.protocol"></stringProp>
  568. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  569. <stringProp name="HTTPSampler.path">/rules/rule3/status</stringProp>
  570. <stringProp name="HTTPSampler.method">GET</stringProp>
  571. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  572. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  573. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  574. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  575. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  576. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  577. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  578. </HTTPSamplerProxy>
  579. <hashTree>
  580. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
  581. <stringProp name="JSON_PATH">$.source_demo_0_records_in_total</stringProp>
  582. <stringProp name="EXPECTED_VALUE">10</stringProp>
  583. <boolProp name="JSONVALIDATION">true</boolProp>
  584. <boolProp name="EXPECT_NULL">false</boolProp>
  585. <boolProp name="INVERT">false</boolProp>
  586. <boolProp name="ISREGEX">false</boolProp>
  587. </JSONPathAssertion>
  588. <hashTree/>
  589. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="false">
  590. <stringProp name="JSON_PATH">$.sink_mqtt_0_0_records_in_total</stringProp>
  591. <stringProp name="EXPECTED_VALUE">3</stringProp>
  592. <boolProp name="JSONVALIDATION">true</boolProp>
  593. <boolProp name="EXPECT_NULL">false</boolProp>
  594. <boolProp name="INVERT">false</boolProp>
  595. <boolProp name="ISREGEX">false</boolProp>
  596. </JSONPathAssertion>
  597. <hashTree/>
  598. <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
  599. <stringProp name="ConstantTimer.delay">5000</stringProp>
  600. </ConstantTimer>
  601. <hashTree/>
  602. </hashTree>
  603. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_DropRule3" enabled="true">
  604. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  605. <collectionProp name="Arguments.arguments"/>
  606. </elementProp>
  607. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  608. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  609. <stringProp name="HTTPSampler.protocol"></stringProp>
  610. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  611. <stringProp name="HTTPSampler.path">/rules/rule3</stringProp>
  612. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  613. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  614. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  615. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  616. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  617. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  618. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  619. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  620. </HTTPSamplerProxy>
  621. <hashTree>
  622. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  623. <collectionProp name="Asserion.test_strings">
  624. <stringProp name="130444471">Rule rule3 is dropped.</stringProp>
  625. </collectionProp>
  626. <stringProp name="Assertion.custom_message"></stringProp>
  627. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  628. <boolProp name="Assertion.assume_success">false</boolProp>
  629. <intProp name="Assertion.test_type">16</intProp>
  630. </ResponseAssertion>
  631. <hashTree/>
  632. </hashTree>
  633. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API_Drop_Stream" enabled="true">
  634. <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  635. <collectionProp name="Arguments.arguments"/>
  636. </elementProp>
  637. <stringProp name="HTTPSampler.domain">${srv}</stringProp>
  638. <stringProp name="HTTPSampler.port">${rest_port}</stringProp>
  639. <stringProp name="HTTPSampler.protocol"></stringProp>
  640. <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  641. <stringProp name="HTTPSampler.path">/streams/demo</stringProp>
  642. <stringProp name="HTTPSampler.method">DELETE</stringProp>
  643. <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  644. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  645. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  646. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  647. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  648. <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  649. <stringProp name="HTTPSampler.response_timeout"></stringProp>
  650. </HTTPSamplerProxy>
  651. <hashTree>
  652. <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
  653. <collectionProp name="Asserion.test_strings">
  654. <stringProp name="287881319">Stream demo is dropped.</stringProp>
  655. </collectionProp>
  656. <stringProp name="Assertion.custom_message"></stringProp>
  657. <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  658. <boolProp name="Assertion.assume_success">false</boolProp>
  659. <intProp name="Assertion.test_type">16</intProp>
  660. </ResponseAssertion>
  661. <hashTree/>
  662. </hashTree>
  663. <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
  664. <stringProp name="ConstantTimer.delay">500</stringProp>
  665. </ConstantTimer>
  666. <hashTree/>
  667. </hashTree>
  668. </hashTree>
  669. <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Result1" enabled="true">
  670. <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  671. <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
  672. <boolProp name="LoopController.continue_forever">false</boolProp>
  673. <stringProp name="LoopController.loops">6</stringProp>
  674. </elementProp>
  675. <stringProp name="ThreadGroup.num_threads">1</stringProp>
  676. <stringProp name="ThreadGroup.ramp_time">1</stringProp>
  677. <boolProp name="ThreadGroup.scheduler">false</boolProp>
  678. <stringProp name="ThreadGroup.duration"></stringProp>
  679. <stringProp name="ThreadGroup.delay"></stringProp>
  680. <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
  681. </ThreadGroup>
  682. <hashTree>
  683. <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
  684. <boolProp name="ResultCollector.error_logging">false</boolProp>
  685. <objProp>
  686. <name>saveConfig</name>
  687. <value class="SampleSaveConfiguration">
  688. <time>true</time>
  689. <latency>true</latency>
  690. <timestamp>true</timestamp>
  691. <success>true</success>
  692. <label>true</label>
  693. <code>true</code>
  694. <message>true</message>
  695. <threadName>true</threadName>
  696. <dataType>true</dataType>
  697. <encoding>false</encoding>
  698. <assertions>true</assertions>
  699. <subresults>true</subresults>
  700. <responseData>false</responseData>
  701. <samplerData>false</samplerData>
  702. <xml>false</xml>
  703. <fieldNames>true</fieldNames>
  704. <responseHeaders>false</responseHeaders>
  705. <requestHeaders>false</requestHeaders>
  706. <responseDataOnError>false</responseDataOnError>
  707. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  708. <assertionsResultsToSave>0</assertionsResultsToSave>
  709. <bytes>true</bytes>
  710. <sentBytes>true</sentBytes>
  711. <threadCounts>true</threadCounts>
  712. <idleTime>true</idleTime>
  713. <connectTime>true</connectTime>
  714. </value>
  715. </objProp>
  716. <stringProp name="filename"></stringProp>
  717. </ResultCollector>
  718. <hashTree/>
  719. <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true"/>
  720. <hashTree>
  721. <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="MQTT Connect" enabled="true">
  722. <stringProp name="mqtt.server">${mqtt_srv}</stringProp>
  723. <stringProp name="mqtt.port">1883</stringProp>
  724. <stringProp name="mqtt.version">3.1</stringProp>
  725. <stringProp name="mqtt.conn_timeout">10</stringProp>
  726. <boolProp name="mqtt.private_protocol">false</boolProp>
  727. <stringProp name="mqtt.listener_timeout">10</stringProp>
  728. <stringProp name="mqtt.protocol">TCP</stringProp>
  729. <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
  730. <stringProp name="mqtt.keystore_file_path"></stringProp>
  731. <stringProp name="mqtt.keystore_password"></stringProp>
  732. <stringProp name="mqtt.clientcert_file_path"></stringProp>
  733. <stringProp name="mqtt.clientcert_password"></stringProp>
  734. <stringProp name="mqtt.user_name"></stringProp>
  735. <stringProp name="mqtt.password"></stringProp>
  736. <stringProp name="mqtt.client_id_prefix">conn_</stringProp>
  737. <boolProp name="mqtt.client_id_suffix">true</boolProp>
  738. <stringProp name="mqtt.conn_keep_alive">300</stringProp>
  739. <stringProp name="mqtt.conn_attampt_max">0</stringProp>
  740. <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
  741. <boolProp name="mqtt.conn_clean_session">true</boolProp>
  742. </net.xmeter.samplers.ConnectSampler>
  743. <hashTree/>
  744. </hashTree>
  745. <net.xmeter.samplers.SubSampler guiclass="net.xmeter.gui.SubSamplerUI" testclass="net.xmeter.samplers.SubSampler" testname="AnalysisResult" enabled="true">
  746. <stringProp name="mqtt.topic_name">devices/result/temperature</stringProp>
  747. <stringProp name="mqtt.qos_level">0</stringProp>
  748. <boolProp name="mqtt.add_timestamp">false</boolProp>
  749. <boolProp name="mqtt.debug_response">true</boolProp>
  750. <stringProp name="mqtt.sample_condition">number of received messages</stringProp>
  751. <stringProp name="mqtt.sample_condition_value">1</stringProp>
  752. </net.xmeter.samplers.SubSampler>
  753. <hashTree>
  754. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="temperature Assertion" enabled="true">
  755. <stringProp name="JSON_PATH">$[0].temperature</stringProp>
  756. <stringProp name="EXPECTED_VALUE">${temperature}</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. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="humidity Assertion" enabled="true">
  764. <stringProp name="JSON_PATH">$[0].humidity</stringProp>
  765. <stringProp name="EXPECTED_VALUE">${humidity}</stringProp>
  766. <boolProp name="JSONVALIDATION">true</boolProp>
  767. <boolProp name="EXPECT_NULL">false</boolProp>
  768. <boolProp name="INVERT">false</boolProp>
  769. <boolProp name="ISREGEX">false</boolProp>
  770. </JSONPathAssertion>
  771. <hashTree/>
  772. </hashTree>
  773. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
  774. <stringProp name="delimiter">,</stringProp>
  775. <stringProp name="fileEncoding"></stringProp>
  776. <stringProp name="filename">select_condition_iot_data.txt</stringProp>
  777. <boolProp name="ignoreFirstLine">false</boolProp>
  778. <boolProp name="quotedData">false</boolProp>
  779. <boolProp name="recycle">true</boolProp>
  780. <stringProp name="shareMode">shareMode.thread</stringProp>
  781. <boolProp name="stopThread">false</boolProp>
  782. <stringProp name="variableNames">device_id,temperature,humidity</stringProp>
  783. </CSVDataSet>
  784. <hashTree/>
  785. </hashTree>
  786. <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Result2" enabled="true">
  787. <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  788. <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
  789. <boolProp name="LoopController.continue_forever">false</boolProp>
  790. <stringProp name="LoopController.loops">2</stringProp>
  791. </elementProp>
  792. <stringProp name="ThreadGroup.num_threads">1</stringProp>
  793. <stringProp name="ThreadGroup.ramp_time">1</stringProp>
  794. <boolProp name="ThreadGroup.scheduler">false</boolProp>
  795. <stringProp name="ThreadGroup.duration"></stringProp>
  796. <stringProp name="ThreadGroup.delay"></stringProp>
  797. <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
  798. </ThreadGroup>
  799. <hashTree>
  800. <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
  801. <boolProp name="ResultCollector.error_logging">false</boolProp>
  802. <objProp>
  803. <name>saveConfig</name>
  804. <value class="SampleSaveConfiguration">
  805. <time>true</time>
  806. <latency>true</latency>
  807. <timestamp>true</timestamp>
  808. <success>true</success>
  809. <label>true</label>
  810. <code>true</code>
  811. <message>true</message>
  812. <threadName>true</threadName>
  813. <dataType>true</dataType>
  814. <encoding>false</encoding>
  815. <assertions>true</assertions>
  816. <subresults>true</subresults>
  817. <responseData>false</responseData>
  818. <samplerData>false</samplerData>
  819. <xml>false</xml>
  820. <fieldNames>true</fieldNames>
  821. <responseHeaders>false</responseHeaders>
  822. <requestHeaders>false</requestHeaders>
  823. <responseDataOnError>false</responseDataOnError>
  824. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  825. <assertionsResultsToSave>0</assertionsResultsToSave>
  826. <bytes>true</bytes>
  827. <sentBytes>true</sentBytes>
  828. <threadCounts>true</threadCounts>
  829. <idleTime>true</idleTime>
  830. <connectTime>true</connectTime>
  831. </value>
  832. </objProp>
  833. <stringProp name="filename"></stringProp>
  834. </ResultCollector>
  835. <hashTree/>
  836. <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true"/>
  837. <hashTree>
  838. <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="MQTT Connect" enabled="true">
  839. <stringProp name="mqtt.server">${mqtt_srv}</stringProp>
  840. <stringProp name="mqtt.port">1883</stringProp>
  841. <stringProp name="mqtt.version">3.1</stringProp>
  842. <stringProp name="mqtt.conn_timeout">10</stringProp>
  843. <boolProp name="mqtt.private_protocol">false</boolProp>
  844. <stringProp name="mqtt.listener_timeout">10</stringProp>
  845. <stringProp name="mqtt.protocol">TCP</stringProp>
  846. <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
  847. <stringProp name="mqtt.keystore_file_path"></stringProp>
  848. <stringProp name="mqtt.keystore_password"></stringProp>
  849. <stringProp name="mqtt.clientcert_file_path"></stringProp>
  850. <stringProp name="mqtt.clientcert_password"></stringProp>
  851. <stringProp name="mqtt.user_name"></stringProp>
  852. <stringProp name="mqtt.password"></stringProp>
  853. <stringProp name="mqtt.client_id_prefix">conn_</stringProp>
  854. <boolProp name="mqtt.client_id_suffix">true</boolProp>
  855. <stringProp name="mqtt.conn_keep_alive">300</stringProp>
  856. <stringProp name="mqtt.conn_attampt_max">0</stringProp>
  857. <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
  858. <boolProp name="mqtt.conn_clean_session">true</boolProp>
  859. </net.xmeter.samplers.ConnectSampler>
  860. <hashTree/>
  861. </hashTree>
  862. <net.xmeter.samplers.SubSampler guiclass="net.xmeter.gui.SubSamplerUI" testclass="net.xmeter.samplers.SubSampler" testname="AnalysisResult" enabled="true">
  863. <stringProp name="mqtt.topic_name">devices/result/humidity</stringProp>
  864. <stringProp name="mqtt.qos_level">0</stringProp>
  865. <boolProp name="mqtt.add_timestamp">false</boolProp>
  866. <boolProp name="mqtt.debug_response">true</boolProp>
  867. <stringProp name="mqtt.sample_condition">number of received messages</stringProp>
  868. <stringProp name="mqtt.sample_condition_value">1</stringProp>
  869. </net.xmeter.samplers.SubSampler>
  870. <hashTree>
  871. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="temperature Assertion" enabled="true">
  872. <stringProp name="JSON_PATH">$[0].temperature</stringProp>
  873. <stringProp name="EXPECTED_VALUE">${temperature}</stringProp>
  874. <boolProp name="JSONVALIDATION">true</boolProp>
  875. <boolProp name="EXPECT_NULL">false</boolProp>
  876. <boolProp name="INVERT">false</boolProp>
  877. <boolProp name="ISREGEX">false</boolProp>
  878. </JSONPathAssertion>
  879. <hashTree/>
  880. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="humidity Assertion" enabled="true">
  881. <stringProp name="JSON_PATH">$[0].humidity</stringProp>
  882. <stringProp name="EXPECTED_VALUE">${humidity}</stringProp>
  883. <boolProp name="JSONVALIDATION">true</boolProp>
  884. <boolProp name="EXPECT_NULL">false</boolProp>
  885. <boolProp name="INVERT">false</boolProp>
  886. <boolProp name="ISREGEX">false</boolProp>
  887. </JSONPathAssertion>
  888. <hashTree/>
  889. </hashTree>
  890. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
  891. <stringProp name="delimiter">,</stringProp>
  892. <stringProp name="fileEncoding"></stringProp>
  893. <stringProp name="filename">select_condition_iot_data2.txt</stringProp>
  894. <boolProp name="ignoreFirstLine">false</boolProp>
  895. <boolProp name="quotedData">false</boolProp>
  896. <boolProp name="recycle">true</boolProp>
  897. <stringProp name="shareMode">shareMode.thread</stringProp>
  898. <boolProp name="stopThread">false</boolProp>
  899. <stringProp name="variableNames">device_id,temperature,humidity</stringProp>
  900. </CSVDataSet>
  901. <hashTree/>
  902. </hashTree>
  903. <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Result3" enabled="true">
  904. <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  905. <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
  906. <boolProp name="LoopController.continue_forever">false</boolProp>
  907. <stringProp name="LoopController.loops">3</stringProp>
  908. </elementProp>
  909. <stringProp name="ThreadGroup.num_threads">1</stringProp>
  910. <stringProp name="ThreadGroup.ramp_time">1</stringProp>
  911. <boolProp name="ThreadGroup.scheduler">false</boolProp>
  912. <stringProp name="ThreadGroup.duration"></stringProp>
  913. <stringProp name="ThreadGroup.delay"></stringProp>
  914. <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
  915. </ThreadGroup>
  916. <hashTree>
  917. <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
  918. <boolProp name="ResultCollector.error_logging">false</boolProp>
  919. <objProp>
  920. <name>saveConfig</name>
  921. <value class="SampleSaveConfiguration">
  922. <time>true</time>
  923. <latency>true</latency>
  924. <timestamp>true</timestamp>
  925. <success>true</success>
  926. <label>true</label>
  927. <code>true</code>
  928. <message>true</message>
  929. <threadName>true</threadName>
  930. <dataType>true</dataType>
  931. <encoding>false</encoding>
  932. <assertions>true</assertions>
  933. <subresults>true</subresults>
  934. <responseData>false</responseData>
  935. <samplerData>false</samplerData>
  936. <xml>false</xml>
  937. <fieldNames>true</fieldNames>
  938. <responseHeaders>false</responseHeaders>
  939. <requestHeaders>false</requestHeaders>
  940. <responseDataOnError>false</responseDataOnError>
  941. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  942. <assertionsResultsToSave>0</assertionsResultsToSave>
  943. <bytes>true</bytes>
  944. <sentBytes>true</sentBytes>
  945. <threadCounts>true</threadCounts>
  946. <idleTime>true</idleTime>
  947. <connectTime>true</connectTime>
  948. </value>
  949. </objProp>
  950. <stringProp name="filename"></stringProp>
  951. </ResultCollector>
  952. <hashTree/>
  953. <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true"/>
  954. <hashTree>
  955. <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="MQTT Connect" enabled="true">
  956. <stringProp name="mqtt.server">${mqtt_srv}</stringProp>
  957. <stringProp name="mqtt.port">1883</stringProp>
  958. <stringProp name="mqtt.version">3.1</stringProp>
  959. <stringProp name="mqtt.conn_timeout">10</stringProp>
  960. <boolProp name="mqtt.private_protocol">false</boolProp>
  961. <stringProp name="mqtt.listener_timeout">10</stringProp>
  962. <stringProp name="mqtt.protocol">TCP</stringProp>
  963. <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
  964. <stringProp name="mqtt.keystore_file_path"></stringProp>
  965. <stringProp name="mqtt.keystore_password"></stringProp>
  966. <stringProp name="mqtt.clientcert_file_path"></stringProp>
  967. <stringProp name="mqtt.clientcert_password"></stringProp>
  968. <stringProp name="mqtt.user_name"></stringProp>
  969. <stringProp name="mqtt.password"></stringProp>
  970. <stringProp name="mqtt.client_id_prefix">conn_</stringProp>
  971. <boolProp name="mqtt.client_id_suffix">true</boolProp>
  972. <stringProp name="mqtt.conn_keep_alive">300</stringProp>
  973. <stringProp name="mqtt.conn_attampt_max">0</stringProp>
  974. <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
  975. <boolProp name="mqtt.conn_clean_session">true</boolProp>
  976. </net.xmeter.samplers.ConnectSampler>
  977. <hashTree/>
  978. </hashTree>
  979. <net.xmeter.samplers.SubSampler guiclass="net.xmeter.gui.SubSamplerUI" testclass="net.xmeter.samplers.SubSampler" testname="AnalysisResult" enabled="true">
  980. <stringProp name="mqtt.topic_name">devices/result/both</stringProp>
  981. <stringProp name="mqtt.qos_level">0</stringProp>
  982. <boolProp name="mqtt.add_timestamp">false</boolProp>
  983. <boolProp name="mqtt.debug_response">true</boolProp>
  984. <stringProp name="mqtt.sample_condition">number of received messages</stringProp>
  985. <stringProp name="mqtt.sample_condition_value">1</stringProp>
  986. </net.xmeter.samplers.SubSampler>
  987. <hashTree>
  988. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="temperature Assertion" enabled="true">
  989. <stringProp name="JSON_PATH">$[0].temperature</stringProp>
  990. <stringProp name="EXPECTED_VALUE">${temperature}</stringProp>
  991. <boolProp name="JSONVALIDATION">true</boolProp>
  992. <boolProp name="EXPECT_NULL">false</boolProp>
  993. <boolProp name="INVERT">false</boolProp>
  994. <boolProp name="ISREGEX">false</boolProp>
  995. </JSONPathAssertion>
  996. <hashTree/>
  997. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="humidity Assertion" enabled="true">
  998. <stringProp name="JSON_PATH">$[0].humidity</stringProp>
  999. <stringProp name="EXPECTED_VALUE">${humidity}</stringProp>
  1000. <boolProp name="JSONVALIDATION">true</boolProp>
  1001. <boolProp name="EXPECT_NULL">false</boolProp>
  1002. <boolProp name="INVERT">false</boolProp>
  1003. <boolProp name="ISREGEX">false</boolProp>
  1004. </JSONPathAssertion>
  1005. <hashTree/>
  1006. </hashTree>
  1007. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
  1008. <stringProp name="delimiter">,</stringProp>
  1009. <stringProp name="fileEncoding"></stringProp>
  1010. <stringProp name="filename">select_condition_iot_data3.txt</stringProp>
  1011. <boolProp name="ignoreFirstLine">false</boolProp>
  1012. <boolProp name="quotedData">false</boolProp>
  1013. <boolProp name="recycle">true</boolProp>
  1014. <stringProp name="shareMode">shareMode.thread</stringProp>
  1015. <boolProp name="stopThread">false</boolProp>
  1016. <stringProp name="variableNames">device_id,temperature,humidity</stringProp>
  1017. </CSVDataSet>
  1018. <hashTree/>
  1019. </hashTree>
  1020. </hashTree>
  1021. </hashTree>
  1022. </jmeterTestPlan>