gridinit-jmeter 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/examples/basic_gc_results.rb +20 -0
- data/examples/jbhifi_now_search.rb +98 -0
- data/lib/gridinit-jmeter/{response_assertion.rb → assertions/response_assertion.rb} +3 -6
- data/lib/gridinit-jmeter/{auth_manager.rb → config/auth_manager.rb} +3 -5
- data/lib/gridinit-jmeter/{cache_manager.rb → config/cache_manager.rb} +3 -5
- data/lib/gridinit-jmeter/{cookie_manager.rb → config/cookie_manager.rb} +3 -5
- data/lib/gridinit-jmeter/config/counter_config.rb +24 -0
- data/lib/gridinit-jmeter/{header_manager.rb → config/header_manager.rb} +2 -1
- data/lib/gridinit-jmeter/{request_defaults.rb → config/request_defaults.rb} +3 -5
- data/lib/gridinit-jmeter/{user_defined_variable.rb → config/user_defined_variable.rb} +2 -4
- data/lib/gridinit-jmeter/{if_controller.rb → controllers/if_controller.rb} +3 -5
- data/lib/gridinit-jmeter/controllers/loop_controller.rb +19 -0
- data/lib/gridinit-jmeter/{once_only.rb → controllers/once_only.rb} +3 -5
- data/lib/gridinit-jmeter/{transaction.rb → controllers/transaction.rb} +3 -5
- data/lib/gridinit-jmeter/dsl.rb +66 -1
- data/lib/gridinit-jmeter/helpers/dsl_helper.rb +12 -0
- data/lib/gridinit-jmeter/{fallback_content_proxy.rb → helpers/fallback_content_proxy.rb} +0 -0
- data/lib/gridinit-jmeter/{logger-colors.rb → helpers/logger-colors.rb} +0 -0
- data/lib/gridinit-jmeter/{strip-heredoc.rb → helpers/strip-heredoc.rb} +0 -0
- data/lib/gridinit-jmeter/listeners/gc_latencies_over_time.rb +50 -0
- data/lib/gridinit-jmeter/listeners/gc_response_codes_per_second.rb +50 -0
- data/lib/gridinit-jmeter/listeners/gc_response_times_distribution.rb +50 -0
- data/lib/gridinit-jmeter/listeners/gc_response_times_over_time.rb +50 -0
- data/lib/gridinit-jmeter/listeners/gc_response_times_percentiles.rb +50 -0
- data/lib/gridinit-jmeter/listeners/gc_transactions_per_second.rb +51 -0
- data/lib/gridinit-jmeter/{graph_visualizer.rb → listeners/graph_visualizer.rb} +2 -7
- data/lib/gridinit-jmeter/{response_time_graph_visualizer.rb → listeners/response_time_graph_visualizer.rb} +2 -7
- data/lib/gridinit-jmeter/{stat_visualizer.rb → listeners/stat_visualizer.rb} +2 -7
- data/lib/gridinit-jmeter/{summary_report.rb → listeners/summary_report.rb} +2 -7
- data/lib/gridinit-jmeter/{table_visualizer.rb → listeners/table_visualizer.rb} +2 -7
- data/lib/gridinit-jmeter/{view_results_full_visualizer.rb → listeners/view_results_full_visualizer.rb} +2 -7
- data/lib/gridinit-jmeter/{regex_extractor.rb → post_processors/regex_extractor.rb} +3 -5
- data/lib/gridinit-jmeter/{xpath_extractor.rb → post_processors/xpath_extractor.rb} +2 -4
- data/lib/gridinit-jmeter/pre_processors/bean_shell_pre_processor.rb +21 -0
- data/lib/gridinit-jmeter/{http_sampler.rb → samplers/http_sampler.rb} +2 -4
- data/lib/gridinit-jmeter/{ldap_ext_sampler.rb → samplers/ldap_ext_sampler.rb} +2 -6
- data/lib/gridinit-jmeter/{test_plan.rb → test_plan/test_plan.rb} +2 -1
- data/lib/gridinit-jmeter/{thread_group.rb → threads/thread_group.rb} +3 -5
- data/lib/gridinit-jmeter/{gaussian_random_timer.rb → timers/gaussian_random_timer.rb} +2 -1
- data/lib/gridinit-jmeter/version.rb +1 -1
- data/lib/gridinit-jmeter.rb +98 -26
- metadata +40 -28
| @@ -0,0 +1,50 @@ | |
| 1 | 
            +
            module Gridinit
         | 
