<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="IOT物实体上报工况" enabled="true">
      <boolProp name="TestPlan.serialize_threadgroups">true</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath">D:\apache-jmeter-5.3\lib\mysql-connector-j-8.3.0.jar</stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <stringProp name="TestPlan.comments"></stringProp>
    </TestPlan>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP信息头管理器" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="User-Agent" elementType="Header">
            <stringProp name="Header.name">User-Agent</stringProp>
            <stringProp name="Header.value">Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Connection</stringProp>
            <stringProp name="Header.value">keep-alive</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Origin</stringProp>
            <stringProp name="Header.value">http://192.168.174.169:30666</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">http://192.168.174.169:30666/iidp/iiot/iiot_thing_menu/iiot_thing_model_menu </stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">cookie</stringProp>
            <stringProp name="Header.value">${__property(token01,,)}</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${__property(token01)}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP请求默认值" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
        <stringProp name="HTTPSampler.port">${port}</stringProp>
        <stringProp name="HTTPSampler.protocol">${http}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
        <stringProp name="HTTPSampler.path"></stringProp>
        <stringProp name="HTTPSampler.concurrentPool">6</stringProp>
        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
        <stringProp name="HTTPSampler.response_timeout"></stringProp>
      </ConfigTestElement>
      <hashTree/>
      <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="IIOT-169环境变量" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="Iiot_login_url" elementType="Argument">
            <stringProp name="Argument.name">Iiot_login_url</stringProp>
            <stringProp name="Argument.value">/api/root/rpc/login?model=&amp;service=</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">登录地址</stringProp>
          </elementProp>
          <elementProp name="Tiot_url" elementType="Argument">
            <stringProp name="Argument.name">Tiot_url</stringProp>
            <stringProp name="Argument.value">192.168.174.169</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">环境地址sit</stringProp>
          </elementProp>
          <elementProp name="username" elementType="Argument">
            <stringProp name="Argument.name">username</stringProp>
            <stringProp name="Argument.value">admin_000001</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">账户</stringProp>
          </elementProp>
          <elementProp name="pwd" elementType="Argument">
            <stringProp name="Argument.name">pwd</stringProp>
            <stringProp name="Argument.value">Admin_000001</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">密码</stringProp>
          </elementProp>
          <elementProp name="MD_pwd" elementType="Argument">
            <stringProp name="Argument.name">MD_pwd</stringProp>
            <stringProp name="Argument.value">QWRtaW5fMDAwMDAx</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="http" elementType="Argument">
            <stringProp name="Argument.name">http</stringProp>
            <stringProp name="Argument.value">http</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="port" elementType="Argument">
            <stringProp name="Argument.name">port</stringProp>
            <stringProp name="Argument.value">30666</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="DatabaseURl" elementType="Argument">
            <stringProp name="Argument.name">DatabaseURl</stringProp>
            <stringProp name="Argument.value">jdbc:mysql://192.168.168.82:3306/sie_iiot_169?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false&amp;allowPublicKeyRetrieval=true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">jdbc连接地址</stringProp>
          </elementProp>
          <elementProp name="name" elementType="Argument">
            <stringProp name="Argument.name">name</stringProp>
            <stringProp name="Argument.value">root</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="pw" elementType="Argument">
            <stringProp name="Argument.name">pw</stringProp>
            <stringProp name="Argument.value">57hgTjfu</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="table" elementType="Argument">
            <stringProp name="Argument.name">table</stringProp>
            <stringProp name="Argument.value">sie_iiot_169</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">表名</stringProp>
          </elementProp>
          <elementProp name="mqttIp" elementType="Argument">
            <stringProp name="Argument.name">mqttIp</stringProp>
            <stringProp name="Argument.value">192.168.174.169</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">连接mqttip地址</stringProp>
          </elementProp>
          <elementProp name="mqttPort" elementType="Argument">
            <stringProp name="Argument.name">mqttPort</stringProp>
            <stringProp name="Argument.value">31882</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">mqtt端口号</stringProp>
          </elementProp>
          <elementProp name="conn_account" elementType="Argument">
            <stringProp name="Argument.name">conn_account</stringProp>
            <stringProp name="Argument.value">123456</stringProp>
            <stringProp name="Argument.desc">认证标识</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="conn_password" elementType="Argument">
            <stringProp name="Argument.name">conn_password</stringProp>
            <stringProp name="Argument.value">admin123456</stringProp>
            <stringProp name="Argument.desc">认证密钥</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="gateway_count" elementType="Argument">
            <stringProp name="Argument.name">gateway_count</stringProp>
            <stringProp name="Argument.value">50</stringProp>
            <stringProp name="Argument.desc">启动网关数</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="gateway_count_seconds" elementType="Argument">
            <stringProp name="Argument.name">gateway_count_seconds</stringProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">每秒启动多少网关</stringProp>
          </elementProp>
          <elementProp name="devcie_Reporting" elementType="Argument">
            <stringProp name="Argument.name">devcie_Reporting</stringProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.desc">设备上报次数</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="Starting_device" elementType="Argument">
            <stringProp name="Argument.name">Starting_device</stringProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.desc">启动设备数</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </Arguments>
      <hashTree/>
      <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="全局变量" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="modle_device_name" elementType="Argument">
            <stringProp name="Argument.name">modle_device_name</stringProp>
            <stringProp name="Argument.value">Jmeter物模型设备${__Random(1,100,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">smdc模型名称</stringProp>
          </elementProp>
          <elementProp name="modle_smdc_name" elementType="Argument">
            <stringProp name="Argument.name">modle_smdc_name</stringProp>
            <stringProp name="Argument.value">Jmeter物模型smdc${__Random(1,100,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">device模型名称</stringProp>
          </elementProp>
        </collectionProp>
      </Arguments>
      <hashTree/>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="清除压测数据" enabled="false">
        <stringProp name="ThreadGroup.num_threads">1</stringProp>
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">1</stringProp>
        </elementProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
        <JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource" testname="连接MYSQL数据库" enabled="true">
          <boolProp name="autocommit">true</boolProp>
          <stringProp name="checkQuery"></stringProp>
          <stringProp name="connectionAge">5000</stringProp>
          <stringProp name="connectionProperties"></stringProp>
          <stringProp name="dataSource">mysql</stringProp>
          <stringProp name="dbUrl">${DatabaseURl}</stringProp>
          <stringProp name="driver">com.mysql.cj.jdbc.Driver</stringProp>
          <stringProp name="initQuery"></stringProp>
          <boolProp name="keepAlive">true</boolProp>
          <stringProp name="password">${pw}</stringProp>
          <stringProp name="poolMax">10</stringProp>
          <boolProp name="preinit">false</boolProp>
          <stringProp name="timeout">10000</stringProp>
          <stringProp name="transactionIsolation">DEFAULT</stringProp>
          <stringProp name="trimInterval">60000</stringProp>
          <stringProp name="username">${name}</stringProp>
        </JDBCDataSource>
        <hashTree/>
        <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="删除物模型" enabled="false">
          <stringProp name="dataSource">mysql</stringProp>
          <stringProp name="query">DELETE FROM `${table}`.`iiot_thing_model` WHERE `name` LIKE &apos;Jmeter%&apos;</stringProp>
          <stringProp name="queryArguments"></stringProp>
          <stringProp name="queryArgumentsTypes"></stringProp>
          <stringProp name="queryTimeout"></stringProp>
          <stringProp name="queryType">Update Statement</stringProp>
          <stringProp name="resultSetHandler">Store as String</stringProp>
          <stringProp name="resultSetMaxRows"></stringProp>
          <stringProp name="resultVariable"></stringProp>
          <stringProp name="variableNames"></stringProp>
        </JDBCSampler>
        <hashTree/>
        <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="删除物实体" enabled="true">
          <stringProp name="dataSource">mysql</stringProp>
          <stringProp name="query">DELETE FROM `${table}`.`iiot_thing_entity` WHERE `name` LIKE &apos;XNJmeter%&apos;</stringProp>
          <stringProp name="queryArguments"></stringProp>
          <stringProp name="queryArgumentsTypes"></stringProp>
          <stringProp name="queryTimeout"></stringProp>
          <stringProp name="queryType">Update Statement</stringProp>
          <stringProp name="resultSetHandler">Store as String</stringProp>
          <stringProp name="resultSetMaxRows"></stringProp>
          <stringProp name="resultVariable"></stringProp>
          <stringProp name="variableNames"></stringProp>
        </JDBCSampler>
        <hashTree/>
      </hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="设备节点调度" enabled="false">
        <stringProp name="ThreadGroup.num_threads">1</stringProp>
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">1</stringProp>
        </elementProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="登录" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;lang&quot;: &quot;zh_CN&quot;,&#xd;
      &quot;uid&quot;: &quot;&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;app&quot;: &quot;base&quot;,&#xd;
    &quot;login&quot;: &quot;${username}&quot;,&#xd;
    &quot;password&quot;: &quot;${MD_pwd}&quot;,&#xd;
    &quot;remember&quot;: true&#xd;
  }&#xd;
}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"></stringProp>
          <stringProp name="HTTPSampler.port"></stringProp>
          <stringProp name="HTTPSampler.protocol"></stringProp>
          <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
          <stringProp name="HTTPSampler.path">${Iiot_login_url}</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
          <stringProp name="HTTPSampler.response_timeout"></stringProp>
        </HTTPSamplerProxy>
        <hashTree>
          <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="提取token" enabled="true">
            <stringProp name="JSONPostProcessor.referenceNames">token</stringProp>
            <stringProp name="JSONPostProcessor.jsonPathExprs">result.data.token</stringProp>
            <stringProp name="JSONPostProcessor.match_numbers"></stringProp>
          </JSONPostProcessor>
          <hashTree/>
          <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell 后置处理程序(全局变量）" enabled="true">
            <stringProp name="filename"></stringProp>
            <stringProp name="parameters"></stringProp>
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="script">${__setProperty(token01,${token},)}</stringProp>
          </BeanShellPostProcessor>
          <hashTree/>
        </hashTree>
        <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell 后置处理程序(中文乱码）" enabled="true">
          <stringProp name="filename"></stringProp>
          <stringProp name="parameters"></stringProp>
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="script">prev.setDataEncoding(&quot;utf-8&quot;)</stringProp>
        </BeanShellPostProcessor>
        <hashTree/>
        <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="iiot" elementType="Argument">
              <stringProp name="Argument.name">iiot</stringProp>
              <stringProp name="Argument.value">iiot</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
            <elementProp name="iiot1" elementType="Argument">
              <stringProp name="Argument.name">iiot1</stringProp>
              <stringProp name="Argument.value">iiot1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </Arguments>
        <hashTree/>
        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="网关调度" enabled="false">
          <boolProp name="LoopController.continue_forever">true</boolProp>
          <stringProp name="LoopController.loops">100</stringProp>
        </LoopController>
        <hashTree>
          <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="smdc网关" enabled="true">
            <stringProp name="CounterConfig.start">151</stringProp>
            <stringProp name="CounterConfig.end">250</stringProp>
            <stringProp name="CounterConfig.incr">1</stringProp>
            <stringProp name="CounterConfig.name">gateway_id</stringProp>
            <stringProp name="CounterConfig.format"></stringProp>
            <boolProp name="CounterConfig.per_user">false</boolProp>
          </CounterConfig>
          <hashTree/>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="网关节点iiot1:smdc${gateway_id}" enabled="false">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
              <collectionProp name="Arguments.arguments">
                <elementProp name="" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">false</boolProp>
                  <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;serviceName&quot;: &quot;${iiot1}&quot;,&#xd;
      &quot;ids&quot;: [&#xd;
        &quot;smdc${gateway_id}&quot;&#xd;
      ],&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;uid&quot;: &quot;&quot;,&#xd;
      &quot;timeZone&quot;: &quot;UTC+8&quot;,&#xd;
      &quot;lang&quot;: &quot;zh-CN&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;iiot_device_schedule&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;service&quot;: &quot;schedule&quot;,&#xd;
    &quot;app&quot;: &quot;iiot_device_scheduler&quot;&#xd;
  }&#xd;
}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
            <stringProp name="HTTPSampler.port">${port}</stringProp>
            <stringProp name="HTTPSampler.protocol">${http}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
            <stringProp name="HTTPSampler.path">/api/root/rpc/service/?model=iiot_device_schedule&amp;service=schedule</stringProp>
            <stringProp name="HTTPSampler.method">POST</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            <stringProp name="HTTPSampler.connect_timeout"></stringProp>
            <stringProp name="HTTPSampler.response_timeout"></stringProp>
          </HTTPSamplerProxy>
          <hashTree>
            <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON断言" enabled="true">
              <stringProp name="JSON_PATH">result.data</stringProp>
              <stringProp name="EXPECTED_VALUE">true</stringProp>
              <boolProp name="JSONVALIDATION">true</boolProp>
              <boolProp name="EXPECT_NULL">false</boolProp>
              <boolProp name="INVERT">false</boolProp>
              <boolProp name="ISREGEX">true</boolProp>
            </JSONPathAssertion>
            <hashTree/>
          </hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="网关节点iiot:smdc${gateway_id}" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
              <collectionProp name="Arguments.arguments">
                <elementProp name="" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">false</boolProp>
                  <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;serviceName&quot;: &quot;${iiot}&quot;,&#xd;
      &quot;ids&quot;: [&#xd;
        &quot;smdc${gateway_id}&quot;&#xd;
      ],&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;uid&quot;: &quot;&quot;,&#xd;
      &quot;timeZone&quot;: &quot;UTC+8&quot;,&#xd;
      &quot;lang&quot;: &quot;zh-CN&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;iiot_device_schedule&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;service&quot;: &quot;schedule&quot;,&#xd;
    &quot;app&quot;: &quot;iiot_device_scheduler&quot;&#xd;
  }&#xd;
}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
            <stringProp name="HTTPSampler.port">${port}</stringProp>
            <stringProp name="HTTPSampler.protocol">${http}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
            <stringProp name="HTTPSampler.path">/api/root/rpc/service/?model=iiot_device_schedule&amp;service=schedule</stringProp>
            <stringProp name="HTTPSampler.method">POST</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            <stringProp name="HTTPSampler.connect_timeout"></stringProp>
            <stringProp name="HTTPSampler.response_timeout"></stringProp>
          </HTTPSamplerProxy>
          <hashTree>
            <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON断言" enabled="true">
              <stringProp name="JSON_PATH">result.data</stringProp>
              <stringProp name="EXPECTED_VALUE">true</stringProp>
              <boolProp name="JSONVALIDATION">true</boolProp>
              <boolProp name="EXPECT_NULL">false</boolProp>
              <boolProp name="INVERT">false</boolProp>
              <boolProp name="ISREGEX">true</boolProp>
            </JSONPathAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="设备调度" enabled="true">
          <boolProp name="LoopController.continue_forever">true</boolProp>
          <stringProp name="LoopController.loops">100</stringProp>
        </LoopController>
        <hashTree>
          <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="设备id" enabled="true">
            <stringProp name="CounterConfig.start">151</stringProp>
            <stringProp name="CounterConfig.end">250</stringProp>
            <stringProp name="CounterConfig.incr">1</stringProp>
            <stringProp name="CounterConfig.name">devcie_id</stringProp>
            <stringProp name="CounterConfig.format"></stringProp>
            <boolProp name="CounterConfig.per_user">false</boolProp>
          </CounterConfig>
          <hashTree/>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="设备节点iiot1:XNjmeter_smdc${devcie_id}" enabled="false">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
              <collectionProp name="Arguments.arguments">
                <elementProp name="" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">false</boolProp>
                  <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;serviceName&quot;: &quot;${iiot1}&quot;,&#xd;
      &quot;ids&quot;: [&#xd;
        &quot;smdc${devcie_id}xn9&quot;,&#xd;
        &quot;smdc${devcie_id}xn8&quot;,&#xd;
        &quot;smdc${devcie_id}xn7&quot;,&#xd;
        &quot;smdc${devcie_id}xn6&quot;,&#xd;
        &quot;smdc${devcie_id}xn5&quot;,&#xd;
        &quot;smdc${devcie_id}xn4&quot;,&#xd;
        &quot;smdc${devcie_id}xn3&quot;,&#xd;
        &quot;smdc${devcie_id}xn2&quot;,&#xd;
        &quot;smdc${devcie_id}xn10&quot;,&#xd;
        &quot;smdc${devcie_id}xn1&quot;&#xd;
      ],&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;uid&quot;: &quot;&quot;,&#xd;
      &quot;timeZone&quot;: &quot;UTC+8&quot;,&#xd;
      &quot;lang&quot;: &quot;zh-CN&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;iiot_device_schedule&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;service&quot;: &quot;schedule&quot;,&#xd;
    &quot;app&quot;: &quot;iiot_device_scheduler&quot;&#xd;
  }&#xd;
}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
            <stringProp name="HTTPSampler.port">${port}</stringProp>
            <stringProp name="HTTPSampler.protocol">${http}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
            <stringProp name="HTTPSampler.path">/api/root/rpc/service/?model=iiot_device_schedule&amp;service=schedule</stringProp>
            <stringProp name="HTTPSampler.method">POST</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            <stringProp name="HTTPSampler.connect_timeout"></stringProp>
            <stringProp name="HTTPSampler.response_timeout"></stringProp>
          </HTTPSamplerProxy>
          <hashTree>
            <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON断言" enabled="true">
              <stringProp name="JSON_PATH">result.data</stringProp>
              <stringProp name="EXPECTED_VALUE">true</stringProp>
              <boolProp name="JSONVALIDATION">true</boolProp>
              <boolProp name="EXPECT_NULL">false</boolProp>
              <boolProp name="INVERT">false</boolProp>
              <boolProp name="ISREGEX">true</boolProp>
            </JSONPathAssertion>
            <hashTree/>
          </hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="设备节点iiot:XNjmeter_smdc${devcie_id}" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
              <collectionProp name="Arguments.arguments">
                <elementProp name="" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">false</boolProp>
                  <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;serviceName&quot;: &quot;${iiot}&quot;,&#xd;
      &quot;ids&quot;: [&#xd;
        &quot;smdc${devcie_id}xn9&quot;,&#xd;
        &quot;smdc${devcie_id}xn8&quot;,&#xd;
        &quot;smdc${devcie_id}xn7&quot;,&#xd;
        &quot;smdc${devcie_id}xn6&quot;,&#xd;
        &quot;smdc${devcie_id}xn5&quot;,&#xd;
        &quot;smdc${devcie_id}xn4&quot;,&#xd;
        &quot;smdc${devcie_id}xn3&quot;,&#xd;
        &quot;smdc${devcie_id}xn2&quot;,&#xd;
        &quot;smdc${devcie_id}xn10&quot;,&#xd;
        &quot;smdc${devcie_id}xn1&quot;&#xd;
      ],&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;uid&quot;: &quot;&quot;,&#xd;
      &quot;timeZone&quot;: &quot;UTC+8&quot;,&#xd;
      &quot;lang&quot;: &quot;zh-CN&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;iiot_device_schedule&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;service&quot;: &quot;schedule&quot;,&#xd;
    &quot;app&quot;: &quot;iiot_device_scheduler&quot;&#xd;
  }&#xd;
}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
            <stringProp name="HTTPSampler.port">${port}</stringProp>
            <stringProp name="HTTPSampler.protocol">${http}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
            <stringProp name="HTTPSampler.path">/api/root/rpc/service/?model=iiot_device_schedule&amp;service=schedule</stringProp>
            <stringProp name="HTTPSampler.method">POST</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            <stringProp name="HTTPSampler.connect_timeout"></stringProp>
            <stringProp name="HTTPSampler.response_timeout"></stringProp>
          </HTTPSamplerProxy>
          <hashTree>
            <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON断言" enabled="true">
              <stringProp name="JSON_PATH">result.data</stringProp>
              <stringProp name="EXPECTED_VALUE">true</stringProp>
              <boolProp name="JSONVALIDATION">true</boolProp>
              <boolProp name="EXPECT_NULL">false</boolProp>
              <boolProp name="INVERT">false</boolProp>
              <boolProp name="ISREGEX">true</boolProp>
            </JSONPathAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="IIOT平台写入设备" enabled="false">
        <stringProp name="ThreadGroup.num_threads">1</stringProp>
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">1</stringProp>
        </elementProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="登录" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;lang&quot;: &quot;zh_CN&quot;,&#xd;
      &quot;uid&quot;: &quot;&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;app&quot;: &quot;base&quot;,&#xd;
    &quot;login&quot;: &quot;${username}&quot;,&#xd;
    &quot;password&quot;: &quot;${MD_pwd}&quot;,&#xd;
    &quot;remember&quot;: true&#xd;
  }&#xd;
}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"></stringProp>
          <stringProp name="HTTPSampler.port"></stringProp>
          <stringProp name="HTTPSampler.protocol"></stringProp>
          <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
          <stringProp name="HTTPSampler.path">${Iiot_login_url}</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
          <stringProp name="HTTPSampler.response_timeout"></stringProp>
        </HTTPSamplerProxy>
        <hashTree>
          <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="提取token" enabled="true">
            <stringProp name="JSONPostProcessor.referenceNames">token</stringProp>
            <stringProp name="JSONPostProcessor.jsonPathExprs">result.data.token</stringProp>
            <stringProp name="JSONPostProcessor.match_numbers"></stringProp>
          </JSONPostProcessor>
          <hashTree/>
          <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell 后置处理程序(全局变量）" enabled="true">
            <stringProp name="filename"></stringProp>
            <stringProp name="parameters"></stringProp>
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="script">${__setProperty(token01,${token},)}</stringProp>
          </BeanShellPostProcessor>
          <hashTree/>
        </hashTree>
        <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell 后置处理程序(中文乱码）" enabled="true">
          <stringProp name="filename"></stringProp>
          <stringProp name="parameters"></stringProp>
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="script">prev.setDataEncoding(&quot;utf-8&quot;)</stringProp>
        </BeanShellPostProcessor>
        <hashTree/>
        <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="创建物模型" enabled="false"/>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="添加SMDC物模型" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
              <collectionProp name="Arguments.arguments">
                <elementProp name="" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">false</boolProp>
                  <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;valuesList&quot;: [&#xd;
        {&#xd;
          &quot;parents_name&quot;: null,&#xd;
          &quot;name&quot;: &quot;${modle_smdc_name}&quot;,&#xd;
          &quot;model_type&quot;: &quot;1&quot;,&#xd;
          &quot;parents&quot;: &quot;thing_model&quot;,&#xd;
          &quot;tenant_id&quot;: null,&#xd;
          &quot;category&quot;: [&#xd;
            [&#xd;
              &quot;iiot_category_all&quot;&#xd;
            ]&#xd;
          ],&#xd;
          &quot;is_auto_register&quot;: false,&#xd;
          &quot;certification&quot;: null,&#xd;
          &quot;use_id_for_certification&quot;: false,&#xd;
          &quot;auth_key&quot;: null,&#xd;
          &quot;create_user&quot;: null,&#xd;
          &quot;create_date&quot;: null,&#xd;
          &quot;update_user&quot;: null,&#xd;
          &quot;update_date&quot;: null,&#xd;
          &quot;manufactor&quot;: null,&#xd;
          &quot;model_number&quot;: null,&#xd;
          &quot;firmware_version&quot;: null,&#xd;
          &quot;hardware_version&quot;: null,&#xd;
          &quot;labels&quot;: null,&#xd;
          &quot;description&quot;: null,&#xd;
          &quot;offline_monitor&quot;: &quot;300&quot;,&#xd;
          &quot;report_time_unit&quot;: &quot;millisecond&quot;,&#xd;
          &quot;report_time_config&quot;: &quot;1&quot;,&#xd;
          &quot;valid_work_time_hour&quot;: &quot;24&quot;,&#xd;
          &quot;use_id_auto&quot;: null&#xd;
        }&#xd;
      ],&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;uid&quot;: &quot;&quot;,&#xd;
      &quot;timeZone&quot;: &quot;UTC+8&quot;,&#xd;
      &quot;lang&quot;: &quot;zh-CN&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;iiot_thing_model&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;service&quot;: &quot;iiot_thing.iiot_thing_model.iiot_thing_model_form.form:master#create&quot;,&#xd;
    &quot;app&quot;: &quot;iiot_thing&quot;&#xd;
  }&#xd;
}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
            <stringProp name="HTTPSampler.port">${port}</stringProp>
            <stringProp name="HTTPSampler.protocol">${http}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
            <stringProp name="HTTPSampler.path">/api/root/rpc/service/?model=iiot_thing_model&amp;service=iiot_thing.iiot_thing_model.iiot_thing_model_form.form:master</stringProp>
            <stringProp name="HTTPSampler.method">POST</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            <stringProp name="HTTPSampler.connect_timeout"></stringProp>
            <stringProp name="HTTPSampler.response_timeout"></stringProp>
          </HTTPSamplerProxy>
          <hashTree>
            <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON提取器" enabled="true">
              <stringProp name="JSONPostProcessor.referenceNames">modle_smdc_id</stringProp>
              <stringProp name="JSONPostProcessor.jsonPathExprs">result.data[0]</stringProp>
              <stringProp name="JSONPostProcessor.match_numbers"></stringProp>
            </JSONPostProcessor>
            <hashTree/>
            <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON断言" enabled="true">
              <stringProp name="JSON_PATH">result.data[0]</stringProp>
              <stringProp name="EXPECTED_VALUE">${modle_smdc_id}</stringProp>
              <boolProp name="JSONVALIDATION">true</boolProp>
              <boolProp name="EXPECT_NULL">false</boolProp>
              <boolProp name="INVERT">false</boolProp>
              <boolProp name="ISREGEX">true</boolProp>
            </JSONPathAssertion>
            <hashTree/>
          </hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="添加设备物模型" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
              <collectionProp name="Arguments.arguments">
                <elementProp name="" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">false</boolProp>
                  <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;valuesList&quot;: [&#xd;
        {&#xd;
          &quot;parents_name&quot;: null,&#xd;
          &quot;name&quot;: &quot;${modle_device_name}&quot;,&#xd;
          &quot;model_type&quot;: &quot;1&quot;,&#xd;
          &quot;parents&quot;: &quot;thing_model&quot;,&#xd;
          &quot;tenant_id&quot;: null,&#xd;
          &quot;category&quot;: [&#xd;
            [&#xd;
              &quot;iiot_category_all&quot;&#xd;
            ]&#xd;
          ],&#xd;
          &quot;is_auto_register&quot;: false,&#xd;
          &quot;certification&quot;: null,&#xd;
          &quot;use_id_for_certification&quot;: false,&#xd;
          &quot;auth_key&quot;: null,&#xd;
          &quot;create_user&quot;: null,&#xd;
          &quot;create_date&quot;: null,&#xd;
          &quot;update_user&quot;: null,&#xd;
          &quot;update_date&quot;: null,&#xd;
          &quot;manufactor&quot;: null,&#xd;
          &quot;model_number&quot;: null,&#xd;
          &quot;firmware_version&quot;: null,&#xd;
          &quot;hardware_version&quot;: null,&#xd;
          &quot;labels&quot;: null,&#xd;
          &quot;description&quot;: null,&#xd;
          &quot;offline_monitor&quot;: &quot;300&quot;,&#xd;
          &quot;report_time_unit&quot;: &quot;millisecond&quot;,&#xd;
          &quot;report_time_config&quot;: &quot;1&quot;,&#xd;
          &quot;valid_work_time_hour&quot;: &quot;24&quot;,&#xd;
          &quot;use_id_auto&quot;: null&#xd;
        }&#xd;
      ],&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;uid&quot;: &quot;&quot;,&#xd;
      &quot;timeZone&quot;: &quot;UTC+8&quot;,&#xd;
      &quot;lang&quot;: &quot;zh-CN&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;iiot_thing_model&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;service&quot;: &quot;iiot_thing.iiot_thing_model.iiot_thing_model_form.form:master#create&quot;,&#xd;
    &quot;app&quot;: &quot;iiot_thing&quot;&#xd;
  }&#xd;
}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
            <stringProp name="HTTPSampler.port">${port}</stringProp>
            <stringProp name="HTTPSampler.protocol">${http}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
            <stringProp name="HTTPSampler.path">/api/root/rpc/service/?model=iiot_thing_model&amp;service=iiot_thing.iiot_thing_model.iiot_thing_model_form.form:master</stringProp>
            <stringProp name="HTTPSampler.method">POST</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            <stringProp name="HTTPSampler.connect_timeout"></stringProp>
            <stringProp name="HTTPSampler.response_timeout"></stringProp>
          </HTTPSamplerProxy>
          <hashTree>
            <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON提取器" enabled="true">
              <stringProp name="JSONPostProcessor.referenceNames">modle_devcie_id</stringProp>
              <stringProp name="JSONPostProcessor.jsonPathExprs">result.data[0]</stringProp>
              <stringProp name="JSONPostProcessor.match_numbers"></stringProp>
            </JSONPostProcessor>
            <hashTree/>
            <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON断言" enabled="true">
              <stringProp name="JSON_PATH">result.data[0]</stringProp>
              <stringProp name="EXPECTED_VALUE">${modle_devcie_id}</stringProp>
              <boolProp name="JSONVALIDATION">true</boolProp>
              <boolProp name="EXPECT_NULL">false</boolProp>
              <boolProp name="INVERT">false</boolProp>
              <boolProp name="ISREGEX">true</boolProp>
            </JSONPathAssertion>
            <hashTree/>
          </hashTree>
          <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="SMDC模型ID:${modle_smdc_id}" enabled="true">
            <boolProp name="displayJMeterProperties">false</boolProp>
            <boolProp name="displayJMeterVariables">true</boolProp>
            <boolProp name="displaySystemProperties">false</boolProp>
          </DebugSampler>
          <hashTree/>
          <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="device模型ID:${modle_devcie_id}" enabled="true">
            <boolProp name="displayJMeterProperties">false</boolProp>
            <boolProp name="displayJMeterVariables">true</boolProp>
            <boolProp name="displaySystemProperties">false</boolProp>
          </DebugSampler>
          <hashTree/>
          <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环添加属性200" enabled="true">
            <boolProp name="LoopController.continue_forever">true</boolProp>
            <stringProp name="LoopController.loops">200</stringProp>
          </LoopController>
          <hashTree>
            <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="计数器" enabled="true">
              <stringProp name="CounterConfig.start">1</stringProp>
              <stringProp name="CounterConfig.end">9999999999</stringProp>
              <stringProp name="CounterConfig.incr">1</stringProp>
              <stringProp name="CounterConfig.name">count</stringProp>
              <stringProp name="CounterConfig.format"></stringProp>
              <boolProp name="CounterConfig.per_user">false</boolProp>
            </CounterConfig>
            <hashTree/>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="添加设备模型属性${count}" enabled="true">
              <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;ids&quot;: [&#xd;
        &quot;${modle_devcie_id}&quot;&#xd;
      ],&#xd;
      &quot;values&quot;: {&#xd;
        &quot;is_enable&quot;: &quot;1&quot;,&#xd;
        &quot;name&quot;: &quot;${modle_device_name}&quot;,&#xd;
        &quot;model_type&quot;: &quot;1&quot;,&#xd;
        &quot;id&quot;: &quot;${modle_devcie_id}&quot;,&#xd;
        &quot;create_user&quot;: &quot;03trs8au7ae9w&quot;,&#xd;
        &quot;category&quot;: [&#xd;
          [&#xd;
            &quot;iiot_category_all&quot;&#xd;
          ]&#xd;
        ],&#xd;
        &quot;update_date&quot;: &quot;2024-10-28 11:36:24&quot;,&#xd;
        &quot;parents&quot;: &quot;thing_model&quot;,&#xd;
        &quot;labels&quot;: null,&#xd;
        &quot;rowIndex&quot;: 0,&#xd;
        &quot;__IS_EDIT__&quot;: false,&#xd;
        &quot;filter_labels&quot;: null,&#xd;
        &quot;__LAST_UPDATE_TIME__&quot;: 1730086584358,&#xd;
        &quot;filter_name&quot;: &quot;thingModel_24_10_28_1136190&quot;,&#xd;
        &quot;filter_model_type&quot;: &quot;设备&quot;,&#xd;
        &quot;filter_id&quot;: &quot;${modle_devcie_id}&quot;,&#xd;
        &quot;filter_parents&quot;: &quot;无&quot;,&#xd;
        &quot;filter_update_date&quot;: &quot;2024-10-28 11:36:24&quot;,&#xd;
        &quot;filter_create_user&quot;: &quot;IIOT集成测试租户管理员&quot;,&#xd;
        &quot;filter_is_enable&quot;: &quot;启用&quot;,&#xd;
        &quot;__FORMAT_COLUMN_ITEMS__&quot;: {},&#xd;
        &quot;tenant_id&quot;: &quot;03trs8al95hse&quot;,&#xd;
        &quot;report_time_config&quot;: &quot;1&quot;,&#xd;
        &quot;use_id_for_certification&quot;: false,&#xd;
        &quot;valid_work_time_hour&quot;: 24,&#xd;
        &quot;description&quot;: null,&#xd;
        &quot;firmware_version&quot;: null,&#xd;
        &quot;hardware_version&quot;: null,&#xd;
        &quot;update_user&quot;: &quot;03trs8au7ae9w&quot;,&#xd;
        &quot;model_number&quot;: null,&#xd;
        &quot;create_date&quot;: &quot;2024-10-28 11:36:24&quot;,&#xd;
        &quot;is_auto_register&quot;: false,&#xd;
        &quot;report_time_unit&quot;: &quot;millisecond&quot;,&#xd;
        &quot;auth_key&quot;: null,&#xd;
        &quot;manufactor&quot;: null,&#xd;
        &quot;certification&quot;: null,&#xd;
        &quot;offline_monitor&quot;: 300,&#xd;
        &quot;parents_name&quot;: null,&#xd;
        &quot;property_ids&quot;: [&#xd;
          [&#xd;
            0,&#xd;
            0,&#xd;
            {&#xd;
              &quot;name&quot;: &quot;jmeter${count}&quot;,&#xd;
              &quot;custom_property_id&quot;: &quot;jmeter${count}&quot;,&#xd;
              &quot;data_type&quot;: &quot;Integer&quot;,&#xd;
              &quot;read_write_conf&quot;: &quot;1&quot;,&#xd;
              &quot;property_source&quot;: &quot;1&quot;,&#xd;
              &quot;data_save_mode&quot;: &quot;3&quot;,&#xd;
              &quot;cycle_save_second&quot;: 1,&#xd;
              &quot;description&quot;: null,&#xd;
              &quot;is_linear_relationship&quot;: &quot;none&quot;,&#xd;
              &quot;trigger_mode&quot;: &quot;1&quot;,&#xd;
              &quot;trigger_second&quot;: 0,&#xd;
              &quot;constant&quot;: null,&#xd;
              &quot;linear_relationship_exp&quot;: null,&#xd;
              &quot;multi_power&quot;: &quot;1&quot;,&#xd;
              &quot;offset&quot;: &quot;0&quot;,&#xd;
              &quot;add_define&quot;: false,&#xd;
              &quot;value_map&quot;: null,&#xd;
              &quot;decimal_digits&quot;: &quot;#.00&quot;,&#xd;
              &quot;length&quot;: null,&#xd;
              &quot;default_value&quot;: null,&#xd;
              &quot;unit&quot;: null,&#xd;
              &quot;min_value&quot;: null,&#xd;
              &quot;max_value&quot;: null,&#xd;
              &quot;specific_value&quot;: null,&#xd;
              &quot;is_specific_value_valid&quot;: false,&#xd;
              &quot;labels&quot;: null,&#xd;
              &quot;status&quot;: &quot;1&quot;&#xd;
            }&#xd;
          ]&#xd;
        ],&#xd;
        &quot;use_id_auto&quot;: null&#xd;
      },&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;uid&quot;: &quot;&quot;,&#xd;
      &quot;timeZone&quot;: &quot;UTC+8&quot;,&#xd;
      &quot;lang&quot;: &quot;zh-CN&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;iiot_thing_model&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;service&quot;: &quot;iiot_thing.iiot_thing_model.iiot_thing_model_form.form:master#update&quot;,&#xd;
    &quot;app&quot;: &quot;iiot_thing&quot;&#xd;
  }&#xd;
}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
              <stringProp name="HTTPSampler.port">${port}</stringProp>
              <stringProp name="HTTPSampler.protocol">${http}</stringProp>
              <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
              <stringProp name="HTTPSampler.path">/api/root/rpc/service/?model=iiot_thing_model&amp;service=iiot_thing.iiot_thing_model.iiot_thing_model_form.form:master</stringProp>
              <stringProp name="HTTPSampler.method">POST</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
            </HTTPSamplerProxy>
            <hashTree>
              <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON断言" enabled="true">
                <stringProp name="JSON_PATH">result.data</stringProp>
                <stringProp name="EXPECTED_VALUE">${modle_devcie_id}</stringProp>
                <boolProp name="JSONVALIDATION">true</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">true</boolProp>
              </JSONPathAssertion>
              <hashTree/>
            </hashTree>
          </hashTree>
        </hashTree>
        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="注册SMDC物实体" enabled="false">
          <boolProp name="LoopController.continue_forever">true</boolProp>
          <stringProp name="LoopController.loops">199</stringProp>
        </LoopController>
        <hashTree>
          <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="网关ID" enabled="true">
            <stringProp name="CounterConfig.start">52</stringProp>
            <stringProp name="CounterConfig.end">99999</stringProp>
            <stringProp name="CounterConfig.incr">1</stringProp>
            <stringProp name="CounterConfig.name">gatewayId</stringProp>
            <stringProp name="CounterConfig.format"></stringProp>
            <boolProp name="CounterConfig.per_user">false</boolProp>
          </CounterConfig>
          <hashTree/>
          <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="smdc实体名称" enabled="true">
            <stringProp name="CounterConfig.start">52</stringProp>
            <stringProp name="CounterConfig.end">9999999999</stringProp>
            <stringProp name="CounterConfig.incr">1</stringProp>
            <stringProp name="CounterConfig.name">smdc_name</stringProp>
            <stringProp name="CounterConfig.format"></stringProp>
            <boolProp name="CounterConfig.per_user">false</boolProp>
          </CounterConfig>
          <hashTree/>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="注册SMDC物实体XNjmeter_smdc${smdc_name}" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
              <collectionProp name="Arguments.arguments">
                <elementProp name="" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">false</boolProp>
                  <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;valuesList&quot;: [&#xd;
        {&#xd;
        	&quot;id&quot;:&quot;smdc${gatewayId}&quot;,&#xd;
          &quot;DeviceType&quot;: null,&#xd;
          &quot;model_name&quot;: &quot;Jmeter物模型smdc60&quot;,&#xd;
          &quot;name&quot;: &quot;XNjmeter_smdc${smdc_name}&quot;,&#xd;
          &quot;entity_type&quot;: &quot;3&quot;,&#xd;
          &quot;model_id&quot;: &quot;04e62yauw1wdq&quot;,&#xd;
          &quot;mark&quot;: &quot;jmeter_smdc${smdc_name}&quot;,&#xd;
          &quot;project_id&quot;: &quot;system_proj&quot;,&#xd;
          &quot;group_id&quot;: [&#xd;
            [&#xd;
              &quot;entity_group_all&quot;,&#xd;
              &quot;entity_group_all&quot;&#xd;
            ]&#xd;
          ],&#xd;
          &quot;labels&quot;: null,&#xd;
          &quot;networkmode&quot;: &quot;directConn&quot;,&#xd;
          &quot;auth_type&quot;: &quot;password&quot;,&#xd;
          &quot;conn_account&quot;: &quot;${conn_account}&quot;,&#xd;
          &quot;conn_password&quot;: &quot;${conn_password}&quot;,&#xd;
          &quot;gateway&quot;: null,&#xd;
          &quot;message_mark&quot;: null,&#xd;
          &quot;create_user&quot;: null,&#xd;
          &quot;create_date&quot;: null,&#xd;
          &quot;update_user&quot;: null,&#xd;
          &quot;update_date&quot;: null,&#xd;
          &quot;sie_last_report_time&quot;: null,&#xd;
          &quot;sie_first_report_time&quot;: null,&#xd;
          &quot;category&quot;: null,&#xd;
          &quot;manufactor&quot;: null,&#xd;
          &quot;model_number&quot;: null,&#xd;
          &quot;firmware_version&quot;: null,&#xd;
          &quot;hardware_version&quot;: null,&#xd;
          &quot;description&quot;: null,&#xd;
          &quot;offline_monitor&quot;: null,&#xd;
          &quot;report_time_unit&quot;: null,&#xd;
          &quot;report_time_config&quot;: null,&#xd;
          &quot;valid_work_time_hour&quot;: null,&#xd;
          &quot;keep_original_message&quot;: false,&#xd;
          &quot;log_status&quot;: false,&#xd;
          &quot;log_level&quot;: [&#xd;
            &quot;Warn&quot;,&#xd;
            &quot;Error&quot;,&#xd;
            &quot;Fatal&quot;&#xd;
          ]&#xd;
        }&#xd;
      ],&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;uid&quot;: &quot;&quot;,&#xd;
      &quot;lang&quot;: &quot;zh_CN&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;iiot_thing_entity&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;service&quot;: &quot;iiot_thing.iiot_thing_entity.iiot_thing_entity_form.form:master#create&quot;,&#xd;
    &quot;app&quot;: &quot;iiot_thing&quot;&#xd;
  }&#xd;
}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
            <stringProp name="HTTPSampler.port">${port}</stringProp>
            <stringProp name="HTTPSampler.protocol">${http}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
            <stringProp name="HTTPSampler.path">/api/root/rpc/service/?model=iiot_thing_entity&amp;service=iiot_thing.iiot_thing_entity.iiot_thing_entity_form.form:master</stringProp>
            <stringProp name="HTTPSampler.method">POST</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            <stringProp name="HTTPSampler.connect_timeout"></stringProp>
            <stringProp name="HTTPSampler.response_timeout"></stringProp>
          </HTTPSamplerProxy>
          <hashTree/>
        </hashTree>
        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="注册device物实体" enabled="false">
          <boolProp name="LoopController.continue_forever">true</boolProp>
          <stringProp name="LoopController.loops">52</stringProp>
        </LoopController>
        <hashTree>
          <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="网关ID" enabled="true">
            <stringProp name="CounterConfig.start">199</stringProp>
            <stringProp name="CounterConfig.end">250</stringProp>
            <stringProp name="CounterConfig.incr">1</stringProp>
            <stringProp name="CounterConfig.name">gateway_id</stringProp>
            <stringProp name="CounterConfig.format"></stringProp>
            <boolProp name="CounterConfig.per_user">false</boolProp>
          </CounterConfig>
          <hashTree/>
          <UserParameters guiclass="UserParametersGui" testclass="UserParameters" testname="用户参数" enabled="false">
            <collectionProp name="UserParameters.names">
              <stringProp name="955798774">gateway_id</stringProp>
            </collectionProp>
            <collectionProp name="UserParameters.thread_values">
              <collectionProp name="-624192997">
                <stringProp name="-898875211">smdc51</stringProp>
              </collectionProp>
            </collectionProp>
            <boolProp name="UserParameters.per_iteration">true</boolProp>
          </UserParameters>
          <hashTree/>
          <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
            <boolProp name="LoopController.continue_forever">true</boolProp>
            <stringProp name="LoopController.loops">10</stringProp>
          </LoopController>
          <hashTree>
            <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="设备ID" enabled="true">
              <stringProp name="CounterConfig.start">1</stringProp>
              <stringProp name="CounterConfig.end">10</stringProp>
              <stringProp name="CounterConfig.incr">1</stringProp>
              <stringProp name="CounterConfig.name">deviceId</stringProp>
              <stringProp name="CounterConfig.format"></stringProp>
              <boolProp name="CounterConfig.per_user">false</boolProp>
            </CounterConfig>
            <hashTree/>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="注册device物实体XNjmeter_devciesmdc${gateway_id}xn${deviceId}" enabled="true">
              <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">{&#xd;
  &quot;id&quot;: &quot;guid&quot;,&#xd;
  &quot;jsonrpc&quot;: &quot;2.0&quot;,&#xd;
  &quot;method&quot;: &quot;service&quot;,&#xd;
  &quot;params&quot;: {&#xd;
    &quot;args&quot;: {&#xd;
      &quot;valuesList&quot;: [&#xd;
        {&#xd;
        	&quot;id&quot;:&quot;smdc${gateway_id}xn${deviceId}&quot;,&#xd;
          &quot;DeviceType&quot;: null,&#xd;
          &quot;model_name&quot;: &quot;Jmeter物模型设备89&quot;,&#xd;
          &quot;is_enable&quot;: &quot;1&quot;,&#xd;
          &quot;name&quot;: &quot;XNjmeter_devicesmdc${gateway_id}xn${deviceId}&quot;,&#xd;
          &quot;entity_type&quot;: &quot;1&quot;,&#xd;
          &quot;model_id&quot;: &quot;04bvzku7sp4or&quot;,&#xd;
          &quot;mark&quot;: &quot;smdc${gateway_id}xn${deviceId}&quot;,&#xd;
          &quot;project_id&quot;: &quot;system_proj&quot;,&#xd;
          &quot;group_id&quot;: [&#xd;
            [&#xd;
              &quot;entity_group_all&quot;&#xd;
            ]&#xd;
          ],&#xd;
          &quot;labels&quot;: null,&#xd;
          &quot;networkmode&quot;: &quot;smdcConn&quot;,&#xd;
          &quot;auth_type&quot;: &quot;password&quot;,&#xd;
          &quot;conn_account&quot;: &quot;&quot;,&#xd;
          &quot;conn_password&quot;: &quot;&quot;,&#xd;
          &quot;gateway&quot;: &quot;smdc${gateway_id}&quot;,&#xd;
          &quot;message_mark&quot;: &quot;smdc${gateway_id}xn${deviceId}&quot;,&#xd;
          &quot;create_user&quot;: null,&#xd;
          &quot;create_date&quot;: null,&#xd;
          &quot;update_user&quot;: null,&#xd;
          &quot;update_date&quot;: null,&#xd;
          &quot;sie_last_report_time&quot;: null,&#xd;
          &quot;sie_first_report_time&quot;: null,&#xd;
          &quot;category&quot;: null,&#xd;
          &quot;manufactor&quot;: null,&#xd;
          &quot;model_number&quot;: null,&#xd;
          &quot;firmware_version&quot;: null,&#xd;
          &quot;hardware_version&quot;: null,&#xd;
          &quot;description&quot;: null,&#xd;
          &quot;offline_monitor&quot;: null,&#xd;
          &quot;report_time_unit&quot;: null,&#xd;
          &quot;report_time_config&quot;: null,&#xd;
          &quot;valid_work_time_hour&quot;: null,&#xd;
          &quot;keep_original_message&quot;: false,&#xd;
          &quot;log_status&quot;: false,&#xd;
          &quot;log_level&quot;: [&#xd;
            &quot;Warn&quot;,&#xd;
            &quot;Error&quot;,&#xd;
            &quot;Fatal&quot;&#xd;
          ],&#xd;
          &quot;code&quot;: null,&#xd;
          &quot;is_run&quot;: null,&#xd;
          &quot;visible&quot;: null,&#xd;
          &quot;energySubentry&quot;: null,&#xd;
          &quot;line&quot;: null,&#xd;
          &quot;org&quot;: []&#xd;
        }&#xd;
      ],&#xd;
      &quot;useDisplayForModel&quot;: true&#xd;
    },&#xd;
    &quot;context&quot;: {&#xd;
      &quot;uid&quot;: &quot;&quot;,&#xd;
      &quot;timeZone&quot;: &quot;UTC+8&quot;,&#xd;
      &quot;lang&quot;: &quot;zh-CN&quot;&#xd;
    },&#xd;
    &quot;model&quot;: &quot;iiot_thing_entity&quot;,&#xd;
    &quot;tag&quot;: &quot;master&quot;,&#xd;
    &quot;service&quot;: &quot;iiot_thing.iiot_thing_entity.iiot_thing_entity_form.form:master#create&quot;,&#xd;
    &quot;app&quot;: &quot;iiot_thing&quot;&#xd;
  }&#xd;
}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${Tiot_url}</stringProp>
              <stringProp name="HTTPSampler.port">${port}</stringProp>
              <stringProp name="HTTPSampler.protocol">${http}</stringProp>
              <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
              <stringProp name="HTTPSampler.path">/api/root/rpc/service/?model=iiot_thing_entity&amp;service=iiot_thing.iiot_thing_entity.iiot_thing_entity_form.form:master</stringProp>
              <stringProp name="HTTPSampler.method">POST</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="上报设备" enabled="false">
        <stringProp name="ThreadGroup.num_threads">${gateway_count}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">${gateway_count_seconds}</stringProp>
        <stringProp name="ThreadGroup.delay">10</stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">false</boolProp>
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <intProp name="LoopController.loops">-1</intProp>
        </elementProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
      </ThreadGroup>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="网关ID" enabled="true">
          <stringProp name="CounterConfig.start">41</stringProp>
          <stringProp name="CounterConfig.end">45</stringProp>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">gatewayId</stringProp>
          <stringProp name="CounterConfig.format"></stringProp>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="仅一次控制器" enabled="true"/>
        <hashTree>
          <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="网关上线${gatewayId}" enabled="true">
            <stringProp name="mqtt.server">${mqttIp}</stringProp>
            <stringProp name="mqtt.port">${mqttPort}</stringProp>
            <stringProp name="mqtt.version">3.1</stringProp>
            <stringProp name="mqtt.conn_timeout">100</stringProp>
            <stringProp name="mqtt.protocol"></stringProp>
            <stringProp name="mqtt.ws_path"></stringProp>
            <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
            <stringProp name="mqtt.clientcert_file_path"></stringProp>
            <stringProp name="mqtt.clientcert_password"></stringProp>
            <stringProp name="mqtt.user_name">${conn_account}</stringProp>
            <stringProp name="mqtt.password">${conn_password}</stringProp>
            <stringProp name="mqtt.client_id_prefix">smdc${gatewayId}</stringProp>
            <boolProp name="mqtt.client_id_suffix">false</boolProp>
            <stringProp name="mqtt.conn_keep_alive">1800</stringProp>
            <stringProp name="mqtt.conn_attampt_max">0</stringProp>
            <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
            <stringProp name="mqtt.conn_clean_session">true</stringProp>
          </net.xmeter.samplers.ConnectSampler>
          <hashTree/>
        </hashTree>
        <TestAction guiclass="TestActionGui" testclass="TestAction" testname="上线后等待" enabled="true">
          <intProp name="ActionProcessor.action">1</intProp>
          <intProp name="ActionProcessor.target">0</intProp>
          <stringProp name="ActionProcessor.duration">10000</stringProp>
        </TestAction>
        <hashTree/>
        <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="固定定时器" enabled="true">
          <stringProp name="ConstantTimer.delay">100</stringProp>
        </ConstantTimer>
        <hashTree/>
        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">true</boolProp>
          <stringProp name="LoopController.loops">${Starting_device}</stringProp>
        </LoopController>
        <hashTree>
          <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="设备ID" enabled="true">
            <stringProp name="CounterConfig.start">1</stringProp>
            <stringProp name="CounterConfig.end">10</stringProp>
            <stringProp name="CounterConfig.incr">1</stringProp>
            <stringProp name="CounterConfig.name">deviceId</stringProp>
            <stringProp name="CounterConfig.format"></stringProp>
            <boolProp name="CounterConfig.per_user">true</boolProp>
            <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
          </CounterConfig>
          <hashTree/>
          <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="设备上数smdc${gatewayId}xn${deviceId}" enabled="true">
            <stringProp name="mqtt.topic_name">test_topic</stringProp>
            <stringProp name="mqtt.qos_level">0</stringProp>
            <boolProp name="mqtt.add_timestamp">false</boolProp>
            <stringProp name="mqtt.message_type">String</stringProp>
            <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
            <stringProp name="mqtt.message_to_sent">{
  &quot;seq&quot;: 1,
  &quot;ts&quot;: ${__time(,)},
  &quot;reporter&quot;: &quot;smdc${gatewayId}&quot;,
  &quot;type&quot;: &quot;DataReport&quot;,
  &quot;data&quot;: {
    &quot;dataType&quot;: &quot;ReportData&quot;,
    &quot;models&quot;: [
      {
        &quot;id&quot;: &quot;smdc${gatewayId}xn${deviceId}&quot;,
        &quot;ps&quot;: {
          &quot;${__time(,)}&quot;: {
            	&quot;jmeter1&quot;:${__Random(1,1000,)},
              &quot;jmeter2&quot;:${__Random(1,1000,)},
              &quot;jmeter3&quot;:${__Random(1,1000,)},
              &quot;jmeter4&quot;:${__Random(1,1000,)},
              &quot;jmeter5&quot;:${__Random(1,1000,)},
              &quot;jmeter6&quot;:${__Random(1,1000,)},
              &quot;jmeter7&quot;:${__Random(1,1000,)},
              &quot;jmeter8&quot;:${__Random(1,1000,)},
              &quot;jmeter9&quot;:${__Random(1,1000,)},
              &quot;jmeter10&quot;:${__Random(1,1000,)},
              &quot;jmeter11&quot;:${__Random(1,1000,)},
              &quot;jmeter12&quot;:${__Random(1,1000,)},
              &quot;jmeter13&quot;:${__Random(1,1000,)},
              &quot;jmeter14&quot;:${__Random(1,1000,)},
              &quot;jmeter15&quot;:${__Random(1,1000,)},
              &quot;jmeter16&quot;:${__Random(1,1000,)},
              &quot;jmeter17&quot;:${__Random(1,1000,)},
              &quot;jmeter18&quot;:${__Random(1,1000,)},
              &quot;jmeter19&quot;:${__Random(1,1000,)},
              &quot;jmeter20&quot;:${__Random(1,1000,)},
              &quot;jmeter21&quot;:${__Random(1,1000,)},
              &quot;jmeter22&quot;:${__Random(1,1000,)},
              &quot;jmeter23&quot;:${__Random(1,1000,)},
              &quot;jmeter24&quot;:${__Random(1,1000,)},
              &quot;jmeter25&quot;:${__Random(1,1000,)},
              &quot;jmeter26&quot;:${__Random(1,1000,)},
              &quot;jmeter27&quot;:${__Random(1,1000,)},
              &quot;jmeter28&quot;:${__Random(1,1000,)},
              &quot;jmeter29&quot;:${__Random(1,1000,)},
              &quot;jmeter30&quot;:${__Random(1,1000,)},
              &quot;jmeter31&quot;:${__Random(1,1000,)},
              &quot;jmeter32&quot;:${__Random(1,1000,)},
              &quot;jmeter33&quot;:${__Random(1,1000,)},
              &quot;jmeter34&quot;:${__Random(1,1000,)},
              &quot;jmeter35&quot;:${__Random(1,1000,)},
              &quot;jmeter36&quot;:${__Random(1,1000,)},
              &quot;jmeter37&quot;:${__Random(1,1000,)},
              &quot;jmeter38&quot;:${__Random(1,1000,)},
              &quot;jmeter39&quot;:${__Random(1,1000,)},
              &quot;jmeter40&quot;:${__Random(1,1000,)},
              &quot;jmeter41&quot;:${__Random(1,1000,)},
              &quot;jmeter42&quot;:${__Random(1,1000,)},
              &quot;jmeter43&quot;:${__Random(1,1000,)},
              &quot;jmeter44&quot;:${__Random(1,1000,)},
              &quot;jmeter45&quot;:${__Random(1,1000,)},
              &quot;jmeter46&quot;:${__Random(1,1000,)},
              &quot;jmeter47&quot;:${__Random(1,1000,)},
              &quot;jmeter48&quot;:${__Random(1,1000,)},
              &quot;jmeter49&quot;:${__Random(1,1000,)},
              &quot;jmeter50&quot;:${__Random(1,1000,)},
              &quot;jmeter51&quot;:${__Random(1,1000,)},
              &quot;jmeter52&quot;:${__Random(1,1000,)},
              &quot;jmeter53&quot;:${__Random(1,1000,)},
              &quot;jmeter54&quot;:${__Random(1,1000,)},
              &quot;jmeter55&quot;:${__Random(1,1000,)},
              &quot;jmeter56&quot;:${__Random(1,1000,)},
              &quot;jmeter57&quot;:${__Random(1,1000,)},
              &quot;jmeter58&quot;:${__Random(1,1000,)},
              &quot;jmeter59&quot;:${__Random(1,1000,)},
              &quot;jmeter60&quot;:${__Random(1,1000,)},
              &quot;jmeter61&quot;:${__Random(1,1000,)},
              &quot;jmeter62&quot;:${__Random(1,1000,)},
              &quot;jmeter63&quot;:${__Random(1,1000,)},
              &quot;jmeter64&quot;:${__Random(1,1000,)},
              &quot;jmeter65&quot;:${__Random(1,1000,)},
              &quot;jmeter66&quot;:${__Random(1,1000,)},
              &quot;jmeter67&quot;:${__Random(1,1000,)},
              &quot;jmeter68&quot;:${__Random(1,1000,)},
              &quot;jmeter69&quot;:${__Random(1,1000,)},
              &quot;jmeter70&quot;:${__Random(1,1000,)},
              &quot;jmeter71&quot;:${__Random(1,1000,)},
              &quot;jmeter72&quot;:${__Random(1,1000,)},
              &quot;jmeter73&quot;:${__Random(1,1000,)},
              &quot;jmeter74&quot;:${__Random(1,1000,)},
              &quot;jmeter75&quot;:${__Random(1,1000,)},
              &quot;jmeter76&quot;:${__Random(1,1000,)},
              &quot;jmeter77&quot;:${__Random(1,1000,)},
              &quot;jmeter78&quot;:${__Random(1,1000,)},
              &quot;jmeter79&quot;:${__Random(1,1000,)},
              &quot;jmeter80&quot;:${__Random(1,1000,)},
              &quot;jmeter81&quot;:${__Random(1,1000,)},
              &quot;jmeter82&quot;:${__Random(1,1000,)},
              &quot;jmeter83&quot;:${__Random(1,1000,)},
              &quot;jmeter84&quot;:${__Random(1,1000,)},
              &quot;jmeter85&quot;:${__Random(1,1000,)},
              &quot;jmeter86&quot;:${__Random(1,1000,)},
              &quot;jmeter87&quot;:${__Random(1,1000,)},
              &quot;jmeter88&quot;:${__Random(1,1000,)},
              &quot;jmeter89&quot;:${__Random(1,1000,)},
              &quot;jmeter90&quot;:${__Random(1,1000,)},
              &quot;jmeter91&quot;:${__Random(1,1000,)},
              &quot;jmeter92&quot;:${__Random(1,1000,)},
              &quot;jmeter93&quot;:${__Random(1,1000,)},
              &quot;jmeter94&quot;:${__Random(1,1000,)},
              &quot;jmeter95&quot;:${__Random(1,1000,)},
              &quot;jmeter96&quot;:${__Random(1,1000,)},
              &quot;jmeter97&quot;:${__Random(1,1000,)},
              &quot;jmeter98&quot;:${__Random(1,1000,)},
              &quot;jmeter99&quot;:${__Random(1,1000,)},
              &quot;jmeter100&quot;:${__Random(1,1000,)},
              &quot;jmeter101&quot;:${__Random(1,1000,)},
              &quot;jmeter102&quot;:${__Random(1,1000,)},
              &quot;jmeter103&quot;:${__Random(1,1000,)},
              &quot;jmeter104&quot;:${__Random(1,1000,)},
              &quot;jmeter105&quot;:${__Random(1,1000,)},
              &quot;jmeter106&quot;:${__Random(1,1000,)},
              &quot;jmeter107&quot;:${__Random(1,1000,)},
              &quot;jmeter108&quot;:${__Random(1,1000,)},
              &quot;jmeter109&quot;:${__Random(1,1000,)},
              &quot;jmeter110&quot;:${__Random(1,1000,)},
              &quot;jmeter111&quot;:${__Random(1,1000,)},
              &quot;jmeter112&quot;:${__Random(1,1000,)},
              &quot;jmeter113&quot;:${__Random(1,1000,)},
              &quot;jmeter114&quot;:${__Random(1,1000,)},
              &quot;jmeter115&quot;:${__Random(1,1000,)},
              &quot;jmeter116&quot;:${__Random(1,1000,)},
              &quot;jmeter117&quot;:${__Random(1,1000,)},
              &quot;jmeter118&quot;:${__Random(1,1000,)},
              &quot;jmeter119&quot;:${__Random(1,1000,)},
              &quot;jmeter120&quot;:${__Random(1,1000,)},
              &quot;jmeter121&quot;:${__Random(1,1000,)},
              &quot;jmeter122&quot;:${__Random(1,1000,)},
              &quot;jmeter123&quot;:${__Random(1,1000,)},
              &quot;jmeter124&quot;:${__Random(1,1000,)},
              &quot;jmeter125&quot;:${__Random(1,1000,)},
              &quot;jmeter126&quot;:${__Random(1,1000,)},
              &quot;jmeter127&quot;:${__Random(1,1000,)},
              &quot;jmeter128&quot;:${__Random(1,1000,)},
              &quot;jmeter129&quot;:${__Random(1,1000,)},
              &quot;jmeter130&quot;:${__Random(1,1000,)},
              &quot;jmeter131&quot;:${__Random(1,1000,)},
              &quot;jmeter132&quot;:${__Random(1,1000,)},
              &quot;jmeter133&quot;:${__Random(1,1000,)},
              &quot;jmeter134&quot;:${__Random(1,1000,)},
              &quot;jmeter135&quot;:${__Random(1,1000,)},
              &quot;jmeter136&quot;:${__Random(1,1000,)},
              &quot;jmeter137&quot;:${__Random(1,1000,)},
              &quot;jmeter138&quot;:${__Random(1,1000,)},
              &quot;jmeter139&quot;:${__Random(1,1000,)},
              &quot;jmeter140&quot;:${__Random(1,1000,)},
              &quot;jmeter141&quot;:${__Random(1,1000,)},
              &quot;jmeter142&quot;:${__Random(1,1000,)},
              &quot;jmeter143&quot;:${__Random(1,1000,)},
              &quot;jmeter144&quot;:${__Random(1,1000,)},
              &quot;jmeter145&quot;:${__Random(1,1000,)},
              &quot;jmeter146&quot;:${__Random(1,1000,)},
              &quot;jmeter147&quot;:${__Random(1,1000,)},
              &quot;jmeter148&quot;:${__Random(1,1000,)},
              &quot;jmeter149&quot;:${__Random(1,1000,)},
              &quot;jmeter150&quot;:${__Random(1,1000,)},
              &quot;jmeter151&quot;:${__Random(1,1000,)},
              &quot;jmeter152&quot;:${__Random(1,1000,)},
              &quot;jmeter153&quot;:${__Random(1,1000,)},
              &quot;jmeter154&quot;:${__Random(1,1000,)},
              &quot;jmeter155&quot;:${__Random(1,1000,)},
              &quot;jmeter156&quot;:${__Random(1,1000,)},
              &quot;jmeter157&quot;:${__Random(1,1000,)},
              &quot;jmeter158&quot;:${__Random(1,1000,)},
              &quot;jmeter159&quot;:${__Random(1,1000,)},
              &quot;jmeter160&quot;:${__Random(1,1000,)},
              &quot;jmeter161&quot;:${__Random(1,1000,)},
              &quot;jmeter162&quot;:${__Random(1,1000,)},
              &quot;jmeter163&quot;:${__Random(1,1000,)},
              &quot;jmeter164&quot;:${__Random(1,1000,)},
              &quot;jmeter165&quot;:${__Random(1,1000,)},
              &quot;jmeter166&quot;:${__Random(1,1000,)},
              &quot;jmeter167&quot;:${__Random(1,1000,)},
              &quot;jmeter168&quot;:${__Random(1,1000,)},
              &quot;jmeter169&quot;:${__Random(1,1000,)},
              &quot;jmeter170&quot;:${__Random(1,1000,)},
              &quot;jmeter171&quot;:${__Random(1,1000,)},
              &quot;jmeter172&quot;:${__Random(1,1000,)},
              &quot;jmeter173&quot;:${__Random(1,1000,)},
              &quot;jmeter174&quot;:${__Random(1,1000,)},
              &quot;jmeter175&quot;:${__Random(1,1000,)},
              &quot;jmeter176&quot;:${__Random(1,1000,)},
              &quot;jmeter177&quot;:${__Random(1,1000,)},
              &quot;jmeter178&quot;:${__Random(1,1000,)},
              &quot;jmeter179&quot;:${__Random(1,1000,)},
              &quot;jmeter180&quot;:${__Random(1,1000,)},
              &quot;jmeter181&quot;:${__Random(1,1000,)},
              &quot;jmeter182&quot;:${__Random(1,1000,)},
              &quot;jmeter183&quot;:${__Random(1,1000,)},
              &quot;jmeter184&quot;:${__Random(1,1000,)},
              &quot;jmeter185&quot;:${__Random(1,1000,)},
              &quot;jmeter186&quot;:${__Random(1,1000,)},
              &quot;jmeter187&quot;:${__Random(1,1000,)},
              &quot;jmeter188&quot;:${__Random(1,1000,)},
              &quot;jmeter189&quot;:${__Random(1,1000,)},
              &quot;jmeter190&quot;:${__Random(1,1000,)},
              &quot;jmeter191&quot;:${__Random(1,1000,)},
              &quot;jmeter192&quot;:${__Random(1,1000,)},
              &quot;jmeter193&quot;:${__Random(1,1000,)},
              &quot;jmeter194&quot;:${__Random(1,1000,)},
              &quot;jmeter195&quot;:${__Random(1,1000,)},
              &quot;jmeter196&quot;:${__Random(1,1000,)},
              &quot;jmeter197&quot;:${__Random(1,1000,)},
              &quot;jmeter198&quot;:${__Random(1,1000,)},
              &quot;jmeter199&quot;:${__Random(1,1000,)},
              &quot;jmeter200&quot;:${__Random(1,1000,)},
            &quot;qs&quot;:{
            	
            	}
          }
        }
      }
    ]
  }
}</stringProp>
            <boolProp name="mqtt.retained_message">false</boolProp>
          </net.xmeter.samplers.PubSampler>
          <hashTree/>
        </hashTree>
        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器上报次数" enabled="false">
          <boolProp name="LoopController.continue_forever">true</boolProp>
          <stringProp name="LoopController.loops">${devcie_Reporting}</stringProp>
        </LoopController>
        <hashTree/>
        <net.xmeter.samplers.DisConnectSampler guiclass="net.xmeter.gui.DisConnectSamplerUI" testclass="net.xmeter.samplers.DisConnectSampler" testname="断开连接" enabled="false"/>
        <hashTree/>
        <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="true">
          <boolProp name="ResultCollector.error_logging">false</boolProp>
          <objProp>
            <name>saveConfig</name>
            <value class="SampleSaveConfiguration">
              <time>true</time>
              <latency>true</latency>
              <timestamp>true</timestamp>
              <success>true</success>
              <label>true</label>
              <code>true</code>
              <message>true</message>
              <threadName>true</threadName>
              <dataType>true</dataType>
              <encoding>false</encoding>
              <assertions>true</assertions>
              <subresults>true</subresults>
              <responseData>false</responseData>
              <samplerData>false</samplerData>
              <xml>false</xml>
              <fieldNames>true</fieldNames>
              <responseHeaders>false</responseHeaders>
              <requestHeaders>false</requestHeaders>
              <responseDataOnError>false</responseDataOnError>
              <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
              <assertionsResultsToSave>0</assertionsResultsToSave>
              <bytes>true</bytes>
              <sentBytes>true</sentBytes>
              <url>true</url>
              <threadCounts>true</threadCounts>
              <idleTime>true</idleTime>
              <connectTime>true</connectTime>
            </value>
          </objProp>
          <stringProp name="filename"></stringProp>
        </ResultCollector>
        <hashTree/>
      </hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="上报设备主动断开" enabled="false">
        <stringProp name="ThreadGroup.num_threads">${gateway_count}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">${gateway_count_seconds}</stringProp>
        <stringProp name="ThreadGroup.delay">10</stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <intProp name="LoopController.loops">-1</intProp>
        </elementProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
      </ThreadGroup>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="网关ID" enabled="true">
          <stringProp name="CounterConfig.start">31</stringProp>
          <stringProp name="CounterConfig.end">50</stringProp>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">gatewayId</stringProp>
          <stringProp name="CounterConfig.format"></stringProp>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="网关上线${gatewayId}" enabled="true">
          <stringProp name="mqtt.server">${mqttIp}</stringProp>
          <stringProp name="mqtt.port">${mqttPort}</stringProp>
          <stringProp name="mqtt.version">3.1</stringProp>
          <stringProp name="mqtt.conn_timeout">100</stringProp>
          <stringProp name="mqtt.protocol"></stringProp>
          <stringProp name="mqtt.ws_path"></stringProp>
          <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
          <stringProp name="mqtt.clientcert_file_path"></stringProp>
          <stringProp name="mqtt.clientcert_password"></stringProp>
          <stringProp name="mqtt.user_name">${conn_account}</stringProp>
          <stringProp name="mqtt.password">${conn_password}</stringProp>
          <stringProp name="mqtt.client_id_prefix">smdc${gatewayId}</stringProp>
          <boolProp name="mqtt.client_id_suffix">false</boolProp>
          <stringProp name="mqtt.conn_keep_alive">1800</stringProp>
          <stringProp name="mqtt.conn_attampt_max">0</stringProp>
          <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
          <stringProp name="mqtt.conn_clean_session">true</stringProp>
        </net.xmeter.samplers.ConnectSampler>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="正则表达式提取器" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">gateway_type</stringProp>
            <stringProp name="RegexExtractor.regex">(.*)</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"></stringProp>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="1259833018">Successful</stringProp>
            </collectionProp>
            <stringProp name="Assertion.custom_message"></stringProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">16</intProp>
          </ResponseAssertion>
          <hashTree/>
          <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="JSR223 后置处理程序" enabled="true">
            <stringProp name="cacheKey">true</stringProp>
            <stringProp name="filename"></stringProp>
            <stringProp name="parameters"></stringProp>
            <stringProp name="script">// 从接口返回的值赋值给变量 i
