Skip to main content

%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)