| 2 | 
            +
              module Jmeter
         | 
| 3 | 
            +
             | 
| 4 | 
            +
                class GCResponseTimesOverTime
         | 
| 5 | 
            +
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 7 | 
            +
                  def initialize(name, params={})
         | 
| 8 | 
            +
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 9 | 
            +
                      <kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="true">
         | 
| 10 | 
            +
                        <boolProp name="ResultCollector.error_logging">false</boolProp>
         | 
| 11 | 
            +
                        <objProp>
         | 
| 12 | 
            +
                          <name>saveConfig</name>
         | 
| 13 | 
            +
                          <value class="SampleSaveConfiguration">
         | 
| 14 | 
            +
                            <time>true</time>
         | 
| 15 | 
            +
                            <latency>true</latency>
         | 
| 16 | 
            +
                            <timestamp>true</timestamp>
         | 
| 17 | 
            +
                            <success>true</success>
         | 
| 18 | 
            +
                            <label>true</label>
         | 
| 19 | 
            +
                            <code>true</code>
         | 
| 20 | 
            +
                            <message>true</message>
         | 
| 21 | 
            +
                            <threadName>true</threadName>
         | 
| 22 | 
            +
                            <dataType>true</dataType>
         | 
| 23 | 
            +
                            <encoding>false</encoding>
         | 
| 24 | 
            +
                            <assertions>true</assertions>
         | 
| 25 | 
            +
                            <subresults>true</subresults>
         | 
| 26 | 
            +
                            <responseData>false</responseData>
         | 
| 27 | 
            +
                            <samplerData>false</samplerData>
         | 
| 28 | 
            +
                            <xml>true</xml>
         | 
| 29 | 
            +
                            <fieldNames>false</fieldNames>
         | 
| 30 | 
            +
                            <responseHeaders>false</responseHeaders>
         | 
| 31 | 
            +
                            <requestHeaders>false</requestHeaders>
         | 
| 32 | 
            +
                            <responseDataOnError>false</responseDataOnError>
         | 
| 33 | 
            +
                            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
         | 
| 34 | 
            +
                            <assertionsResultsToSave>0</assertionsResultsToSave>
         | 
| 35 | 
            +
                            <bytes>true</bytes>
         | 
| 36 | 
            +
                          </value>
         | 
| 37 | 
            +
                        </objProp>
         | 
| 38 | 
            +
                        <stringProp name="filename"></stringProp>
         | 
| 39 | 
            +
                        <longProp name="interval_grouping">500</longProp>
         | 
| 40 | 
            +
                        <boolProp name="graph_aggregated">false</boolProp>
         | 
| 41 | 
            +
                        <stringProp name="include_sample_labels"></stringProp>
         | 
| 42 | 
            +
                        <stringProp name="exclude_sample_labels"></stringProp>
         | 
| 43 | 
            +
                      </kg.apc.jmeter.vizualizers.CorrectedResultCollector>
         | 
| 44 | 
            +
                    EOF
         | 
| 45 | 
            +
                    update params
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
                end  
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
            end
         | 
| @@ -0,0 +1,50 @@ | |
| 1 | 
            +
            module Gridinit
         | 
| 2 | 
            +
              module Jmeter
         | 
| 3 | 
            +
             | 
| 4 | 
            +
                class GCResponseTimesPercentiles
         | 
| 5 | 
            +
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 7 | 
            +
                  def initialize(name, params={})
         | 
| 8 | 
            +
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 9 | 
            +
                      <kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesPercentilesGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="true">
         | 
| 10 | 
            +
                        <boolProp name="ResultCollector.error_logging">false</boolProp>
         | 
| 11 | 
            +
                        <objProp>
         | 
| 12 | 
            +
                          <name>saveConfig</name>
         | 
| 13 | 
            +
                          <value class="SampleSaveConfiguration">
         | 
| 14 | 
            +
                            <time>true</time>
         | 
| 15 | 
            +
                            <latency>true</latency>
         | 
| 16 | 
            +
                            <timestamp>true</timestamp>
         | 
| 17 | 
            +
                            <success>true</success>
         | 
| 18 | 
            +
                            <label>true</label>
         | 
| 19 | 
            +
                            <code>true</code>
         | 