def i = vars.get(&quot;gateway_type&quot;)

// 判断变量 i 是否为 1
if (i != &quot;Successful.&quot;) {
    // 如果 i 为 1，则给变量 b 赋值为 2
    vars.put(&quot;c&quot;, &quot;1&quot;)
} else {
    // 如果 i 不为 1，则给变量 b 赋值为 1
    vars.put(&quot;c&quot;, &quot;2&quot;)
}
</stringProp>
            <stringProp name="scriptLanguage">groovy</stringProp>
          </JSR223PostProcessor>
          <hashTree/>
        </hashTree>
        <TestAction guiclass="TestActionGui" testclass="TestAction" testname="上线后等待" enabled="true">
          <intProp name="ActionProcessor.action">1</intProp>
          <intProp name="ActionProcessor.target">0</intProp>
          <stringProp name="ActionProcessor.duration">20000</stringProp>
        </TestAction>
        <hashTree/>
        <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="固定定时器" enabled="true">
          <stringProp name="ConstantTimer.delay">100</stringProp>
        </ConstantTimer>
        <hashTree/>
        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">true</boolProp>
          <stringProp name="LoopController.loops">10</stringProp>
        </LoopController>
        <hashTree>
          <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="设备ID" enabled="true">
            <stringProp name="CounterConfig.start">1</stringProp>
            <stringProp name="CounterConfig.end">10</stringProp>
            <stringProp name="CounterConfig.incr">1</stringProp>
            <stringProp name="CounterConfig.name">deviceId</stringProp>
            <stringProp name="CounterConfig.format"></stringProp>
            <boolProp name="CounterConfig.per_user">true</boolProp>
            <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
          </CounterConfig>
          <hashTree/>
          <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="设备上数smdc${gatewayId}xn${deviceId}" enabled="true">
            <stringProp name="mqtt.topic_name">test_topic</stringProp>
            <stringProp name="mqtt.qos_level">0</stringProp>
            <boolProp name="mqtt.add_timestamp">false</boolProp>
            <stringProp name="mqtt.message_type">String</stringProp>
            <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
            <stringProp name="mqtt.message_to_sent">{
  &quot;seq&quot;: 1,
  &quot;ts&quot;: ${__time(,)},
  &quot;reporter&quot;: &quot;smdc${gatewayId}&quot;,
  &quot;type&quot;: &quot;DataReport&quot;,
  &quot;data&quot;: {
    &quot;dataType&quot;: &quot;ReportData&quot;,
    &quot;models&quot;: [
      {
        &quot;id&quot;: &quot;smdc${gatewayId}xn${deviceId}&quot;,
        &quot;ps&quot;: {
          &quot;${__time(,)}&quot;: {
            	&quot;jmeter1&quot;:${__Random(1,1000,)},
              &quot;jmeter2&quot;:${__Random(1,1000,)},
              &quot;jmeter3&quot;:${__Random(1,1000,)},
              &quot;jmeter4&quot;:${__Random(1,1000,)},
              &quot;jmeter5&quot;:${__Random(1,1000,)},
              &quot;jmeter6&quot;:${__Random(1,1000,)},
              &quot;jmeter7&quot;:${__Random(1,1000,)},
              &quot;jmeter8&quot;:${__Random(1,1000,)},
              &quot;jmeter9&quot;:${__Random(1,1000,)},
              &quot;jmeter10&quot;:${__Random(1,1000,)},
              &quot;jmeter11&quot;:${__Random(1,1000,)},
              &quot;jmeter12&quot;:${__Random(1,1000,)},
              &quot;jmeter13&quot;:${__Random(1,1000,)},
              &quot;jmeter14&quot;:${__Random(1,1000,)},
              &quot;jmeter15&quot;:${__Random(1,1000,)},
              &quot;jmeter16&quot;:${__Random(1,1000,)},
              &quot;jmeter17&quot;:${__Random(1,1000,)},
              &quot;jmeter18&quot;:${__Random(1,1000,)},
              &quot;jmeter19&quot;:${__Random(1,1000,)},
              &quot;jmeter20&quot;:${__Random(1,1000,)},
              &quot;jmeter21&quot;:${__Random(1,1000,)},
              &quot;jmeter22&quot;:${__Random(1,1000,)},
              &quot;jmeter23&quot;:${__Random(1,1000,)},
              &quot;jmeter24&quot;:${__Random(1,1000,)},
              &quot;jmeter25&quot;:${__Random(1,1000,)},
              &quot;jmeter26&quot;:${__Random(1,1000,)},
              &quot;jmeter27&quot;:${__Random(1,1000,)},
              &quot;jmeter28&quot;:${__Random(1,1000,)},
              &quot;jmeter29&quot;:${__Random(1,1000,)},
              &quot;jmeter30&quot;:${__Random(1,1000,)},
              &quot;jmeter31&quot;:${__Random(1,1000,)},
              &quot;jmeter32&quot;:${__Random(1,1000,)},
              &quot;jmeter33&quot;:${__Random(1,1000,)},
              &quot;jmeter34&quot;:${__Random(1,1000,)},
              &quot;jmeter35&quot;:${__Random(1,1000,)},
              &quot;jmeter36&quot;:${__Random(1,1000,)},
              &quot;jmeter37&quot;:${__Random(1,1000,)},
              &quot;jmeter38&quot;:${__Random(1,1000,)},
              &quot;jmeter39&quot;:${__Random(1,1000,)},
              &quot;jmeter40&quot;:${__Random(1,1000,)},
              &quot;jmeter41&quot;:${__Random(1,1000,)},
              &quot;jmeter42&quot;:${__Random(1,1000,)},
              &quot;jmeter43&quot;:${__Random(1,1000,)},
              &quot;jmeter44&quot;:${__Random(1,1000,)},
              &quot;jmeter45&quot;:${__Random(1,1000,)},
              &quot;jmeter46&quot;:${__Random(1,1000,)},
              &quot;jmeter47&quot;:${__Random(1,1000,)},
              &quot;jmeter48&quot;:${__Random(1,1000,)},
              &quot;jmeter49&quot;:${__Random(1,1000,)},
              &quot;jmeter50&quot;:${__Random(1,1000,)},
              &quot;jmeter51&quot;:${__Random(1,1000,)},
              &quot;jmeter52&quot;:${__Random(1,1000,)},
              &quot;jmeter53&quot;:${__Random(1,1000,)},
              &quot;jmeter54&quot;:${__Random(1,1000,)},
              &quot;jmeter55&quot;:${__Random(1,1000,)},
              &quot;jmeter56&quot;:${__Random(1,1000,)},
              &quot;jmeter57&quot;:${__Random(1,1000,)},
              &quot;jmeter58&quot;:${__Random(1,1000,)},
              &quot;jmeter59&quot;:${__Random(1,1000,)},
              &quot;jmeter60&quot;:${__Random(1,1000,)},
              &quot;jmeter61&quot;:${__Random(1,1000,)},
              &quot;jmeter62&quot;:${__Random(1,1000,)},
              &quot;jmeter63&quot;:${__Random(1,1000,)},
              &quot;jmeter64&quot;:${__Random(1,1000,)},
              &quot;jmeter65&quot;:${__Random(1,1000,)},
              &quot;jmeter66&quot;:${__Random(1,1000,)},
              &quot;jmeter67&quot;:${__Random(1,1000,)},
              &quot;jmeter68&quot;:${__Random(1,1000,)},
              &quot;jmeter69&quot;:${__Random(1,1000,)},
              &quot;jmeter70&quot;:${__Random(1,1000,)},
              &quot;jmeter71&quot;:${__Random(1,1000,)},
              &quot;jmeter72&quot;:${__Random(1,1000,)},
              &quot;jmeter73&quot;:${__Random(1,1000,)},
              &quot;jmeter74&quot;:${__Random(1,1000,)},
              &quot;jmeter75&quot;:${__Random(1,1000,)},
              &quot;jmeter76&quot;:${__Random(1,1000,)},
              &quot;jmeter77&quot;:${__Random(1,1000,)},
              &quot;jmeter78&quot;:${__Random(1,1000,)},
              &quot;jmeter79&quot;:${__Random(1,1000,)},
              &quot;jmeter80&quot;:${__Random(1,1000,)},
              &quot;jmeter81&quot;:${__Random(1,1000,)},
              &quot;jmeter82&quot;:${__Random(1,1000,)},
              &quot;jmeter83&quot;:${__Random(1,1000,)},
              &quot;jmeter84&quot;:${__Random(1,1000,)},
              &quot;jmeter85&quot;:${__Random(1,1000,)},
              &quot;jmeter86&quot;:${__Random(1,1000,)},
              &quot;jmeter87&quot;:${__Random(1,1000,)},
              &quot;jmeter88&quot;:${__Random(1,1000,)},
              &quot;jmeter89&quot;:${__Random(1,1000,)},
              &quot;jmeter90&quot;:${__Random(1,1000,)},
              &quot;jmeter91&quot;:${__Random(1,1000,)},
              &quot;jmeter92&quot;:${__Random(1,1000,)},
              &quot;jmeter93&quot;:${__Random(1,1000,)},
              &quot;jmeter94&quot;:${__Random(1,1000,)},
              &quot;jmeter95&quot;:${__Random(1,1000,)},
              &quot;jmeter96&quot;:${__Random(1,1000,)},
              &quot;jmeter97&quot;:${__Random(1,1000,)},
              &quot;jmeter98&quot;:${__Random(1,1000,)},
              &quot;jmeter99&quot;:${__Random(1,1000,)},
              &quot;jmeter100&quot;:${__Random(1,1000,)},
              &quot;jmeter101&quot;:${__Random(1,1000,)},
              &quot;jmeter102&quot;:${__Random(1,1000,)},
              &quot;jmeter103&quot;:${__Random(1,1000,)},
              &quot;jmeter104&quot;:${__Random(1,1000,)},
              &quot;jmeter105&quot;:${__Random(1,1000,)},
              &quot;jmeter106&quot;:${__Random(1,1000,)},
              &quot;jmeter107&quot;:${__Random(1,1000,)},
              &quot;jmeter108&quot;:${__Random(1,1000,)},
              &quot;jmeter109&quot;:${__Random(1,1000,)},
              &quot;jmeter110&quot;:${__Random(1,1000,)},
              &quot;jmeter111&quot;:${__Random(1,1000,)},
              &quot;jmeter112&quot;:${__Random(1,1000,)},
              &quot;jmeter113&quot;:${__Random(1,1000,)},
              &quot;jmeter114&quot;:${__Random(1,1000,)},
              &quot;jmeter115&quot;:${__Random(1,1000,)},
              &quot;jmeter116&quot;:${__Random(1,1000,)},
              &quot;jmeter117&quot;:${__Random(1,1000,)},
              &quot;jmeter118&quot;:${__Random(1,1000,)},
              &quot;jmeter119&quot;:${__Random(1,1000,)},
              &quot;jmeter120&quot;:${__Random(1,1000,)},
              &quot;jmeter121&quot;:${__Random(1,1000,)},
              &quot;jmeter122&quot;:${__Random(1,1000,)},
              &quot;jmeter123&quot;:${__Random(1,1000,)},
              &quot;jmeter124&quot;:${__Random(1,1000,)},
              &quot;jmeter125&quot;:${__Random(1,1000,)},
              &quot;jmeter126&quot;:${__Random(1,1000,)},
              &quot;jmeter127&quot;:${__Random(1,1000,)},
              &quot;jmeter128&quot;:${__Random(1,1000,)},
              &quot;jmeter129&quot;:${__Random(1,1000,)},
              &quot;jmeter130&quot;:${__Random(1,1000,)},
              &quot;jmeter131&quot;:${__Random(1,1000,)},
              &quot;jmeter132&quot;:${__Random(1,1000,)},
              &quot;jmeter133&quot;:${__Random(1,1000,)},
              &quot;jmeter134&quot;:${__Random(1,1000,)},
              &quot;jmeter135&quot;:${__Random(1,1000,)},
              &quot;jmeter136&quot;:${__Random(1,1000,)},
              &quot;jmeter137&quot;:${__Random(1,1000,)},
              &quot;jmeter138&quot;:${__Random(1,1000,)},
              &quot;jmeter139&quot;:${__Random(1,1000,)},
              &quot;jmeter140&quot;:${__Random(1,1000,)},
              &quot;jmeter141&quot;:${__Random(1,1000,)},
              &quot;jmeter142&quot;:${__Random(1,1000,)},
              &quot;jmeter143&quot;:${__Random(1,1000,)},
              &quot;jmeter144&quot;:${__Random(1,1000,)},
              &quot;jmeter145&quot;:${__Random(1,1000,)},
              &quot;jmeter146&quot;:${__Random(1,1000,)},
              &quot;jmeter147&quot;:${__Random(1,1000,)},
              &quot;jmeter148&quot;:${__Random(1,1000,)},
              &quot;jmeter149&quot;:${__Random(1,1000,)},
              &quot;jmeter150&quot;:${__Random(1,1000,)},
              &quot;jmeter151&quot;:${__Random(1,1000,)},
              &quot;jmeter152&quot;:${__Random(1,1000,)},
              &quot;jmeter153&quot;:${__Random(1,1000,)},
              &quot;jmeter154&quot;:${__Random(1,1000,)},
              &quot;jmeter155&quot;:${__Random(1,1000,)},
              &quot;jmeter156&quot;:${__Random(1,1000,)},
              &quot;jmeter157&quot;:${__Random(1,1000,)},
              &quot;jmeter158&quot;:${__Random(1,1000,)},
              &quot;jmeter159&quot;:${__Random(1,1000,)},
              &quot;jmeter160&quot;:${__Random(1,1000,)},
              &quot;jmeter161&quot;:${__Random(1,1000,)},
              &quot;jmeter162&quot;:${__Random(1,1000,)},
              &quot;jmeter163&quot;:${__Random(1,1000,)},
              &quot;jmeter164&quot;:${__Random(1,1000,)},
              &quot;jmeter165&quot;:${__Random(1,1000,)},
              &quot;jmeter166&quot;:${__Random(1,1000,)},
              &quot;jmeter167&quot;:${__Random(1,1000,)},
              &quot;jmeter168&quot;:${__Random(1,1000,)},
              &quot;jmeter169&quot;:${__Random(1,1000,)},
              &quot;jmeter170&quot;:${__Random(1,1000,)},
              &quot;jmeter171&quot;:${__Random(1,1000,)},
              &quot;jmeter172&quot;:${__Random(1,1000,)},
              &quot;jmeter173&quot;:${__Random(1,1000,)},
              &quot;jmeter174&quot;:${__Random(1,1000,)},
              &quot;jmeter175&quot;:${__Random(1,1000,)},
              &quot;jmeter176&quot;:${__Random(1,1000,)},
              &quot;jmeter177&quot;:${__Random(1,1000,)},
              &quot;jmeter178&quot;:${__Random(1,1000,)},
              &quot;jmeter179&quot;:${__Random(1,1000,)},
              &quot;jmeter180&quot;:${__Random(1,1000,)},
              &quot;jmeter181&quot;:${__Random(1,1000,)},
              &quot;jmeter182&quot;:${__Random(1,1000,)},
              &quot;jmeter183&quot;:${__Random(1,1000,)},
              &quot;jmeter184&quot;:${__Random(1,1000,)},
              &quot;jmeter185&quot;:${__Random(1,1000,)},
              &quot;jmeter186&quot;:${__Random(1,1000,)},
              &quot;jmeter187&quot;:${__Random(1,1000,)},
              &quot;jmeter188&quot;:${__Random(1,1000,)},
              &quot;jmeter189&quot;:${__Random(1,1000,)},
              &quot;jmeter190&quot;:${__Random(1,1000,)},
              &quot;jmeter191&quot;:${__Random(1,1000,)},
              &quot;jmeter192&quot;:${__Random(1,1000,)},
              &quot;jmeter193&quot;:${__Random(1,1000,)},
              &quot;jmeter194&quot;:${__Random(1,1000,)},
              &quot;jmeter195&quot;:${__Random(1,1000,)},
              &quot;jmeter196&quot;:${__Random(1,1000,)},
              &quot;jmeter197&quot;:${__Random(1,1000,)},
              &quot;jmeter198&quot;:${__Random(1,1000,)},
              &quot;jmeter199&quot;:${__Random(1,1000,)},
              &quot;jmeter200&quot;:${__Random(1,1000,)},
            &quot;qs&quot;:{
            	
            	}
          }
        }
      }
    ]
  }
}</stringProp>
            <boolProp name="mqtt.retained_message">false</boolProp>
          </net.xmeter.samplers.PubSampler>
          <hashTree>
            <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="正则表达式提取器" enabled="true">
              <stringProp name="RegexExtractor.useHeaders">false</stringProp>
              <stringProp name="RegexExtractor.refname">device_status</stringProp>
              <stringProp name="RegexExtractor.regex">(.*)</stringProp>
              <stringProp name="RegexExtractor.template">$1$</stringProp>
              <stringProp name="RegexExtractor.default">null</stringProp>
              <stringProp name="RegexExtractor.match_number">1</stringProp>
            </RegexExtractor>
            <hashTree/>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="-145173888">Publish successfuly.</stringProp>
              </collectionProp>
              <stringProp name="Assertion.custom_message"></stringProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">16</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
        <net.xmeter.samplers.DisConnectSampler guiclass="net.xmeter.gui.DisConnectSamplerUI" testclass="net.xmeter.samplers.DisConnectSampler" testname="MQTT DisConnect" enabled="true"/>
        <hashTree/>
        <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="true">
          <boolProp name="ResultCollector.error_logging">false</boolProp>
          <objProp>
            <name>saveConfig</name>
            <value class="SampleSaveConfiguration">
              <time>true</time>
              <latency>true</latency>
              <timestamp>true</timestamp>
              <success>true</success>
              <label>true</label>
              <code>true</code>
              <message>true</message>
              <threadName>true</threadName>
              <dataType>true</dataType>
              <encoding>false</encoding>
              <assertions>true</assertions>
              <subresults>true</subresults>
              <responseData>false</responseData>
              <samplerData>false</samplerData>
              <xml>false</xml>
              <fieldNames>true</fieldNames>
              <responseHeaders>false</responseHeaders>
              <requestHeaders>false</requestHeaders>
              <responseDataOnError>false</responseDataOnError>
              <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
              <assertionsResultsToSave>0</assertionsResultsToSave>
              <bytes>true</bytes>
              <sentBytes>true</sentBytes>
              <url>true</url>
              <threadCounts>true</threadCounts>
              <idleTime>true</idleTime>
              <connectTime>true</connectTime>
            </value>
          </objProp>
          <stringProp name="filename"></stringProp>
        </ResultCollector>
        <hashTree/>
      </hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="上报设备被动断开" enabled="false">
        <stringProp name="ThreadGroup.num_threads">${gateway_count}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">${gateway_count_seconds}</stringProp>
        <stringProp name="ThreadGroup.delay">10</stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">1</stringProp>
        </elementProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
      </ThreadGroup>
      <hashTree>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="BeanShell 取样器" enabled="true">
          <stringProp name="BeanShellSampler.query">// 定义变量 C 并赋值为 0
