T
- the type of the applications this load test usespublic abstract class LoadTestModel<T> extends java.lang.Object implements LoadTest
Modifier and Type | Class and Description |
---|---|
static class |
LoadTestModel.AbstractUsageScenario<T>
An abstract usage scenario.
|
LoadTest.ScenarioException, LoadTest.UsageScenario<T>
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_CHART_DATA_UPDATE_INTERVAL_MS |
static int |
DEFAULT_WARNING_TIME_MS |
protected static org.slf4j.Logger |
LOG |
protected static java.util.Random |
RANDOM |
Constructor and Description |
---|
LoadTestModel(User user,
java.util.Collection<? extends LoadTest.UsageScenario<T>> usageScenarios,
int maximumThinkTime,
int loginDelayFactor,
int applicationBatchSize)
Constructs a new LoadTestModel.
|
LoadTestModel(User user,
java.util.Collection<? extends LoadTest.UsageScenario<T>> usageScenarios,
int maximumThinkTime,
int loginDelayFactor,
int applicationBatchSize,
int warningTime)
Constructs a new LoadTestModel.
|
LoadTestModel(User user,
int maximumThinkTime,
int loginDelayFactor,
int applicationBatchSize)
Constructs a new LoadTestModel.
|
LoadTestModel(User user,
int maximumThinkTime,
int loginDelayFactor,
int applicationBatchSize,
int warningTime)
Constructs a new LoadTestModel.
|
Modifier and Type | Method and Description |
---|---|
void |
addApplicationBatch()
Adds a batch of applications.
|
protected void |
addExitListener(EventListener listener) |
EventObserver<java.lang.Integer> |
applicationBatchSizeObserver() |
EventObserver<java.lang.Integer> |
applicationCountObserver() |
EventObserver<java.lang.Boolean> |
collectChartDataObserver() |
protected abstract void |
disconnectApplication(T application) |
void |
exit()
Removes all applications and exits
|
int |
getApplicationBatchSize() |
int |
getApplicationCount() |
int |
getLoginDelayFactor()
Sets the with which to multiply the think time when logging in, this helps
spread the application logins when creating a batch of application.
|
int |
getMaximumThinkTime() |
org.jfree.data.xy.XYSeriesCollection |
getMemoryUsageDataset() |
int |
getMinimumThinkTime() |
EventObserver<java.lang.Integer> |
getMinimumThinkTimeObserver() |
org.jfree.data.xy.XYSeriesCollection |
getNumberOfApplicationsDataset() |
EventObserver<java.lang.Boolean> |
getPauseObserver() |
ItemRandomizer<LoadTest.UsageScenario> |
getScenarioChooser() |
org.jfree.data.xy.YIntervalSeriesCollection |
getScenarioDurationDataset(java.lang.String name) |
protected int |
getThinkTime() |
org.jfree.data.xy.XYSeriesCollection |
getThinkTimeDataset() |
java.lang.String |
getTitle()
The title of this LoadTest
|
int |
getUpdateInterval() |
LoadTest.UsageScenario<T> |
getUsageScenario(java.lang.String usageScenarioName) |
org.jfree.data.xy.XYSeriesCollection |
getUsageScenarioDataset() |
org.jfree.data.xy.XYSeriesCollection |
getUsageScenarioFailureDataset() |
java.util.Collection<java.lang.String> |
getUsageScenarios() |
User |
getUser() |
int |
getWarningTime() |
EventObserver<java.lang.Integer> |
getWarningTimeObserver() |
protected abstract T |
initializeApplication() |
boolean |
isCollectChartData() |
boolean |
isPaused() |
boolean |
isScenarioEnabled(java.lang.String scenarioName) |
EventObserver<java.lang.Integer> |
maximumThinkTimeObserver() |
void |
removeApplicationBatch()
Removes one batch of applications.
|
void |
resetChartData()
Resets the accumulated chart data
|
protected void |
runScenario(java.lang.String usageScenarioName,
T application)
Runs the scenario with the given name on the given application
|
void |
setApplicationBatchSize(int applicationBatchSize) |
void |
setCollectChartData(boolean value) |
void |
setLoginDelayFactor(int loginDelayFactor)
Sets the with which to multiply the think time when logging in, this helps
spread the application logins when creating a batch of application.
|
void |
setMaximumThinkTime(int maximumThinkTime) |
void |
setMinimumThinkTime(int minimumThinkTime) |
void |
setPaused(boolean value) |
void |
setScenarioEnabled(java.lang.String scenarioName,
boolean value) |
void |
setUpdateInterval(int updateInterval) |
void |
setUser(User user) |
void |
setWarningTime(int warningTime) |
void |
setWeight(java.lang.String scenarioName,
int weight)
Sets the random chooser weight for the given scenario
|
public static final int DEFAULT_CHART_DATA_UPDATE_INTERVAL_MS
public static final int DEFAULT_WARNING_TIME_MS
protected static final org.slf4j.Logger LOG
protected static final java.util.Random RANDOM
public LoadTestModel(User user, int maximumThinkTime, int loginDelayFactor, int applicationBatchSize)
user
- the default user to use when initializing applicationsmaximumThinkTime
- the maximum think time, by default the minimum think time is max / 2loginDelayFactor
- the value with which to multiply the think time when delaying loginapplicationBatchSize
- the number of applications to add in a batchpublic LoadTestModel(User user, int maximumThinkTime, int loginDelayFactor, int applicationBatchSize, int warningTime)
user
- the default user to use when initializing applicationsmaximumThinkTime
- the maximum think time, by default the minimum think time is max / 2loginDelayFactor
- the value with which to multiply the think time when delaying loginapplicationBatchSize
- the number of applications to add in a batchwarningTime
- a work request is considered 'delayed' if the time it takes to process it exceeds this value (ms)public LoadTestModel(User user, java.util.Collection<? extends LoadTest.UsageScenario<T>> usageScenarios, int maximumThinkTime, int loginDelayFactor, int applicationBatchSize)
user
- the default user to use when initializing applicationsusageScenarios
- the usage scenarios to usemaximumThinkTime
- the maximum think time, by default the minimum think time is max / 2loginDelayFactor
- the value with which to multiply the think time when delaying loginapplicationBatchSize
- the number of applications to add in a batchpublic LoadTestModel(User user, java.util.Collection<? extends LoadTest.UsageScenario<T>> usageScenarios, int maximumThinkTime, int loginDelayFactor, int applicationBatchSize, int warningTime)
user
- the default user to use when initializing applicationsusageScenarios
- the usage scenarios to usemaximumThinkTime
- the maximum think time, by default the minimum think time is max / 2loginDelayFactor
- the value with which to multiply the think time when delaying loginapplicationBatchSize
- the number of applications to add in a batchwarningTime
- a work request is considered 'delayed' if the time it takes to process it exceeds this value (ms)public final User getUser()
public final void setUser(User user)
public java.lang.String getTitle()
public final LoadTest.UsageScenario<T> getUsageScenario(java.lang.String usageScenarioName)
getUsageScenario
in interface LoadTest
usageScenarioName
- the scenario namepublic final java.util.Collection<java.lang.String> getUsageScenarios()
getUsageScenarios
in interface LoadTest
public final void setWeight(java.lang.String scenarioName, int weight)
public final boolean isScenarioEnabled(java.lang.String scenarioName)
isScenarioEnabled
in interface LoadTest
scenarioName
- the scenario namepublic final void setScenarioEnabled(java.lang.String scenarioName, boolean value)
setScenarioEnabled
in interface LoadTest
scenarioName
- the scenario namevalue
- true if the scenario should be enabledpublic final ItemRandomizer<LoadTest.UsageScenario> getScenarioChooser()
getScenarioChooser
in interface LoadTest
public final org.jfree.data.xy.YIntervalSeriesCollection getScenarioDurationDataset(java.lang.String name)
getScenarioDurationDataset
in interface LoadTest
name
- the scenario namepublic final org.jfree.data.xy.XYSeriesCollection getThinkTimeDataset()
getThinkTimeDataset
in interface LoadTest
public final org.jfree.data.xy.XYSeriesCollection getNumberOfApplicationsDataset()
getNumberOfApplicationsDataset
in interface LoadTest
public final org.jfree.data.xy.XYSeriesCollection getUsageScenarioDataset()
getUsageScenarioDataset
in interface LoadTest
public final org.jfree.data.xy.XYSeriesCollection getUsageScenarioFailureDataset()
getUsageScenarioFailureDataset
in interface LoadTest
public final org.jfree.data.xy.XYSeriesCollection getMemoryUsageDataset()
getMemoryUsageDataset
in interface LoadTest
public final void resetChartData()
resetChartData
in interface LoadTest
public final int getWarningTime()
getWarningTime
in interface LoadTest
public final void setWarningTime(int warningTime)
setWarningTime
in interface LoadTest
warningTime
- the the maximum time in milliseconds a work request has to finishpublic final int getUpdateInterval()
getUpdateInterval
in interface LoadTest
public final void setUpdateInterval(int updateInterval)
setUpdateInterval
in interface LoadTest
updateInterval
- the chart data update interval in millisecondspublic final int getApplicationCount()
getApplicationCount
in interface LoadTest
public final int getApplicationBatchSize()
getApplicationBatchSize
in interface LoadTest
public final void setApplicationBatchSize(int applicationBatchSize)
setApplicationBatchSize
in interface LoadTest
applicationBatchSize
- the number of applications to initialize per batchpublic final void addApplicationBatch()
addApplicationBatch
in interface LoadTest
LoadTest.setApplicationBatchSize(int)
public final void removeApplicationBatch()
removeApplicationBatch
in interface LoadTest
LoadTest.setApplicationBatchSize(int)
public final boolean isPaused()
public final void setPaused(boolean value)
public final boolean isCollectChartData()
isCollectChartData
in interface LoadTest
public final void setCollectChartData(boolean value)
setCollectChartData
in interface LoadTest
value
- true if chart data should be collectedpublic final void exit()
public final int getMaximumThinkTime()
getMaximumThinkTime
in interface LoadTest
public final void setMaximumThinkTime(int maximumThinkTime)
setMaximumThinkTime
in interface LoadTest
maximumThinkTime
- the maximum number of milliseconds that should pass between work requestspublic final int getMinimumThinkTime()
getMinimumThinkTime
in interface LoadTest
public final void setMinimumThinkTime(int minimumThinkTime)
setMinimumThinkTime
in interface LoadTest
minimumThinkTime
- the minimum number of milliseconds that should pass between work requestspublic final int getLoginDelayFactor()
getLoginDelayFactor
in interface LoadTest
public final void setLoginDelayFactor(int loginDelayFactor)
setLoginDelayFactor
in interface LoadTest
loginDelayFactor
- the number with which to multiply the think time when logging inpublic final EventObserver<java.lang.Integer> applicationBatchSizeObserver()
applicationBatchSizeObserver
in interface LoadTest
public final EventObserver<java.lang.Integer> applicationCountObserver()
applicationCountObserver
in interface LoadTest
public final EventObserver<java.lang.Integer> maximumThinkTimeObserver()
maximumThinkTimeObserver
in interface LoadTest
public final EventObserver<java.lang.Integer> getMinimumThinkTimeObserver()
getMinimumThinkTimeObserver
in interface LoadTest
public final EventObserver<java.lang.Boolean> getPauseObserver()
getPauseObserver
in interface LoadTest
public final EventObserver<java.lang.Boolean> collectChartDataObserver()
collectChartDataObserver
in interface LoadTest
public final EventObserver<java.lang.Integer> getWarningTimeObserver()
getWarningTimeObserver
in interface LoadTest
protected final void runScenario(java.lang.String usageScenarioName, T application)
usageScenarioName
- the name of the scenario to runapplication
- the application to useprotected void addExitListener(EventListener listener)
listener
- a listener notified when this load test model has finished removing all applicationsprotected abstract T initializeApplication()
CancelException
- in case the initialization was cancelledprotected abstract void disconnectApplication(T application)
application
- the application to disconnectprotected final int getThinkTime()
setMinimumThinkTime(int)
,
setMaximumThinkTime(int)