Type Parameters:
T - the type of application used by this load test.

public interface LoadTestModel<T>
Specifies a class for running multiple application instances for load testing purposes.
  • Method Details

    • shutdown

      void shutdown()
      Removes all applications and exits
    • user

      Value<User> user()
      Returns:
      the user to use when initializing new application instances
    • applicationTableModel

      Returns:
      a table model for displaying the active application instances
    • title

      String title()
      The title of this LoadTest
      Returns:
      the title
    • setWeight

      void setWeight(String scenarioName, int weight)
      Sets the random chooser weight for the given scenario
      Parameters:
      scenarioName - the name of the scenario
      weight - the new weight to assign to the scenario
    • isScenarioEnabled

      boolean isScenarioEnabled(String scenarioName)
      Parameters:
      scenarioName - the scenario name
      Returns:
      true if the scenario is enabled
    • setScenarioEnabled

      void setScenarioEnabled(String scenarioName, boolean enabled)
      Parameters:
      scenarioName - the scenario name
      enabled - true if the scenario should be enabled
    • usageScenarios

      Collection<String> usageScenarios()
      Returns:
      the names of the usage scenarios used by this load test.
    • usageScenario

      UsageScenario<T> usageScenario(String usageScenarioName)
      Parameters:
      usageScenarioName - the scenario name
      Returns:
      the usage scenario
    • getUpdateInterval

      int getUpdateInterval()
      Returns:
      the chart data update interval in milliseconds
    • setUpdateInterval

      void setUpdateInterval(int updateInterval)
      Parameters:
      updateInterval - the chart data update interval in milliseconds
    • addShutdownListener

      void addShutdownListener(Runnable listener)
      Parameters:
      listener - a listener notified when this load test model has been shutdown.
    • applicationBatchSize

      Value<Integer> applicationBatchSize()
      Returns:
      the Value controlling the number of applications to initialize per batch
    • paused

      State paused()
      Returns:
      the state controlling the paused state of this load test
    • maximumThinkTime

      Value<Integer> maximumThinkTime()
      Returns:
      the Value controlling the maximum number of milliseconds that should pass between work requests
    • minimumThinkTime

      Value<Integer> minimumThinkTime()
      Returns:
      the Value controlling the minimum number of milliseconds that should pass between work requests
    • loginDelayFactor

      Value<Integer> loginDelayFactor()
      This value controls the factor with which to multiply the think time when logging in, this helps spread the application logins when creating a batch of application.
      Returns:
      the Value controlling the factor with which to multiply the think time when logging in
    • collectChartData

      State collectChartData()
      Returns:
      the state controlling whether this load test collects chart data
    • autoRefreshApplications

      State autoRefreshApplications()
      Returns:
      the state controlling whether the applications table model is automatically refreshed
    • applicationCount

      ValueObserver<Integer> applicationCount()
      Returns:
      an observer notified each time the application count changes
    • addApplicationBatch

      void addApplicationBatch()
      Adds a batch of applications.
      See Also:
    • removeApplicationBatch

      void removeApplicationBatch()
      Removes one batch of applications.
      See Also:
    • removeSelectedApplications

      void removeSelectedApplications()
      Removes the selected applications
    • clearCharts

      void clearCharts()
      Clears the accumulated chart data
    • scenarioDurationDataset

      org.jfree.data.xy.IntervalXYDataset scenarioDurationDataset(String name)
      Parameters:
      name - the scenario name
      Returns:
      a dataset plotting the average scenario duration
    • thinkTimeDataset

      org.jfree.data.xy.XYDataset thinkTimeDataset()
      Returns:
      a dataset plotting the think time
    • numberOfApplicationsDataset

      org.jfree.data.xy.XYDataset numberOfApplicationsDataset()
      Returns:
      a dataset plotting the number of active applications
    • usageScenarioDataset

      org.jfree.data.xy.XYDataset usageScenarioDataset()
      Returns:
      a dataset plotting the number of runs each usage scenario is being run per second
    • memoryUsageDataset

      org.jfree.data.xy.XYDataset memoryUsageDataset()
      Returns:
      a dataset plotting the memory usage of this load test model
    • systemLoadDataset

      org.jfree.data.xy.XYDataset systemLoadDataset()
      Returns:
      a dataset plotting the system load of this load test model
    • usageScenarioFailureDataset

      org.jfree.data.xy.XYDataset usageScenarioFailureDataset()
      Returns:
      a dataset plotting the failure rate of each usage scenario
    • scenarioChooser

      ItemRandomizer<UsageScenario<T>> scenarioChooser()
      Returns:
      the randomizer used to select scenarios
    • builder

      static <T> LoadTestModel.Builder<T> builder(Function<User,T> applicationFactory, Consumer<T> closeApplication)
      Type Parameters:
      T - the application type
      Parameters:
      applicationFactory - the application factory
      closeApplication - closes an application
      Returns:
      a new builder