flood-io/ruby-jmeter

View on GitHub
lib/ruby-jmeter/plugins/jmx_collector.rb

Summary

Maintainability
A
0 mins
Test Coverage
module RubyJmeter
  module Plugins
    class JMXCollector
      attr_accessor :doc
      include Helper
      def initialize(params={})

        params[:name] ||= 'JMX Collector'
        params[:jtl] ||= ''
        params[:attribute_key] ||= ''

        @doc = Nokogiri::XML(<<-XML.strip_heredoc)
        <kg.apc.jmeter.jmxmon.JMXMonCollector guiclass="kg.apc.jmeter.vizualizers.JMXMonGui" testclass="kg.apc.jmeter.jmxmon.JMXMonCollector" testname="#{params[:name]}" 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>
              <threadCounts>true</threadCounts>
              <idleTime>true</idleTime>
            </value>
          </objProp>
          <stringProp name="filename">#{params[:jtl]}</stringProp>
          <longProp name="interval_grouping">1000</longProp
          <boolProp name="graph_aggregated">false</boolProp>
          <stringProp name="include_sample_labels"></stringProp>
          <stringProp name="exclude_sample_labels"></stringProp>
          <stringProp name="start_offset"></stringProp>
          <stringProp name="end_offset"></stringProp>
          <boolProp name="include_checkbox_state">false</boolProp>
          <boolProp name="exclude_checkbox_state">false</boolProp>
          <collectionProp name="samplers">
            <collectionProp name="311458936">
              <stringProp name="label"></stringProp>
              <stringProp name="service_endpoint">service:jmx:rmi:///jndi/rmi://#{params[:host]}:#{params[:port]}/jmxrmi</stringProp>
              <stringProp name="username"></stringProp>
              <stringProp name="password"></stringProp>
              <stringProp name="object_name">#{params[:object_name]}</stringProp>
              <stringProp name="attribute_name">#{params[:attribute_name]}</stringProp>
              <stringProp name="attribute_key">#{params[:attribute_key]}</stringProp>
              <stringProp name="delta">false</stringProp>
              <stringProp name="retry">true</stringProp>
            </collectionProp>
          </collectionProp>
        </kg.apc.jmeter.jmxmon.JMXMonCollector>
        XML
      end
    end
  end
end