flood-io/ruby-jmeter

View on GitHub
lib/ruby-jmeter/extend/threads/thread_group.rb

Summary

Maintainability
A
2 hrs
Test Coverage
module RubyJmeter
  class ExtendedDSL < DSL
    def thread_group(*args, &block)
      params = args.shift || {}
      params = { count: params }.merge(args.shift || {}) if params.class == Fixnum
      params[:num_threads] = params[:count] || 1
      params[:ramp_time] = params[:rampup] || (params[:num_threads]/2.0).ceil
      params[:start_time] = params[:start_time] || Time.now.to_i * 1000
      params[:end_time] = params[:end_time] || Time.now.to_i * 1000
      params[:duration] ||= 60
      params[:continue_forever] ||= false
      params[:loops] = -1 if params[:continue_forever]
      node = RubyJmeter::ThreadGroup.new(params)
      attach_node(node, &block)
    end

    alias threads thread_group
  end
end