| 20 | 
            +
                            <message>true</message>
         | 
| 21 | 
            +
                            <threadName>true</threadName>
         | 
| 22 | 
            +
                            <dataType>true</dataType>
         | 
| 23 | 
            +
                            <encoding>false</encoding>
         | 
| 24 | 
            +
                            <assertions>true</assertions>
         | 
| 25 | 
            +
                            <subresults>true</subresults>
         | 
| 26 | 
            +
                            <responseData>false</responseData>
         | 
| 27 | 
            +
                            <samplerData>false</samplerData>
         | 
| 28 | 
            +
                            <xml>true</xml>
         | 
| 29 | 
            +
                            <fieldNames>false</fieldNames>
         | 
| 30 | 
            +
                            <responseHeaders>false</responseHeaders>
         | 
| 31 | 
            +
                            <requestHeaders>false</requestHeaders>
         | 
| 32 | 
            +
                            <responseDataOnError>false</responseDataOnError>
         | 
| 33 | 
            +
                            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
         | 
| 34 | 
            +
                            <assertionsResultsToSave>0</assertionsResultsToSave>
         | 
| 35 | 
            +
                            <bytes>true</bytes>
         | 
| 36 | 
            +
                          </value>
         | 
| 37 | 
            +
                        </objProp>
         | 
| 38 | 
            +
                        <stringProp name="filename"></stringProp>
         | 
| 39 | 
            +
                        <longProp name="interval_grouping">500</longProp>
         | 
| 40 | 
            +
                        <boolProp name="graph_aggregated">false</boolProp>
         | 
| 41 | 
            +
                        <stringProp name="include_sample_labels"></stringProp>
         | 
| 42 | 
            +
                        <stringProp name="exclude_sample_labels"></stringProp>
         | 
| 43 | 
            +
                      </kg.apc.jmeter.vizualizers.CorrectedResultCollector>
         | 
| 44 | 
            +
                    EOF
         | 
| 45 | 
            +
                    update params
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
                end  
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
            end
         | 
| @@ -0,0 +1,51 @@ | |
| 1 | 
            +
            module Gridinit
         | 
| 2 | 
            +
              module Jmeter
         | 
| 3 | 
            +
             | 
| 4 | 
            +
                class GCTransactionsPerSecond
         | 
| 5 | 
            +
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 7 | 
            +
                  def initialize(name, params={})
         | 
| 8 | 
            +
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 9 | 
            +
                      <kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.TransactionsPerSecondGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="true">
         | 
| 10 | 
            +
                        <boolProp name="ResultCollector.error_logging">false</boolProp>
         | 
| 11 | 
            +
                        <objProp>
         | 
| 12 | 
            +
                          <name>saveConfig</name>
         | 
| 13 | 
            +
                          <value class="SampleSaveConfiguration">
         | 
| 14 | 
            +
                            <time>true</time>
         | 
| 15 | 
            +
                            <latency>true</latency>
         | 
| 16 | 
            +
                            <timestamp>true</timestamp>
         | 
| 17 | 
            +
                            <success>true</success>
         | 
| 18 | 
            +
                            <label>true</label>
         | 
| 19 | 
            +
                            <code>true</code>
         | 
| 20 | 
            +
                            <message>true</message>
         | 
| 21 | 
            +
                            <threadName>true</threadName>
         | 
| 22 | 
            +
                            <dataType>true</dataType>
         | 
| 23 | 
            +
                            <encoding>false</encoding>
         | 
| 24 | 
            +
                            <assertions>true</assertions>
         | 
| 25 | 
            +
                            <subresults>true</subresults>
         | 
| 26 | 
            +
                            <responseData>false</responseData>
         | 
| 27 | 
            +
                            <samplerData>false</samplerData>
         | 
| 28 | 
            +
                            <xml>true</xml>
         | 
| 29 | 
            +
                            <fieldNames>false</fieldNames>
         | 
| 30 | 
            +
                            <responseHeaders>false</responseHeaders>
         | 
| 31 | 
            +
                            <requestHeaders>false</requestHeaders>
         | 
| 32 | 
            +
                            <responseDataOnError>false</responseDataOnError>
         | 
| 33 | 
            +
                            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
         | 
| 34 | 
            +
                            <assertionsResultsToSave>0</assertionsResultsToSave>
         | 