int c = 0;

// 将变量 C 存储到 JMeter 变量中，以便在其他接口中使用
vars.put(&quot;c&quot;, String.valueOf(c));
</stringProp>
          <stringProp name="BeanShellSampler.filename"></stringProp>
          <stringProp name="BeanShellSampler.parameters"></stringProp>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="网关ID" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end">1</stringProp>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">gatewayId</stringProp>
          <stringProp name="CounterConfig.format"></stringProp>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While控制器" enabled="true">
          <stringProp name="WhileController.condition">${__groovy(${c}==0,)}</stringProp>
        </WhileController>
        <hashTree>
          <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="网关上线${gatewayId}" enabled="true">
            <stringProp name="mqtt.server">${mqttIp}</stringProp>
            <stringProp name="mqtt.port">${mqttPort}</stringProp>
            <stringProp name="mqtt.version">3.1</stringProp>
            <stringProp name="mqtt.conn_timeout">100</stringProp>
            <stringProp name="mqtt.protocol"></stringProp>
            <stringProp name="mqtt.ws_path"></stringProp>
            <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
            <stringProp name="mqtt.clientcert_file_path"></stringProp>
            <stringProp name="mqtt.clientcert_password"></stringProp>
            <stringProp name="mqtt.user_name">${conn_account}</stringProp>
            <stringProp name="mqtt.password">${conn_password}</stringProp>
            <stringProp name="mqtt.client_id_prefix">smdc${gatewayId}</stringProp>
            <boolProp name="mqtt.client_id_suffix">false</boolProp>
            <stringProp name="mqtt.conn_keep_alive">1800</stringProp>
            <stringProp name="mqtt.conn_attampt_max">0</stringProp>
            <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
            <stringProp name="mqtt.conn_clean_session">true</stringProp>
          </net.xmeter.samplers.ConnectSampler>
          <hashTree>
            <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="正则表达式提取器" enabled="true">
              <stringProp name="RegexExtractor.useHeaders">false</stringProp>
              <stringProp name="RegexExtractor.refname">gateway_type</stringProp>
              <stringProp name="RegexExtractor.regex">(.*)</stringProp>
              <stringProp name="RegexExtractor.template">$1$</stringProp>
              <stringProp name="RegexExtractor.default"></stringProp>
              <stringProp name="RegexExtractor.match_number">1</stringProp>
            </RegexExtractor>
            <hashTree/>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1259833018">Successful</stringProp>
              </collectionProp>
              <stringProp name="Assertion.custom_message"></stringProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">16</intProp>
            </ResponseAssertion>
            <hashTree/>
            <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="JSR223 后置处理程序" enabled="true">
              <stringProp name="cacheKey">true</stringProp>
              <stringProp name="filename"></stringProp>
              <stringProp name="parameters"></stringProp>
              <stringProp name="script">// 从接口返回的值赋值给变量 i
