JMS двухточечное нагрузочное тестирование Jmeter - NoInitialContextException - PullRequest
0 голосов
/ 15 ноября 2018

Я пытался протестировать JMS с использованием Jmeter и пытался запустить его локально, но постоянно получаю сообщение об ошибке: Ответное сообщение: javax.naming.NoInitialContextException: Невозможно создать экземпляр класса: org.apache.activemq.jndi.ActiveMQInitialContextFactory [Исключением корня является java.lang.ClassNotFoundException: org.apache.activemq.jndi.ActiveMact1

Я уже добавил файл activemq-all.jar в папку lib jmeter, который должен был решить проблему, но она остается.

Пожалуйста, помогите мне понять, если я что-то упустил. Спасибо.

Ниже приведено содержимое моего файла jmx для плана тестирования:

<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.0 r1840935">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="JMS P2P Load Test" enabled="true">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
    </TestPlan>
    <hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="JMSTestPlan-P2P" enabled="true">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">2</stringProp>
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">1</stringProp>
        <stringProp name="ThreadGroup.ramp_time">0</stringProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
        <JMSSampler guiclass="JMSSamplerGui" testclass="JMSSampler" testname="JMS Point-to-Point" enabled="true">
          <stringProp name="JMSSampler.queueconnectionfactory">ConnectionFactory</stringProp>
          <stringProp name="JMSSampler.SendQueue">Q.REQ</stringProp>
          <stringProp name="JMSSampler.ReceiveQueue">Q.REQ</stringProp>
          <intProp name="JMSSampler.communicationStyle">0</intProp>
          <boolProp name="JMSSampler.isNonPersistent">false</boolProp>
          <boolProp name="JMSSampler.useReqMsgIdAsCorrelId">true</boolProp>
          <stringProp name="JMSSampler.timeout">2000</stringProp>
          <stringProp name="JMSSampler.jmsNumberOfSamplesToAggregate"></stringProp>
          <stringProp name="HTTPSamper.xml_data">Testing point to point</stringProp>
          <stringProp name="JMSSampler.initialContextFactory">org.apache.activemq.jndi.ActiveMQInitialContextFactory</stringProp>
          <stringProp name="JMSSampler.contextProviderUrl">tcp://localhost:61616</stringProp>
          <elementProp name="JMSSampler.jndiProperties" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="queue.Q.REQ" elementType="Argument">
                <stringProp name="Argument.name">queue.Q.REQ</stringProp>
                <stringProp name="Argument.value">example.A</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <elementProp name="arguments" elementType="JMSProperties">
            <collectionProp name="JMSProperties.properties"/>
          </elementProp>
          <boolProp name="JMSSampler.useResMsgIdAsCorrelId">true</boolProp>
        </JMSSampler>
        <hashTree/>
        <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
          <boolProp name="ResultCollector.error_logging">false</boolProp>
          <objProp>
            <name>saveConfig</name>
            <value class="SampleSaveConfiguration">
              <time>true</time>
              <latency>true</latency>
              <timestamp>true</timestamp>
              <success>true</success>
              <label>true</label>
              <code>true</code>
              <message>true</message>
              <threadName>true</threadName>
              <dataType>true</dataType>
              <encoding>false</encoding>
              <assertions>true</assertions>
              <subresults>true</subresults>
              <responseData>false</responseData>
              <samplerData>false</samplerData>
              <xml>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>
    </hashTree>
  </hashTree>
</jmeterTestPlan>

1 Ответ

0 голосов
/ 15 ноября 2018

Ваш план тестирования выглядит хорошо, скорее всего, вы забыли один маленький шаг: вам нужно перезапустить JMeter, чтобы выбрать новые .jars из его classpath

Если вы хотите быстро протестировать файл .jar без перезапуска JMeter, вы можете добавить План тестирования уровень

enter image description here

Возможно, вас также заинтересует Создание плана тестирования JMS - руководство по Apache JMeter , которое охватывает Официальную документацию JMeter по тестированию JMS пробелы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...