| 35 | 
            +
                            <bytes>true</bytes>
         | 
| 36 | 
            +
                          </value>
         | 
| 37 | 
            +
                        </objProp>
         | 
| 38 | 
            +
                        <stringProp name="filename"></stringProp>
         | 
| 39 | 
            +
                        <longProp name="interval_grouping">1000</longProp>
         | 
| 40 | 
            +
                        <boolProp name="graph_aggregated">false</boolProp>
         | 
| 41 | 
            +
                        <stringProp name="include_sample_labels"></stringProp>
         | 
| 42 | 
            +
                        <stringProp name="exclude_sample_labels"></stringProp>
         | 
| 43 | 
            +
                      </kg.apc.jmeter.vizualizers.CorrectedResultCollector>
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                    EOF
         | 
| 46 | 
            +
                    update params
         | 
| 47 | 
            +
                  end
         | 
| 48 | 
            +
                end  
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              end
         | 
| 51 | 
            +
            end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class GraphVisualizer
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="#{name}" enabled="true">
         | 
| @@ -38,14 +39,8 @@ module Gridinit | |
| 38 39 | 
             
                      </ResultCollector>
         | 
| 39 40 |  | 
| 40 41 | 
             
                    EOF
         | 
| 41 | 
            -
                    params | 
| 42 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 43 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 44 | 
            -
                    end
         | 
| 42 | 
            +
                    update params
         | 
| 45 43 | 
             
                  end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                  private
         | 
| 48 | 
            -
             | 
| 49 44 | 
             
                end  
         | 
| 50 45 |  | 
| 51 46 | 
             
              end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class ResponseTimeGraphVisualizer
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 |  | 
| @@ -39,14 +40,8 @@ module Gridinit | |
| 39 40 | 
             
                      </ResultCollector>
         | 
| 40 41 |  | 
| 41 42 | 
             
                    EOF
         | 
| 42 | 
            -
                    params | 
| 43 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 44 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 45 | 
            -
                    end
         | 
| 43 | 
            +
                    update params
         | 
| 46 44 | 
             
                  end
         | 
| 47 | 
            -
             | 
| 48 | 
            -
                  private
         | 
| 49 | 
            -
             | 
| 50 45 | 
             
                end  
         | 
| 51 46 |  | 
| 52 47 | 
             
              end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class StatVisualizer
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="#{name}" enabled="true">
         | 
| @@ -38,14 +39,8 @@ module Gridinit | |
| 38 39 | 
             
                      </ResultCollector>
         | 
| 39 40 |  | 
| 40 41 | 
             
                    EOF
         | 
| 41 | 
            -
                    params | 
| 42 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 43 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 44 | 
            -
                    end
         | 
| 42 | 
            +
                    update params
         | 
| 45 43 | 
             
                  end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                  private
         | 
| 48 | 
            -
             | 
| 49 44 | 
             
                end  
         | 
| 50 45 |  | 
| 51 46 | 
             
              end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class SummaryReport
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="#{name}" enabled="true">
         | 
| @@ -38,14 +39,8 @@ module Gridinit | |
| 38 39 | 
             
                      </ResultCollector>
         | 
| 39 40 |  | 
| 40 41 | 
             
                    EOF
         | 
| 41 | 
            -
                    params | 
| 42 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 43 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 44 | 
            -
                    end
         | 
| 42 | 
            +
                    update params
         | 
| 45 43 | 
             
                  end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                  private
         | 
| 48 | 
            -
             | 
| 49 44 | 
             
                end  
         | 
| 50 45 |  | 
| 51 46 | 
             
              end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class TableVisualizer
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="#{name}" enabled="true">
         | 
| @@ -37,14 +38,8 @@ module Gridinit | |
| 37 38 | 
             
                        <stringProp name="filename"></stringProp>
         | 
| 38 39 | 
             
                      </ResultCollector>
         | 
| 39 40 | 
             
                    EOF
         | 
| 40 | 
            -
                    params | 
| 41 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 42 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 43 | 
            -
                    end
         | 
| 41 | 
            +
                    update params
         | 
| 44 42 | 
             
                  end
         | 
| 45 | 
            -
             | 
| 46 | 
            -
                  private
         | 
| 47 | 
            -
             | 
| 48 43 | 
             
                end  
         | 
| 49 44 |  | 
| 50 45 | 
             
              end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class ViewResultsFullVisualizer
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="#{name}" enabled="true">
         | 