def i = vars.get(&quot;gateway_type&quot;)

// 判断变量 i 是否为 1
if (i != &quot;Successful.&quot;) {
    // 如果 i 为 1，则给变量 b 赋值为 2
    vars.put(&quot;c&quot;, &quot;1&quot;)
} else {
    // 如果 i 不为 1，则给变量 b 赋值为 1
    vars.put(&quot;c&quot;, &quot;2&quot;)
}
</stringProp>
              <stringProp name="scriptLanguage">groovy</stringProp>
            </JSR223PostProcessor>
            <hashTree/>
          </hashTree>
        </hashTree>
        <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="调试取样器" enabled="true">
          <boolProp name="displayJMeterProperties">false</boolProp>
          <boolProp name="displayJMeterVariables">true</boolProp>
          <boolProp name="displaySystemProperties">false</boolProp>
        </DebugSampler>
        <hashTree/>
        <TestAction guiclass="TestActionGui" testclass="TestAction" testname="上线后等待" enabled="true">
          <intProp name="ActionProcessor.action">1</intProp>
          <intProp name="ActionProcessor.target">0</intProp>
          <stringProp name="ActionProcessor.duration">1000</stringProp>
        </TestAction>
        <hashTree/>
        <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="固定定时器" enabled="true">
          <stringProp name="ConstantTimer.delay">100</stringProp>
        </ConstantTimer>
        <hashTree/>
        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">true</boolProp>
          <stringProp name="LoopController.loops">${Starting_device}</stringProp>
        </LoopController>
        <hashTree>
          <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="设备ID" enabled="true">
            <stringProp name="CounterConfig.start">1</stringProp>
            <stringProp name="CounterConfig.end">10</stringProp>
            <stringProp name="CounterConfig.incr">1</stringProp>
            <stringProp name="CounterConfig.name">deviceId</stringProp>
            <stringProp name="CounterConfig.format"></stringProp>
            <boolProp name="CounterConfig.per_user">true</boolProp>
            <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
          </CounterConfig>
          <hashTree/>
          <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="设备上数smdc${gatewayId}xn${deviceId}" enabled="true">
            <stringProp name="mqtt.topic_name">test_topic</stringProp>
            <stringProp name="mqtt.qos_level">0</stringProp>
            <boolProp name="mqtt.add_timestamp">false</boolProp>
            <stringProp name="mqtt.message_type">String</stringProp>
            <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
            <stringProp name="mqtt.message_to_sent">{
  &quot;seq&quot;: 1,
  &quot;ts&quot;: ${__time(,)},
  &quot;reporter&quot;: &quot;smdc${gatewayId}&quot;,
  &quot;type&quot;: &quot;DataReport&quot;,
  &quot;data&quot;: {
    &quot;dataType&quot;: &quot;ReportData&quot;,
    &quot;models&quot;: [
      {
        &quot;id&quot;: &quot;smdc${gatewayId}xn${deviceId}&quot;,
        &quot;ps&quot;: {
          &quot;${__time(,)}&quot;: {
            	&quot;jmeter1&quot;:${__Random(1,1000,)},
              &quot;jmeter2&quot;:${__Random(1,1000,)},
              &quot;jmeter3&quot;:${__Random(1,1000,)},
              &quot;jmeter4&quot;:${__Random(1,1000,)},
              &quot;jmeter5&quot;:${__Random(1,1000,)},
              &quot;jmeter6&quot;:${__Random(1,1000,)},
              &quot;jmeter7&quot;:${__Random(1,1000,)},
              &quot;jmeter8&quot;:${__Random(1,1000,)},
              &quot;jmeter9&quot;:${__Random(1,1000,)},
              &quot;jmeter10&quot;:${__Random(1,1000,)},
              &quot;jmeter11&quot;:${__Random(1,1000,)},
              &quot;jmeter12&quot;:${__Random(1,1000,)},
              &quot;jmeter13&quot;:${__Random(1,1000,)},
              &quot;jmeter14&quot;:${__Random(1,1000,)},
              &quot;jmeter15&quot;:${__Random(1,1000,)},
              &quot;jmeter16&quot;:${__Random(1,1000,)},
              &quot;jmeter17&quot;:${__Random(1,1000,)},
              &quot;jmeter18&quot;:${__Random(1,1000,)},
              &quot;jmeter19&quot;:${__Random(1,1000,)},
              &quot;jmeter20&quot;:${__Random(1,1000,)},
              &quot;jmeter21&quot;:${__Random(1,1000,)},
              &quot;jmeter22&quot;:${__Random(1,1000,)},
              &quot;jmeter23&quot;:${__Random(1,1000,)},
              &quot;jmeter24&quot;:${__Random(1,1000,)},
              &quot;jmeter25&quot;:${__Random(1,1000,)},
              &quot;jmeter26&quot;:${__Random(1,1000,)},
              &quot;jmeter27&quot;:${__Random(1,1000,)},
              &quot;jmeter28&quot;:${__Random(1,1000,)},
              &quot;jmeter29&quot;:${__Random(1,1000,)},
              &quot;jmeter30&quot;:${__Random(1,1000,)},
              &quot;jmeter31&quot;:${__Random(1,1000,)},
              &quot;jmeter32&quot;:${__Random(1,1000,)},
              &quot;jmeter33&quot;:${__Random(1,1000,)},
              &quot;jmeter34&quot;:${__Random(1,1000,)},
              &quot;jmeter35&quot;:${__Random(1,1000,)},
              &quot;jmeter36&quot;:${__Random(1,1000,)},
              &quot;jmeter37&quot;:${__Random(1,1000,)},
              &quot;jmeter38&quot;:${__Random(1,1000,)},
              &quot;jmeter39&quot;:${__Random(1,1000,)},
              &quot;jmeter40&quot;:${__Random(1,1000,)},
              &quot;jmeter41&quot;:${__Random(1,1000,)},
              &quot;jmeter42&quot;:${__Random(1,1000,)},
              &quot;jmeter43&quot;:${__Random(1,1000,)},
              &quot;jmeter44&quot;:${__Random(1,1000,)},
              &quot;jmeter45&quot;:${__Random(1,1000,)},
              &quot;jmeter46&quot;:${__Random(1,1000,)},
              &quot;jmeter47&quot;:${__Random(1,1000,)},
              &quot;jmeter48&quot;:${__Random(1,1000,)},
              &quot;jmeter49&quot;:${__Random(1,1000,)},
              &quot;jmeter50&quot;:${__Random(1,1000,)},
              &quot;jmeter51&quot;:${__Random(1,1000,)},
              &quot;jmeter52&quot;:${__Random(1,1000,)},
              &quot;jmeter53&quot;:${__Random(1,1000,)},
              &quot;jmeter54&quot;:${__Random(1,1000,)},
              &quot;jmeter55&quot;:${__Random(1,1000,)},
              &quot;jmeter56&quot;:${__Random(1,1000,)},
              &quot;jmeter57&quot;:${__Random(1,1000,)},
              &quot;jmeter58&quot;:${__Random(1,1000,)},
              &quot;jmeter59&quot;:${__Random(1,1000,)},
              &quot;jmeter60&quot;:${__Random(1,1000,)},
              &quot;jmeter61&quot;:${__Random(1,1000,)},
              &quot;jmeter62&quot;:${__Random(1,1000,)},
              &quot;jmeter63&quot;:${__Random(1,1000,)},
              &quot;jmeter64&quot;:${__Random(1,1000,)},
              &quot;jmeter65&quot;:${__Random(1,1000,)},
              &quot;jmeter66&quot;:${__Random(1,1000,)},
              &quot;jmeter67&quot;:${__Random(1,1000,)},
              &quot;jmeter68&quot;:${__Random(1,1000,)},
              &quot;jmeter69&quot;:${__Random(1,1000,)},
              &quot;jmeter70&quot;:${__Random(1,1000,)},
              &quot;jmeter71&quot;:${__Random(1,1000,)},
              &quot;jmeter72&quot;:${__Random(1,1000,)},
              &quot;jmeter73&quot;:${__Random(1,1000,)},
              &quot;jmeter74&quot;:${__Random(1,1000,)},
              &quot;jmeter75&quot;:${__Random(1,1000,)},
              &quot;jmeter76&quot;:${__Random(1,1000,)},
              &quot;jmeter77&quot;:${__Random(1,1000,)},
              &quot;jmeter78&quot;:${__Random(1,1000,)},
              &quot;jmeter79&quot;:${__Random(1,1000,)},
              &quot;jmeter80&quot;:${__Random(1,1000,)},
              &quot;jmeter81&quot;:${__Random(1,1000,)},
              &quot;jmeter82&quot;:${__Random(1,1000,)},
              &quot;jmeter83&quot;:${__Random(1,1000,)},
              &quot;jmeter84&quot;:${__Random(1,1000,)},
              &quot;jmeter85&quot;:${__Random(1,1000,)},
              &quot;jmeter86&quot;:${__Random(1,1000,)},
              &quot;jmeter87&quot;:${__Random(1,1000,)},
              &quot;jmeter88&quot;:${__Random(1,1000,)},
              &quot;jmeter89&quot;:${__Random(1,1000,)},
              &quot;jmeter90&quot;:${__Random(1,1000,)},
              &quot;jmeter91&quot;:${__Random(1,1000,)},
              &quot;jmeter92&quot;:${__Random(1,1000,)},
              &quot;jmeter93&quot;:${__Random(1,1000,)},
              &quot;jmeter94&quot;:${__Random(1,1000,)},
              &quot;jmeter95&quot;:${__Random(1,1000,)},
              &quot;jmeter96&quot;:${__Random(1,1000,)},
              &quot;jmeter97&quot;:${__Random(1,1000,)},
              &quot;jmeter98&quot;:${__Random(1,1000,)},
              &quot;jmeter99&quot;:${__Random(1,1000,)},
              &quot;jmeter100&quot;:${__Random(1,1000,)},
              &quot;jmeter101&quot;:${__Random(1,1000,)},
              &quot;jmeter102&quot;:${__Random(1,1000,)},
              &quot;jmeter103&quot;:${__Random(1,1000,)},
              &quot;jmeter104&quot;:${__Random(1,1000,)},
              &quot;jmeter105&quot;:${__Random(1,1000,)},
              &quot;jmeter106&quot;:${__Random(1,1000,)},
              &quot;jmeter107&quot;:${__Random(1,1000,)},
              &quot;jmeter108&quot;:${__Random(1,1000,)},
              &quot;jmeter109&quot;:${__Random(1,1000,)},
              &quot;jmeter110&quot;:${__Random(1,1000,)},
              &quot;jmeter111&quot;:${__Random(1,1000,)},
              &quot;jmeter112&quot;:${__Random(1,1000,)},
              &quot;jmeter113&quot;:${__Random(1,1000,)},
              &quot;jmeter114&quot;:${__Random(1,1000,)},
              &quot;jmeter115&quot;:${__Random(1,1000,)},
              &quot;jmeter116&quot;:${__Random(1,1000,)},
              &quot;jmeter117&quot;:${__Random(1,1000,)},
              &quot;jmeter118&quot;:${__Random(1,1000,)},
              &quot;jmeter119&quot;:${__Random(1,1000,)},
              &quot;jmeter120&quot;:${__Random(1,1000,)},
              &quot;jmeter121&quot;:${__Random(1,1000,)},
              &quot;jmeter122&quot;:${__Random(1,1000,)},
              &quot;jmeter123&quot;:${__Random(1,1000,)},
              &quot;jmeter124&quot;:${__Random(1,1000,)},
              &quot;jmeter125&quot;:${__Random(1,1000,)},
              &quot;jmeter126&quot;:${__Random(1,1000,)},
              &quot;jmeter127&quot;:${__Random(1,1000,)},
              &quot;jmeter128&quot;:${__Random(1,1000,)},
              &quot;jmeter129&quot;:${__Random(1,1000,)},
              &quot;jmeter130&quot;:${__Random(1,1000,)},
              &quot;jmeter131&quot;:${__Random(1,1000,)},
              &quot;jmeter132&quot;:${__Random(1,1000,)},
              &quot;jmeter133&quot;:${__Random(1,1000,)},
              &quot;jmeter134&quot;:${__Random(1,1000,)},
              &quot;jmeter135&quot;:${__Random(1,1000,)},
              &quot;jmeter136&quot;:${__Random(1,1000,)},
              &quot;jmeter137&quot;:${__Random(1,1000,)},
              &quot;jmeter138&quot;:${__Random(1,1000,)},
              &quot;jmeter139&quot;:${__Random(1,1000,)},
              &quot;jmeter140&quot;:${__Random(1,1000,)},
              &quot;jmeter141&quot;:${__Random(1,1000,)},
              &quot;jmeter142&quot;:${__Random(1,1000,)},
              &quot;jmeter143&quot;:${__Random(1,1000,)},
              &quot;jmeter144&quot;:${__Random(1,1000,)},
              &quot;jmeter145&quot;:${__Random(1,1000,)},
              &quot;jmeter146&quot;:${__Random(1,1000,)},
              &quot;jmeter147&quot;:${__Random(1,1000,)},
              &quot;jmeter148&quot;:${__Random(1,1000,)},
              &quot;jmeter149&quot;:${__Random(1,1000,)},
              &quot;jmeter150&quot;:${__Random(1,1000,)},
              &quot;jmeter151&quot;:${__Random(1,1000,)},
              &quot;jmeter152&quot;:${__Random(1,1000,)},
              &quot;jmeter153&quot;:${__Random(1,1000,)},
              &quot;jmeter154&quot;:${__Random(1,1000,)},
              &quot;jmeter155&quot;:${__Random(1,1000,)},
              &quot;jmeter156&quot;:${__Random(1,1000,)},
              &quot;jmeter157&quot;:${__Random(1,1000,)},
              &quot;jmeter158&quot;:${__Random(1,1000,)},
              &quot;jmeter159&quot;:${__Random(1,1000,)},
              &quot;jmeter160&quot;:${__Random(1,1000,)},
              &quot;jmeter161&quot;:${__Random(1,1000,)},
              &quot;jmeter162&quot;:${__Random(1,1000,)},
              &quot;jmeter163&quot;:${__Random(1,1000,)},
              &quot;jmeter164&quot;:${__Random(1,1000,)},
              &quot;jmeter165&quot;:${__Random(1,1000,)},
              &quot;jmeter166&quot;:${__Random(1,1000,)},
              &quot;jmeter167&quot;:${__Random(1,1000,)},
              &quot;jmeter168&quot;:${__Random(1,1000,)},
              &quot;jmeter169&quot;:${__Random(1,1000,)},
              &quot;jmeter170&quot;:${__Random(1,1000,)},
              &quot;jmeter171&quot;:${__Random(1,1000,)},
              &quot;jmeter172&quot;:${__Random(1,1000,)},
              &quot;jmeter173&quot;:${__Random(1,1000,)},
              &quot;jmeter174&quot;:${__Random(1,1000,)},
              &quot;jmeter175&quot;:${__Random(1,1000,)},
              &quot;jmeter176&quot;:${__Random(1,1000,)},
              &quot;jmeter177&quot;:${__Random(1,1000,)},
              &quot;jmeter178&quot;:${__Random(1,1000,)},
              &quot;jmeter179&quot;:${__Random(1,1000,)},
              &quot;jmeter180&quot;:${__Random(1,1000,)},
              &quot;jmeter181&quot;:${__Random(1,1000,)},
              &quot;jmeter182&quot;:${__Random(1,1000,)},
              &quot;jmeter183&quot;:${__Random(1,1000,)},
              &quot;jmeter184&quot;:${__Random(1,1000,)},
              &quot;jmeter185&quot;:${__Random(1,1000,)},
              &quot;jmeter186&quot;:${__Random(1,1000,)},
              &quot;jmeter187&quot;:${__Random(1,1000,)},
              &quot;jmeter188&quot;:${__Random(1,1000,)},
              &quot;jmeter189&quot;:${__Random(1,1000,)},
              &quot;jmeter190&quot;:${__Random(1,1000,)},
              &quot;jmeter191&quot;:${__Random(1,1000,)},
              &quot;jmeter192&quot;:${__Random(1,1000,)},
              &quot;jmeter193&quot;:${__Random(1,1000,)},
              &quot;jmeter194&quot;:${__Random(1,1000,)},
              &quot;jmeter195&quot;:${__Random(1,1000,)},
              &quot;jmeter196&quot;:${__Random(1,1000,)},
              &quot;jmeter197&quot;:${__Random(1,1000,)},
              &quot;jmeter198&quot;:${__Random(1,1000,)},
              &quot;jmeter199&quot;:${__Random(1,1000,)},
              &quot;jmeter200&quot;:${__Random(1,1000,)},
            &quot;qs&quot;:{
            	
            	}
          }
        }
      }
    ]
  }
}</stringProp>
            <boolProp name="mqtt.retained_message">false</boolProp>
          </net.xmeter.samplers.PubSampler>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="-145173888">Publish successfuly.</stringProp>
              </collectionProp>
              <stringProp name="Assertion.custom_message"></stringProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">16</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
          <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While控制器" enabled="true">
            <stringProp name="WhileController.condition">${__jexl3(&quot;${gateway_type}}&quot; != &quot;Successful.&quot;)}</stringProp>
          </WhileController>
          <hashTree>
            <net.xmeter.samplers.DisConnectSampler guiclass="net.xmeter.gui.DisConnectSamplerUI" testclass="net.xmeter.samplers.DisConnectSampler" testname="断开连接" enabled="true"/>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="固定定时器" enabled="true">
              <stringProp name="ConstantTimer.delay">3000</stringProp>
            </ConstantTimer>
            <hashTree/>
            <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="网关上线${gatewayId}" enabled="true">
              <stringProp name="mqtt.server">${mqttIp}</stringProp>
              <stringProp name="mqtt.port">${mqttPort}</stringProp>
              <stringProp name="mqtt.version">3.1</stringProp>
              <stringProp name="mqtt.conn_timeout">100</stringProp>
              <stringProp name="mqtt.protocol"></stringProp>
              <stringProp name="mqtt.ws_path"></stringProp>
              <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
              <stringProp name="mqtt.clientcert_file_path"></stringProp>
              <stringProp name="mqtt.clientcert_password"></stringProp>
              <stringProp name="mqtt.user_name">${conn_account}</stringProp>
              <stringProp name="mqtt.password">${conn_password}</stringProp>
              <stringProp name="mqtt.client_id_prefix">smdc${gatewayId}</stringProp>
              <boolProp name="mqtt.client_id_suffix">false</boolProp>
              <stringProp name="mqtt.conn_keep_alive">1800</stringProp>
              <stringProp name="mqtt.conn_attampt_max">0</stringProp>
              <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
              <stringProp name="mqtt.conn_clean_session">true</stringProp>
            </net.xmeter.samplers.ConnectSampler>
            <hashTree>
              <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="正则表达式提取器" enabled="true">
                <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                <stringProp name="RegexExtractor.refname">gateway_type</stringProp>
                <stringProp name="RegexExtractor.regex">(.*)</stringProp>
                <stringProp name="RegexExtractor.template">$1$</stringProp>
                <stringProp name="RegexExtractor.default"></stringProp>
                <stringProp name="RegexExtractor.match_number">1</stringProp>
              </RegexExtractor>
              <hashTree/>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="1259833018">Successful</stringProp>
                </collectionProp>
                <stringProp name="Assertion.custom_message"></stringProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">16</intProp>
              </ResponseAssertion>
              <hashTree/>
            </hashTree>
          </hashTree>
        </hashTree>
        <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="true">
          <boolProp name="ResultCollector.error_logging">false</boolProp>
          <objProp>
            <name>saveConfig</name>
            <value class="SampleSaveConfiguration">
              <time>true</time>
              <latency>true</latency>
              <timestamp>true</timestamp>
              <success>true</success>
              <label>true</label>
              <code>true</code>
              <message>true</message>
              <threadName>true</threadName>
              <dataType>true</dataType>
              <encoding>false</encoding>
              <assertions>true</assertions>
              <subresults>true</subresults>
              <responseData>false</responseData>
              <samplerData>false</samplerData>
              <xml>false</xml>
              <fieldNames>true</fieldNames>
              <responseHeaders>false</responseHeaders>
              <requestHeaders>false</requestHeaders>
              <responseDataOnError>false</responseDataOnError>
              <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
              <assertionsResultsToSave>0</assertionsResultsToSave>
              <bytes>true</bytes>
              <sentBytes>true</sentBytes>
              <url>true</url>
              <threadCounts>true</threadCounts>
              <idleTime>true</idleTime>
              <connectTime>true</connectTime>
            </value>
          </objProp>
          <stringProp name="filename"></stringProp>
        </ResultCollector>
        <hashTree/>
      </hashTree>
      <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="true">
        <boolProp name="ResultCollector.error_logging">true</boolProp>
        <objProp>
          <name>saveConfig</name>
          <value class="SampleSaveConfiguration">
            <time>true</time>
            <latency>true</latency>
            <timestamp>true</timestamp>
            <success>true</success>
            <label>true</label>
            <code>true</code>
            <message>true</message>
            <threadName>true</threadName>
            <dataType>true</dataType>
            <encoding>false</encoding>
            <assertions>true</assertions>
            <subresults>true</subresults>
            <responseData>false</responseData>
            <samplerData>false</samplerData>
            <xml>false</xml>
            <fieldNames>true</fieldNames>
            <responseHeaders>false</responseHeaders>
            <requestHeaders>false</requestHeaders>
            <responseDataOnError>false</responseDataOnError>
            <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
            <assertionsResultsToSave>0</assertionsResultsToSave>
            <bytes>true</bytes>
            <sentBytes>true</sentBytes>
            <url>true</url>
            <threadCounts>true</threadCounts>
            <idleTime>true</idleTime>
            <connectTime>true</connectTime>
          </value>
        </objProp>
        <stringProp name="filename"></stringProp>
      </ResultCollector>
      <hashTree/>
      <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="汇总报告" enabled="true">
        <boolProp name="ResultCollector.error_logging">false</boolProp>
        <objProp>
          <name>saveConfig</name>
          <value class="SampleSaveConfiguration">
            <time>true</time>
            <latency>true</latency>
            <timestamp>true</timestamp>
            <success>true</success>
            <label>true</label>
            <code>true</code>
            <message>true</message>
            <threadName>true</threadName>
            <dataType>true</dataType>
            <encoding>false</encoding>
            <assertions>true</assertions>
            <subresults>true</subresults>
            <responseData>false</responseData>
            <samplerData>false</samplerData>
            <xml>false</xml>
            <fieldNames>true</fieldNames>
            <responseHeaders>false</responseHeaders>
            <requestHeaders>false</requestHeaders>
            <responseDataOnError>false</responseDataOnError>
            <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
            <assertionsResultsToSave>0</assertionsResultsToSave>
            <bytes>true</bytes>
            <sentBytes>true</sentBytes>
            <url>true</url>
            <threadCounts>true</threadCounts>
            <idleTime>true</idleTime>
            <connectTime>true</connectTime>
          </value>
        </objProp>
        <stringProp name="filename"></stringProp>
      </ResultCollector>
      <hashTree/>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="设备上报测点" enabled="true">
        <stringProp name="ThreadGroup.num_threads">${gateway_count}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">${gateway_count_seconds}</stringProp>
        <stringProp name="ThreadGroup.delay">0</stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <intProp name="LoopController.loops">-1</intProp>
        </elementProp>
        <boolProp name="ThreadGroup.scheduler">true</boolProp>
        <stringProp name="ThreadGroup.duration">600</stringProp>
      </ThreadGroup>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="网关ID" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end">50</stringProp>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">gatewayId</stringProp>
          <stringProp name="CounterConfig.format"></stringProp>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <net.xmeter.samplers.ConnectSampler guiclass="net.xmeter.gui.ConnectSamplerUI" testclass="net.xmeter.samplers.ConnectSampler" testname="网关上线${gatewayId}" enabled="true">
          <stringProp name="mqtt.server">${mqttIp}</stringProp>
          <stringProp name="mqtt.port">${mqttPort}</stringProp>
          <stringProp name="mqtt.version">3.1</stringProp>
          <stringProp name="mqtt.conn_timeout">100</stringProp>
          <stringProp name="mqtt.protocol"></stringProp>
          <stringProp name="mqtt.ws_path"></stringProp>
          <boolProp name="mqtt.dual_ssl_authentication">false</boolProp>
          <stringProp name="mqtt.clientcert_file_path"></stringProp>
          <stringProp name="mqtt.clientcert_password"></stringProp>
          <stringProp name="mqtt.user_name">${conn_account}</stringProp>
          <stringProp name="mqtt.password">${conn_password}</stringProp>
          <stringProp name="mqtt.client_id_prefix">smdc${gatewayId}</stringProp>
          <boolProp name="mqtt.client_id_suffix">false</boolProp>
          <stringProp name="mqtt.conn_keep_alive">100</stringProp>
          <stringProp name="mqtt.conn_attampt_max">0</stringProp>
          <stringProp name="mqtt.reconn_attampt_max">0</stringProp>
          <stringProp name="mqtt.conn_clean_session">false</stringProp>
        </net.xmeter.samplers.ConnectSampler>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="正则表达式提取器" enabled="false">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">gateway_type</stringProp>
            <stringProp name="RegexExtractor.regex">(.*)</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"></stringProp>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="false">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="1259833018">Successful</stringProp>
            </collectionProp>
            <stringProp name="Assertion.custom_message"></stringProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">16</intProp>
          </ResponseAssertion>
          <hashTree/>
          <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="JSR223 后置处理程序" enabled="false">
            <stringProp name="cacheKey">true</stringProp>
            <stringProp name="filename"></stringProp>
            <stringProp name="parameters"></stringProp>
            <stringProp name="script">// 从接口返回的值赋值给变量 i
