%WebStress.Playback
Class %WebStress.Playback Extends (%Persistent, %XML.Adaptor) [ System = 4 ]
Properties
ProcessID
Property ProcessID As %String [ InitialExpression = {$job} ];
This process ID
RunID
Property RunID As %Integer;
A unique number representing this run
Run
Property Run As %WebStress.Run;
Container for the Run object
TestID
Property TestID As %Integer;
Pointer to %WebStress.Tests
Test
Property Test As %WebStress.Tests;
Container for the %WebStress.Tests object
ScriptID
Property ScriptID As %Integer;
Pointer to %WebStress.Scripts
Script
Property Script As %WebStress.Scripts;
Container for the %WebStress.Script object
Generator
Property Generator As %String;
The name of the generator that will be used to generate the traffic
WebServer
Property WebServer As %String;
The address of the web server that will be used
WebServerPort
Property WebServerPort As %Integer;
The port number on the web server
Sessions
Property Sessions As %Integer;
The number of sessions per process
StartDate
Property StartDate As %Date;
The date that the test run will start. Can be blank.
StopDate
Property StopDate As %Date;
The date that the test run will stop. Can be blank.
StartTime
Property StartTime As %Time;
The time that the test run will start. Can be blank.
StopTime
Property StopTime As %Time;
The time that the test run will stop. Can be blank.
RunMins
Property RunMins As %Integer;
The number of minutes that the test will run. Used instead of start/stop date/time or can be blank if start/stop date/time are used.
WarmUpMins
Property WarmUpMins As %Integer;
The number of minutes that the test will run for before recording the statistics starts.
This is to ensure that all the processes are running and that a consistent load is being applied to the server before the recording starts.
The value should be long enough to ensure that each script is able to run through to completion at least once
CoolDownMins
Property CoolDownMins As %Integer;
The number of minutes that the test will run for at the end of recording the statistics.
This ensures that we do not get any abnormally 'quick' timings at the end of statistics recording due to a lower load on the server.
ScriptPause
Property ScriptPause As %Integer;
The number of seconds to pause at the end of each script.
This gives a more realistic playback as 'human' input would normally pause before running the same workflow again.
LoopBackURL
Property LoopBackURL As %Integer;
This is a pointer to the URL in the script that we will loop back to rather than just back to the first URL.
This may because the first URL is thestart of the user login process and we don't want to have the 'virtual user' logging in every time.
LoopBackPcnt
Property LoopBackPcnt As %Integer;
This is the percentage of the time that the LoopBackURL will be used rather than the first URL
TimeDiff
Property TimeDiff As %Float;
The difference between the time on this machine and the time on the 'controller' (The system that initiated the run)
debug
Property debug As %Boolean;
This property used internally for debugging and logging purposes.
SavePage
Property SavePage As %Boolean;
A flag that indicates whether or not to save the returned page information into disk files.
SavePageDir
Property SavePageDir As %String;
The root directory of where to sabe the returned page details if indicated to do so by the SavePage property
NoDelay
Property NoDelay As array Of %String;
Used to hold an array of all the page types where we specify no delay before making the call
NoResults
Property NoResults As array Of %String;
Used to hold an array of all the page types where we don't want to record statistics
HttpSessions
Property HttpSessions As list Of %WebStress.Playback.Session;
A collection of sessions for this process
RecordStart
Property RecordStart As %Integer;
RecordStop
Property RecordStop As %Integer;
TestStop
Property TestStop As %Integer;
ProxyAddress
Property ProxyAddress As %String;
ProxyPort
Property ProxyPort As %Integer;
SSLConfiguration
Property SSLConfiguration As %String;
NextInvoke
Property NextInvoke As %String [ MultiDimensional ];
Status
Property Status As %WebStress.Playback.Status;
Methods
Run
ClassMethod Run(RunID As %Integer, TestID As %Integer, ScriptID As %Integer, Generator As %String, WebServer As %String, WebServerPort As %Integer = 80, Sessions As %Integer = 1, StartDate As %Date = "", StopDate As %Date = "", StartTime As %Time = "", StopTime As %Time = "", RunMins As %Integer, WarmUpMins As %Integer, CoolDownMins As %Integer, ScriptPause As %Integer, LoopBackUrl As %Integer = "", LoopBackPcnt As %Integer = "", TimeDiff As %Integer, debug As %Boolean = 0, Visual As %Boolean = 0, SavePage As %Boolean = 0, SavePageDir As %String, ProxyAddress As %String, ProxyPort As %Integer, SSLConfiguration As %String)
The array showing which session is to be run next Enter here to start the run processing
Playback
Method Playback()
This runs the playback
RunStop
Method RunStop(controller As %Boolean = 0) As %Boolean
RunWait
ClassMethod RunWait(TestID As %Integer, StartDate As %Integer, StopDate As %Integer, StartTime As %Integer, StopTime As %Integer, debug As %Boolean) As %Integer
CheckRecordStatus
Method CheckRecordStatus()
GetTimes
Method GetTimes()
PreExecute
Method PreExecute(ByRef objUrl As %WebStress.Scripts.URLS, ByRef params As %String) [ ProcedureBlock = 0 ]
This is called before a URL call is made to the server. Normally to reset any parameters
PostExecute
Method PostExecute(ByRef objUrl As %WebStress.Scripts.URLS) [ ProcedureBlock = 0 ]
Called after a URL call has been made to the server
ErrorCheck
Method ErrorCheck(ByRef errorStatus As %Integer = 0, errorText As %String = "", ByRef objUrl As %WebStress.Scripts.URLS, session As %Integer, urlId As %Integer) [ ProcedureBlock = 0 ]
Called after each call to check the page error status
PreRunCode
Method PreRunCode(ByRef objUrl As %WebStress.Scripts.URLS, session As %Integer, urlId As %Integer) [ ProcedureBlock = 0 ]
This is called at the start of the full script
PostRunCode
Method PostRunCode() [ ProcedureBlock = 0 ]
This is called at the end of the full script
SetError
Method SetError(session As %Integer, urlId As %Integer, objUrl As %WebStress.Scripts.URLS, errorStatus As %Integer, errorText As %String)