| @@ -37,14 +38,8 @@ module Gridinit | |
| 37 38 | 
             
                        <stringProp name="filename"></stringProp>
         | 
| 38 39 | 
             
                      </ResultCollector>
         | 
| 39 40 | 
             
                    EOF
         | 
| 40 | 
            -
                    params | 
| 41 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 42 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 43 | 
            -
                    end
         | 
| 41 | 
            +
                    update params
         | 
| 44 42 | 
             
                  end
         | 
| 45 | 
            -
             | 
| 46 | 
            -
                  private
         | 
| 47 | 
            -
             | 
| 48 43 | 
             
                end  
         | 
| 49 44 |  | 
| 50 45 | 
             
              end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class RegexExtractor
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, regex, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="#{name}" enabled="true">
         | 
| @@ -14,12 +15,9 @@ module Gridinit | |
| 14 15 | 
             
                        <stringProp name="RegexExtractor.match_number">0</stringProp>
         | 
| 15 16 | 
             
                      </RegexExtractor>
         | 
| 16 17 | 
             
                    EOF
         | 
| 17 | 
            -
                    params | 
| 18 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 19 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 20 | 
            -
                    end
         | 
| 18 | 
            +
                    update params
         | 
| 21 19 | 
             
                  end
         | 
| 22 20 | 
             
                end  
         | 
| 23 21 |  | 
| 24 22 | 
             
              end
         | 
| 25 | 
            -
            end
         | 
| 23 | 
            +
            end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class XpathExtractor
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, xpath, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="#{name}" enabled="true">
         | 
| @@ -14,10 +15,7 @@ module Gridinit | |
| 14 15 | 
             
                        <boolProp name="XPathExtractor.namespace">false</boolProp>
         | 
| 15 16 | 
             
                      </XPathExtractor>
         | 
| 16 17 | 
             
                    EOF
         | 
| 17 | 
            -
                    params | 
| 18 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 19 | 
            -
                      node.first.content = value unless node.empty?
         | 
| 20 | 
            -
                    end
         | 
| 18 | 
            +
                    update params
         | 
| 21 19 | 
             
                  end
         | 
| 22 20 | 
             
                end
         | 
| 23 21 |  | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            module Gridinit
         | 
| 2 | 
            +
              module Jmeter
         | 
| 3 | 
            +
             | 
| 4 | 
            +
                class BeanShellPreProcessor
         | 
| 5 | 
            +
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 7 | 
            +
                  def initialize(script, params={})
         | 
| 8 | 
            +
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 9 | 
            +
                      <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
         | 
| 10 | 
            +
                        <stringProp name="filename"></stringProp>
         | 
| 11 | 
            +
                        <stringProp name="parameters"></stringProp>
         | 
| 12 | 
            +
                        <boolProp name="resetInterpreter">false</boolProp>
         | 
| 13 | 
            +
                        <stringProp name="script">#{script}</stringProp>
         | 
| 14 | 
            +
                      </BeanShellPreProcessor>
         | 
| 15 | 
            +
                    EOF
         | 
| 16 | 
            +
                    update params
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
                end  
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
            end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class HttpSampler
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, url, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="#{name}" enabled="true">
         | 
| @@ -35,10 +36,7 @@ module Gridinit | |
| 35 36 | 
             
                      name,value = param.split('=')
         | 
| 36 37 | 
             
                      fill_in({ fill_in: { "#{name}" => value }, always_encode: params[:always_encode] }) 
         | 
| 37 38 | 
             
                    end
         | 
| 38 | 
            -
                    params | 
| 39 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 40 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 41 | 
            -
                    end
         | 
| 39 | 
            +
                    update params
         | 
| 42 40 | 
             
                  end
         | 
| 43 41 |  | 
| 44 42 | 
             
                  def parse_uri(url)
         | 