def i = vars.get(&quot;gateway_type&quot;)

// 判断变量 i 是否为 1
if (i != &quot;Successful.&quot;) {
    // 如果 i 为 1，则给变量 b 赋值为 2
    vars.put(&quot;c&quot;, &quot;1&quot;)
} else {
    // 如果 i 不为 1，则给变量 b 赋值为 1
    vars.put(&quot;c&quot;, &quot;2&quot;)
}
</stringProp>
            <stringProp name="scriptLanguage">groovy</stringProp>
          </JSR223PostProcessor>
          <hashTree/>
        </hashTree>
        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">true</boolProp>
          <stringProp name="LoopController.loops">5000</stringProp>
        </LoopController>
        <hashTree>
          <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="网关内置测点上数smdc${gatewayId}" enabled="true">
            <stringProp name="mqtt.topic_name">test_topic</stringProp>
            <stringProp name="mqtt.qos_level">0</stringProp>
            <boolProp name="mqtt.add_timestamp">false</boolProp>
            <stringProp name="mqtt.message_type">String</stringProp>
            <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
            <stringProp name="mqtt.message_to_sent">{
  &quot;seq&quot;: 1,
  &quot;ts&quot;: ${__time(,)},
  &quot;reporter&quot;: &quot;smdc${gatewayId}&quot;,
  &quot;type&quot;: &quot;DataReport&quot;,
  &quot;data&quot;: {
    &quot;dataType&quot;: &quot;ReportData&quot;,
    &quot;models&quot;: [
      {
        &quot;id&quot;: &quot;smdc${gatewayId}&quot;,
        &quot;ps&quot;: {
          &quot;${__time(,)}&quot;: {
          	&quot;sie_GatewayAvailMemory&quot;:10.0,
            &quot;qs&quot;:{
            	
            	}
          }
        }
      }
    ]
  }
}</stringProp>
            <boolProp name="mqtt.retained_message">false</boolProp>
          </net.xmeter.samplers.PubSampler>
          <hashTree>
            <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="正则表达式提取器" enabled="false">
              <stringProp name="RegexExtractor.useHeaders">false</stringProp>
              <stringProp name="RegexExtractor.refname">device_status</stringProp>
              <stringProp name="RegexExtractor.regex">(.*)</stringProp>
              <stringProp name="RegexExtractor.template">$1$</stringProp>
              <stringProp name="RegexExtractor.default">null</stringProp>
              <stringProp name="RegexExtractor.match_number">1</stringProp>
            </RegexExtractor>
            <hashTree/>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="false">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="-145173888">Publish successfuly.</stringProp>
              </collectionProp>
              <stringProp name="Assertion.custom_message"></stringProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">16</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
          <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
            <boolProp name="LoopController.continue_forever">true</boolProp>
            <stringProp name="LoopController.loops">1000</stringProp>
          </LoopController>
          <hashTree>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="固定定时器" enabled="true">
              <stringProp name="ConstantTimer.delay">500</stringProp>
            </ConstantTimer>
            <hashTree/>
            <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
              <boolProp name="LoopController.continue_forever">true</boolProp>
              <stringProp name="LoopController.loops">10</stringProp>
            </LoopController>
            <hashTree>
              <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="设备ID" enabled="true">
                <stringProp name="CounterConfig.start">1</stringProp>
                <stringProp name="CounterConfig.end">10</stringProp>
                <stringProp name="CounterConfig.incr">1</stringProp>
                <stringProp name="CounterConfig.name">deviceId</stringProp>
                <stringProp name="CounterConfig.format"></stringProp>
                <boolProp name="CounterConfig.per_user">true</boolProp>
                <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
              </CounterConfig>
              <hashTree/>
              <net.xmeter.samplers.PubSampler guiclass="net.xmeter.gui.PubSamplerUI" testclass="net.xmeter.samplers.PubSampler" testname="设备上数smdc${gatewayId}xn${deviceId}" enabled="true">
                <stringProp name="mqtt.topic_name">test_topic</stringProp>
                <stringProp name="mqtt.qos_level">0</stringProp>
                <boolProp name="mqtt.add_timestamp">false</boolProp>
                <stringProp name="mqtt.message_type">String</stringProp>
                <stringProp name="mqtt.message_type_fixed_length">1024</stringProp>
                <stringProp name="mqtt.message_to_sent">{
  &quot;seq&quot;: 1,
  &quot;ts&quot;: ${__time(,)},
  &quot;reporter&quot;: &quot;smdc${gatewayId}&quot;,
  &quot;type&quot;: &quot;DataReport&quot;,
  &quot;data&quot;: {
    &quot;dataType&quot;: &quot;ReportData&quot;,
    &quot;models&quot;: [
      {
        &quot;id&quot;: &quot;smdc${gatewayId}xn${deviceId}&quot;,
        &quot;ps&quot;: {
          &quot;${__time(,)}&quot;: {
          	&quot;jmeter1&quot;:${__Random(1,1000,)},
              &quot;jmeter2&quot;:${__Random(1,1000,)},
              &quot;jmeter3&quot;:${__Random(1,1000,)},
              &quot;jmeter4&quot;:${__Random(1,1000,)},
              &quot;jmeter5&quot;:${__Random(1,1000,)},
              &quot;jmeter6&quot;:${__Random(1,1000,)},
              &quot;jmeter7&quot;:${__Random(1,1000,)},
              &quot;jmeter8&quot;:${__Random(1,1000,)},
              &quot;jmeter9&quot;:${__Random(1,1000,)},
              &quot;jmeter10&quot;:${__Random(1,1000,)},
              &quot;jmeter11&quot;:${__Random(1,1000,)},
              &quot;jmeter12&quot;:${__Random(1,1000,)},
              &quot;jmeter13&quot;:${__Random(1,1000,)},
              &quot;jmeter14&quot;:${__Random(1,1000,)},
              &quot;jmeter15&quot;:${__Random(1,1000,)},
              &quot;jmeter16&quot;:${__Random(1,1000,)},
              &quot;jmeter17&quot;:${__Random(1,1000,)},
              &quot;jmeter18&quot;:${__Random(1,1000,)},
              &quot;jmeter19&quot;:${__Random(1,1000,)},
              &quot;jmeter20&quot;:${__Random(1,1000,)},
              &quot;jmeter21&quot;:${__Random(1,1000,)},
              &quot;jmeter22&quot;:${__Random(1,1000,)},
              &quot;jmeter23&quot;:${__Random(1,1000,)},
              &quot;jmeter24&quot;:${__Random(1,1000,)},
              &quot;jmeter25&quot;:${__Random(1,1000,)},
              &quot;jmeter26&quot;:${__Random(1,1000,)},
              &quot;jmeter27&quot;:${__Random(1,1000,)},
              &quot;jmeter28&quot;:${__Random(1,1000,)},
              &quot;jmeter29&quot;:${__Random(1,1000,)},
              &quot;jmeter30&quot;:${__Random(1,1000,)},
              &quot;jmeter31&quot;:${__Random(1,1000,)},
              &quot;jmeter32&quot;:${__Random(1,1000,)},
              &quot;jmeter33&quot;:${__Random(1,1000,)},
              &quot;jmeter34&quot;:${__Random(1,1000,)},
              &quot;jmeter35&quot;:${__Random(1,1000,)},
              &quot;jmeter36&quot;:${__Random(1,1000,)},
              &quot;jmeter37&quot;:${__Random(1,1000,)},
              &quot;jmeter38&quot;:${__Random(1,1000,)},
              &quot;jmeter39&quot;:${__Random(1,1000,)},
              &quot;jmeter40&quot;:${__Random(1,1000,)},
              &quot;jmeter41&quot;:${__Random(1,1000,)},
              &quot;jmeter42&quot;:${__Random(1,1000,)},
              &quot;jmeter43&quot;:${__Random(1,1000,)},
              &quot;jmeter44&quot;:${__Random(1,1000,)},
              &quot;jmeter45&quot;:${__Random(1,1000,)},
              &quot;jmeter46&quot;:${__Random(1,1000,)},
              &quot;jmeter47&quot;:${__Random(1,1000,)},
              &quot;jmeter48&quot;:${__Random(1,1000,)},
              &quot;jmeter49&quot;:${__Random(1,1000,)},
              &quot;jmeter50&quot;:${__Random(1,1000,)},
              &quot;jmeter51&quot;:${__Random(1,1000,)},
              &quot;jmeter52&quot;:${__Random(1,1000,)},
              &quot;jmeter53&quot;:${__Random(1,1000,)},
              &quot;jmeter54&quot;:${__Random(1,1000,)},
              &quot;jmeter55&quot;:${__Random(1,1000,)},
              &quot;jmeter56&quot;:${__Random(1,1000,)},
              &quot;jmeter57&quot;:${__Random(1,1000,)},
              &quot;jmeter58&quot;:${__Random(1,1000,)},
              &quot;jmeter59&quot;:${__Random(1,1000,)},
              &quot;jmeter60&quot;:${__Random(1,1000,)},
              &quot;jmeter61&quot;:${__Random(1,1000,)},
              &quot;jmeter62&quot;:${__Random(1,1000,)},
              &quot;jmeter63&quot;:${__Random(1,1000,)},
              &quot;jmeter64&quot;:${__Random(1,1000,)},
              &quot;jmeter65&quot;:${__Random(1,1000,)},
              &quot;jmeter66&quot;:${__Random(1,1000,)},
              &quot;jmeter67&quot;:${__Random(1,1000,)},
              &quot;jmeter68&quot;:${__Random(1,1000,)},
              &quot;jmeter69&quot;:${__Random(1,1000,)},
              &quot;jmeter70&quot;:${__Random(1,1000,)},
              &quot;jmeter71&quot;:${__Random(1,1000,)},
              &quot;jmeter72&quot;:${__Random(1,1000,)},
              &quot;jmeter73&quot;:${__Random(1,1000,)},
              &quot;jmeter74&quot;:${__Random(1,1000,)},
              &quot;jmeter75&quot;:${__Random(1,1000,)},
              &quot;jmeter76&quot;:${__Random(1,1000,)},
              &quot;jmeter77&quot;:${__Random(1,1000,)},
              &quot;jmeter78&quot;:${__Random(1,1000,)},
              &quot;jmeter79&quot;:${__Random(1,1000,)},
              &quot;jmeter80&quot;:${__Random(1,1000,)},
              &quot;jmeter81&quot;:${__Random(1,1000,)},
              &quot;jmeter82&quot;:${__Random(1,1000,)},
              &quot;jmeter83&quot;:${__Random(1,1000,)},
              &quot;jmeter84&quot;:${__Random(1,1000,)},
              &quot;jmeter85&quot;:${__Random(1,1000,)},
              &quot;jmeter86&quot;:${__Random(1,1000,)},
              &quot;jmeter87&quot;:${__Random(1,1000,)},
              &quot;jmeter88&quot;:${__Random(1,1000,)},
              &quot;jmeter89&quot;:${__Random(1,1000,)},
              &quot;jmeter90&quot;:${__Random(1,1000,)},
              &quot;jmeter91&quot;:${__Random(1,1000,)},
              &quot;jmeter92&quot;:${__Random(1,1000,)},
              &quot;jmeter93&quot;:${__Random(1,1000,)},
              &quot;jmeter94&quot;:${__Random(1,1000,)},
              &quot;jmeter95&quot;:${__Random(1,1000,)},
              &quot;jmeter96&quot;:${__Random(1,1000,)},
              &quot;jmeter97&quot;:${__Random(1,1000,)},
              &quot;jmeter98&quot;:${__Random(1,1000,)},
              &quot;jmeter99&quot;:${__Random(1,1000,)},
              &quot;jmeter100&quot;:${__Random(1,1000,)},
              &quot;jmeter101&quot;:${__Random(1,1000,)},
              &quot;jmeter102&quot;:${__Random(1,1000,)},
              &quot;jmeter103&quot;:${__Random(1,1000,)},
              &quot;jmeter104&quot;:${__Random(1,1000,)},
              &quot;jmeter105&quot;:${__Random(1,1000,)},
              &quot;jmeter106&quot;:${__Random(1,1000,)},
              &quot;jmeter107&quot;:${__Random(1,1000,)},
              &quot;jmeter108&quot;:${__Random(1,1000,)},
              &quot;jmeter109&quot;:${__Random(1,1000,)},
              &quot;jmeter110&quot;:${__Random(1,1000,)},
              &quot;jmeter111&quot;:${__Random(1,1000,)},
              &quot;jmeter112&quot;:${__Random(1,1000,)},
              &quot;jmeter113&quot;:${__Random(1,1000,)},
              &quot;jmeter114&quot;:${__Random(1,1000,)},
              &quot;jmeter115&quot;:${__Random(1,1000,)},
              &quot;jmeter116&quot;:${__Random(1,1000,)},
              &quot;jmeter117&quot;:${__Random(1,1000,)},
              &quot;jmeter118&quot;:${__Random(1,1000,)},
              &quot;jmeter119&quot;:${__Random(1,1000,)},
              &quot;jmeter120&quot;:${__Random(1,1000,)},
              &quot;jmeter121&quot;:${__Random(1,1000,)},
              &quot;jmeter122&quot;:${__Random(1,1000,)},
              &quot;jmeter123&quot;:${__Random(1,1000,)},
              &quot;jmeter124&quot;:${__Random(1,1000,)},
              &quot;jmeter125&quot;:${__Random(1,1000,)},
              &quot;jmeter126&quot;:${__Random(1,1000,)},
              &quot;jmeter127&quot;:${__Random(1,1000,)},
              &quot;jmeter128&quot;:${__Random(1,1000,)},
              &quot;jmeter129&quot;:${__Random(1,1000,)},
              &quot;jmeter130&quot;:${__Random(1,1000,)},
              &quot;jmeter131&quot;:${__Random(1,1000,)},
              &quot;jmeter132&quot;:${__Random(1,1000,)},
              &quot;jmeter133&quot;:${__Random(1,1000,)},
              &quot;jmeter134&quot;:${__Random(1,1000,)},
              &quot;jmeter135&quot;:${__Random(1,1000,)},
              &quot;jmeter136&quot;:${__Random(1,1000,)},
              &quot;jmeter137&quot;:${__Random(1,1000,)},
              &quot;jmeter138&quot;:${__Random(1,1000,)},
              &quot;jmeter139&quot;:${__Random(1,1000,)},
              &quot;jmeter140&quot;:${__Random(1,1000,)},
              &quot;jmeter141&quot;:${__Random(1,1000,)},
              &quot;jmeter142&quot;:${__Random(1,1000,)},
              &quot;jmeter143&quot;:${__Random(1,1000,)},
              &quot;jmeter144&quot;:${__Random(1,1000,)},
              &quot;jmeter145&quot;:${__Random(1,1000,)},
              &quot;jmeter146&quot;:${__Random(1,1000,)},
              &quot;jmeter147&quot;:${__Random(1,1000,)},
              &quot;jmeter148&quot;:${__Random(1,1000,)},
              &quot;jmeter149&quot;:${__Random(1,1000,)},
              &quot;jmeter150&quot;:${__Random(1,1000,)},
              &quot;jmeter151&quot;:${__Random(1,1000,)},
              &quot;jmeter152&quot;:${__Random(1,1000,)},
              &quot;jmeter153&quot;:${__Random(1,1000,)},
              &quot;jmeter154&quot;:${__Random(1,1000,)},
              &quot;jmeter155&quot;:${__Random(1,1000,)},
              &quot;jmeter156&quot;:${__Random(1,1000,)},
              &quot;jmeter157&quot;:${__Random(1,1000,)},
              &quot;jmeter158&quot;:${__Random(1,1000,)},
              &quot;jmeter159&quot;:${__Random(1,1000,)},
              &quot;jmeter160&quot;:${__Random(1,1000,)},
              &quot;jmeter161&quot;:${__Random(1,1000,)},
              &quot;jmeter162&quot;:${__Random(1,1000,)},
              &quot;jmeter163&quot;:${__Random(1,1000,)},
              &quot;jmeter164&quot;:${__Random(1,1000,)},
              &quot;jmeter165&quot;:${__Random(1,1000,)},
              &quot;jmeter166&quot;:${__Random(1,1000,)},
              &quot;jmeter167&quot;:${__Random(1,1000,)},
              &quot;jmeter168&quot;:${__Random(1,1000,)},
              &quot;jmeter169&quot;:${__Random(1,1000,)},
              &quot;jmeter170&quot;:${__Random(1,1000,)},
              &quot;jmeter171&quot;:${__Random(1,1000,)},
              &quot;jmeter172&quot;:${__Random(1,1000,)},
              &quot;jmeter173&quot;:${__Random(1,1000,)},
              &quot;jmeter174&quot;:${__Random(1,1000,)},
              &quot;jmeter175&quot;:${__Random(1,1000,)},
              &quot;jmeter176&quot;:${__Random(1,1000,)},
              &quot;jmeter177&quot;:${__Random(1,1000,)},
              &quot;jmeter178&quot;:${__Random(1,1000,)},
              &quot;jmeter179&quot;:${__Random(1,1000,)},
              &quot;jmeter180&quot;:${__Random(1,1000,)},
              &quot;jmeter181&quot;:${__Random(1,1000,)},
              &quot;jmeter182&quot;:${__Random(1,1000,)},
              &quot;jmeter183&quot;:${__Random(1,1000,)},
              &quot;jmeter184&quot;:${__Random(1,1000,)},
              &quot;jmeter185&quot;:${__Random(1,1000,)},
              &quot;jmeter186&quot;:${__Random(1,1000,)},
              &quot;jmeter187&quot;:${__Random(1,1000,)},
              &quot;jmeter188&quot;:${__Random(1,1000,)},
              &quot;jmeter189&quot;:${__Random(1,1000,)},
              &quot;jmeter190&quot;:${__Random(1,1000,)},
              &quot;jmeter191&quot;:${__Random(1,1000,)},
              &quot;jmeter192&quot;:${__Random(1,1000,)},
              &quot;jmeter193&quot;:${__Random(1,1000,)},
              &quot;jmeter194&quot;:${__Random(1,1000,)},
              &quot;jmeter195&quot;:${__Random(1,1000,)},
              &quot;jmeter196&quot;:${__Random(1,1000,)},
              &quot;jmeter197&quot;:${__Random(1,1000,)},
              &quot;jmeter198&quot;:${__Random(1,1000,)},
              &quot;jmeter199&quot;:${__Random(1,1000,)},
              &quot;jmeter200&quot;:${__Random(1,1000,)},
            &quot;qs&quot;:{
            	
            	}
          }
        }
      }
    ]
  }
}</stringProp>
                <boolProp name="mqtt.retained_message">false</boolProp>
              </net.xmeter.samplers.PubSampler>
              <hashTree>
                <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="正则表达式提取器" enabled="false">
                  <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                  <stringProp name="RegexExtractor.refname">device_status</stringProp>
                  <stringProp name="RegexExtractor.regex">(.*)</stringProp>
                  <stringProp name="RegexExtractor.template">$1$</stringProp>
                  <stringProp name="RegexExtractor.default">null</stringProp>
                  <stringProp name="RegexExtractor.match_number">1</stringProp>
                </RegexExtractor>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="false">
                  <collectionProp name="Asserion.test_strings">
                    <stringProp name="-145173888">Publish successfuly.</stringProp>
                  </collectionProp>
                  <stringProp name="Assertion.custom_message"></stringProp>
                  <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                  <boolProp name="Assertion.assume_success">false</boolProp>
                  <intProp name="Assertion.test_type">16</intProp>
                </ResponseAssertion>
                <hashTree/>
              </hashTree>
            </hashTree>
          </hashTree>
        </hashTree>
        <net.xmeter.samplers.DisConnectSampler guiclass="net.xmeter.gui.DisConnectSamplerUI" testclass="net.xmeter.samplers.DisConnectSampler" testname="网关下线${gatewayId}" enabled="true"/>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
</jmeterTestPlan>
