class RubyJmeter::Plugins::ThroughputShapingTimer

Attributes

doc[RW]

Public Class Methods

new(params={}) click to toggle source
# File lib/ruby-jmeter/plugins/variable_throughput_timer.rb, line 6
      def initialize(params={})
        testname = params.kind_of?(Array) ? 'ThroughputShapingTimer' : (params[:name] || 'ThroughputShapingTimer')
        @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
          <kg.apc.jmeter.timers.VariableThroughputTimer guiclass="kg.apc.jmeter.timers.VariableThroughputTimerGui" testclass="kg.apc.jmeter.timers.VariableThroughputTimer" testname="#{testname}" enabled="true">
            <collectionProp name="load_profile"/>
          </kg.apc.jmeter.timers.VariableThroughputTimer>
        EOF
        (params.kind_of?(Array) ? params : params[:steps]).each_with_index do |step, index|
          @doc.at_xpath('//collectionProp') <<
            Nokogiri::XML(<<-EOF.strip_heredoc).children
              <collectionProp name="step_#{index}">
                <stringProp name="start_rps_#{index}">#{step[:start_rps]}</stringProp>
                <stringProp name="end_rps_#{index}">#{step[:end_rps]}</stringProp>
                <stringProp name="duration_sec_#{index}">#{step[:duration]}</stringProp>
              </collectionProp>
            EOF
        end
        update params
      end