| @@ -3,9 +3,9 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class LDAPExtSampler
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(name, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 | 
            -
             | 
| 9 9 | 
             
                      <LDAPExtSampler guiclass="LdapExtTestSamplerGui" testclass="LDAPExtSampler" testname="#{name}" enabled="true">
         | 
| 10 10 | 
             
                        <stringProp name="servername"></stringProp>
         | 
| 11 11 | 
             
                        <stringProp name="port">389</stringProp>
         | 
| @@ -28,12 +28,8 @@ module Gridinit | |
| 28 28 | 
             
                        <stringProp name="test">bind</stringProp>
         | 
| 29 29 | 
             
                      </LDAPExtSampler>
         | 
| 30 30 | 
             
                    EOF
         | 
| 31 | 
            -
                    params | 
| 32 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 33 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 34 | 
            -
                    end
         | 
| 31 | 
            +
                    update params
         | 
| 35 32 | 
             
                  end
         | 
| 36 | 
            -
             | 
| 37 33 | 
             
                end  
         | 
| 38 34 |  | 
| 39 35 | 
             
              end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class TestPlan
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
         | 
| @@ -19,4 +20,4 @@ module Gridinit | |
| 19 20 | 
             
                end 
         | 
| 20 21 |  | 
| 21 22 | 
             
              end
         | 
| 22 | 
            -
            end
         | 
| 23 | 
            +
            end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class ThreadGroup
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(num_threads, params={})
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
         | 
| @@ -20,12 +21,9 @@ module Gridinit | |
| 20 21 | 
             
                        <stringProp name="ThreadGroup.delay"></stringProp>
         | 
| 21 22 | 
             
                      </ThreadGroup>
         | 
| 22 23 | 
             
                    EOF
         | 
| 23 | 
            -
                    params | 
| 24 | 
            -
                      node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
         | 
| 25 | 
            -
                      node.first.content = value unless node.empty? 
         | 
| 26 | 
            -
                    end
         | 
| 24 | 
            +
                    update params
         | 
| 27 25 | 
             
                  end
         | 
| 28 26 | 
             
                end  
         | 
| 29 27 |  | 
| 30 28 | 
             
              end
         | 
| 31 | 
            -
            end
         | 
| 29 | 
            +
            end
         | 
| @@ -3,6 +3,7 @@ module Gridinit | |
| 3 3 |  | 
| 4 4 | 
             
                class GaussianRandomTimer
         | 
| 5 5 | 
             
                  attr_accessor :doc
         | 
| 6 | 
            +
                  include Helper
         | 
| 6 7 | 
             
                  def initialize(delay, range)
         | 
| 7 8 | 
             
                    @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
         | 
| 8 9 | 
             
                      <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Think Time" enabled="true">
         | 
| @@ -14,4 +15,4 @@ module Gridinit | |
| 14 15 | 
             
                end 
         | 
| 15 16 |  | 
| 16 17 | 
             
              end
         | 
| 17 | 
            -
            end
         | 
| 18 | 
            +
            end
         | 
    
        data/lib/gridinit-jmeter.rb
    CHANGED
    
    | @@ -3,31 +3,103 @@ require 'rest_client' | |
| 3 3 | 
             
            require 'json'
         | 
| 4 4 | 
             
            require 'cgi'
         | 
| 5 5 |  | 
| 6 | 
            +
            # DSL
         | 
| 6 7 | 
             
            require 'gridinit-jmeter/dsl'
         | 
| 7 | 
            -
            require 'gridinit-jmeter/fallback_content_proxy'
         | 
| 8 | 
            -
            require 'gridinit-jmeter/logger-colors'
         | 
| 9 | 
            -
            require 'gridinit-jmeter/strip-heredoc'
         | 
| 10 8 | 
             
            require 'gridinit-jmeter/version'
         | 
| 11 | 
            -
            require 'gridinit-jmeter/ | 
| 12 | 
            -
            require 'gridinit-jmeter/ | 
| 13 | 
            -
            require 'gridinit-jmeter/ | 
| 14 | 
            -
            require 'gridinit-jmeter/ | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
            require 'gridinit-jmeter/ | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
            require 'gridinit-jmeter/ | 
| 21 | 
            -
            require 'gridinit-jmeter/ | 
| 22 | 
            -
            require 'gridinit-jmeter/ | 
| 23 | 
            -
            require 'gridinit-jmeter/ | 
| 24 | 
            -
            require 'gridinit-jmeter/ | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
            require 'gridinit-jmeter/ | 
| 28 | 
            -
            require 'gridinit-jmeter/ | 
| 29 | 
            -
            require 'gridinit-jmeter/ | 
| 30 | 
            -
            require 'gridinit-jmeter/ | 
| 31 | 
            -
            require 'gridinit-jmeter/ | 
| 32 | 
            -
            require 'gridinit-jmeter/ | 
| 33 | 
            -
            require 'gridinit-jmeter/ | 
| 9 | 
            +
            require 'gridinit-jmeter/helpers/fallback_content_proxy'
         | 
| 10 | 
            +
            require 'gridinit-jmeter/helpers/dsl_helper'
         | 
| 11 | 
            +
            require 'gridinit-jmeter/helpers/logger-colors'
         | 
| 12 | 
            +
            require 'gridinit-jmeter/helpers/strip-heredoc'
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            # TEST PLAN
         | 
| 15 | 
            +
              require 'gridinit-jmeter/test_plan/test_plan'
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            # THREADS
         | 
| 18 | 
            +
              require 'gridinit-jmeter/threads/thread_group'
         | 
| 19 | 
            +
            # require 'gridinit-jmeter/threads/gc_stepping_thread_group'
         | 
| 20 | 
            +
            # require 'gridinit-jmeter/threads/gc_ultimate_thread_group'
         | 
| 21 | 
            +
            # require 'gridinit-jmeter/threads/set_up_group'
         | 
| 22 | 
            +
            # require 'gridinit-jmeter/threads/tear_down_group'
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            # CONFIG ELEMENT
         | 
| 25 | 
            +
              require 'gridinit-jmeter/config/counter_config'
         | 
| 26 | 
            +
            # require 'gridinit-jmeter/config/csv_data_set_config'
         | 
| 27 | 
            +
            # require 'gridinit-jmeter/config/ftp_request_defaults'
         | 
| 28 | 
            +
              require 'gridinit-jmeter/config/auth_manager'
         | 
| 29 | 
            +
              require 'gridinit-jmeter/config/cache_manager'
         | 
| 30 | 
            +
              require 'gridinit-jmeter/config/cookie_manager'
         | 
| 31 | 
            +
              require 'gridinit-jmeter/config/header_manager'
         | 
| 32 | 
            +
              require 'gridinit-jmeter/config/request_defaults'
         | 
| 33 | 
            +
            # require 'gridinit-jmeter/config/java_request_defaults'
         | 
| 34 | 
            +
            # require 'gridinit-jmeter/config/jdbc_connection_configuration'
         | 
| 35 | 
            +
            # require 'gridinit-jmeter/config/gc_lock_file_config'
         | 
| 36 | 
            +
            # require 'gridinit-jmeter/config/gc_variables_from_csv_file'
         | 
| 37 | 
            +
            # require 'gridinit-jmeter/config/keystore_configuration'
         | 
| 38 | 
            +
            # require 'gridinit-jmeter/config/ldap_extended_request_defaults'
         | 
| 39 | 
            +
            # require 'gridinit-jmeter/config/ldap_request_defaults'
         | 
| 40 | 
            +
            # require 'gridinit-jmeter/config/login_config_element'
         | 
| 41 | 
            +
            # require 'gridinit-jmeter/config/random_variable'
         | 
| 42 | 
            +
            # require 'gridinit-jmeter/config/simple_config_element'
         | 
| 43 | 
            +
            # require 'gridinit-jmeter/config/tcp_sampler_config'
         | 
| 44 | 
            +
              require 'gridinit-jmeter/config/user_defined_variable'
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            # TIMERS
         | 
| 47 | 
            +
            # require 'gridinit-jmeter/timers/beanshell_timer'
         | 
| 48 | 
            +
            # require 'gridinit-jmeter/timers/bsf_timer'
         | 
| 49 | 
            +
            # require 'gridinit-jmeter/timers/constant_throughput_timer'
         | 
| 50 | 
            +
            # require 'gridinit-jmeter/timers/constant_timer'
         | 
| 51 | 
            +
              require 'gridinit-jmeter/timers/gaussian_random_timer'
         | 
| 52 | 
            +
            # require 'gridinit-jmeter/timers/gc_throughput_shaping_timer'
         | 
| 53 | 
            +
            # require 'gridinit-jmeter/timers/jsr223_timer'
         | 
| 54 | 
            +
            # require 'gridinit-jmeter/timers/poisson_random_timer'
         | 
| 55 | 
            +
            # require 'gridinit-jmeter/timers/synchronizing_timer'
         | 
| 56 | 
            +
            # require 'gridinit-jmeter/timers/uniform_random_timer'
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            # PRE PROCESSORS
         | 
| 59 | 
            +
              require 'gridinit-jmeter/pre_processors/bean_shell_pre_processor'
         | 
| 60 | 
            +
            # require 'gridinit-jmeter/pre_processors/bsf_pre_processor'
         | 
| 61 | 
            +
            # require 'gridinit-jmeter/pre_processors/html_link_parser'
         | 
| 62 | 
            +
            # require 'gridinit-jmeter/pre_processors/http_url_rewriter'
         | 
| 63 | 
            +
            # require 'gridinit-jmeter/pre_processors/jdbc_pre_processor'
         | 
| 64 | 
            +
            # require 'gridinit-jmeter/pre_processors/gc_inter_thread_pre_processor'
         | 
| 65 | 
            +
            # require 'gridinit-jmeter/pre_processors/gc_raw_data_source_pre_processor'
         | 
| 66 | 
            +
            # require 'gridinit-jmeter/pre_processors/jsr223_pre_processor'
         | 
| 67 | 
            +
            # require 'gridinit-jmeter/pre_processors/user_parameters'
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            # POST PROCESSORS
         | 
| 70 | 
            +
            # require 'gridinit-jmeter/post_processors/bean_shell_post_processor'
         | 
| 71 | 
            +
            # require 'gridinit-jmeter/post_processors/bsf_post_processor'
         | 
| 72 | 
            +
            # require 'gridinit-jmeter/post_processors/debug_post_processor'
         | 
| 73 | 
            +
            # require 'gridinit-jmeter/post_processors/jdbc_post_processor'
         | 
| 74 | 
            +
            # require 'gridinit-jmeter/post_processors/gc_inter_thread_communication_post_processor'
         | 
| 75 | 
            +
            # require 'gridinit-jmeter/post_processors/jsr223_post_processor'
         | 
| 76 | 
            +
              require 'gridinit-jmeter/post_processors/regex_extractor'
         | 
| 77 | 
            +
            # require 'gridinit-jmeter/post_processors/result_status_action_handler'  
         | 
| 78 | 
            +
              require 'gridinit-jmeter/post_processors/xpath_extractor'
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            # ASSERTIONS
         | 
| 81 | 
            +
              require 'gridinit-jmeter/assertions/response_assertion'
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            # LISTENERS
         | 
| 84 | 
            +
              require 'gridinit-jmeter/listeners/view_results_full_visualizer'
         | 
| 85 | 
            +
              require 'gridinit-jmeter/listeners/table_visualizer'
         | 
| 86 | 
            +
              require 'gridinit-jmeter/listeners/graph_visualizer'
         | 
| 87 | 
            +
              require 'gridinit-jmeter/listeners/response_time_graph_visualizer'
         | 
| 88 | 
            +
              require 'gridinit-jmeter/listeners/stat_visualizer'
         | 
| 89 | 
            +
              require 'gridinit-jmeter/listeners/summary_report'
         | 
| 90 | 
            +
              require 'gridinit-jmeter/listeners/gc_latencies_over_time'
         | 
| 91 | 
            +
              require 'gridinit-jmeter/listeners/gc_response_codes_per_second'
         | 
| 92 | 
            +
              require 'gridinit-jmeter/listeners/gc_response_times_distribution'
         | 
| 93 | 
            +
              require 'gridinit-jmeter/listeners/gc_response_times_over_time'
         | 
| 94 | 
            +
              require 'gridinit-jmeter/listeners/gc_response_times_percentiles'
         | 
| 95 | 
            +
              require 'gridinit-jmeter/listeners/gc_transactions_per_second'
         | 
| 96 | 
            +
             | 
| 97 | 
            +
            # LOGIC CONTROLLERS
         | 
| 98 | 
            +
              require 'gridinit-jmeter/controllers/transaction'
         | 
| 99 | 
            +
              require 'gridinit-jmeter/controllers/once_only'
         | 
| 100 | 
            +
              require 'gridinit-jmeter/controllers/if_controller'
         | 
| 101 | 
            +
              require 'gridinit-jmeter/controllers/loop_controller'
         | 
| 102 | 
            +
             | 
| 103 | 
            +
            # SAMPLERS
         | 
| 104 | 
            +
              require 'gridinit-jmeter/samplers/http_sampler'
         | 
| 105 | 
            +
              require 'gridinit-jmeter/samplers/ldap_ext_sampler'
         |