Quintiq file version 2.0
|
#parent: #root
|
Method PTF_ExecuteClient (
|
structured[LibPTF_TestScript] testscripts,
|
String str
|
) as String id:Method_LibPTF_pnlTestController_PTF_ExecuteClient
|
{
|
#keys: '[102890.0.1874250332]'
|
Body:
|
[*
|
// Checks the status of the expected clients and launched clients in all the scripts and launch the next batches of clients when the previous batches of clients complete its execution
|
|
rowDelimiter := LibPTF_Util::StringListRowDelimiter();
|
columnDelimiter := LibPTF_Util::StringListColumnDelimiter();
|
|
tracker := construct( Strings );
|
rows := str.Tokenize( rowDelimiter );
|
|
traverse( rows, Elements, row )
|
{
|
columns := row.Tokenize( columnDelimiter );
|
|
user := columns.Element( 0 );
|
reqSessions := [Number]columns.Element( 1 );
|
reqConcurrentSessions := [Number]columns.Element( 2 );
|
executedSessions_o := [Number]columns.Element( 3 );
|
executingSessions_o := [Number]columns.Element( 4 );
|
remainingSessions := [Number]columns.Element( 5 );
|
startTime_o := columns.Element( 6 );
|
endTime := columns.Element( 7 );
|
// elapsedtime := columns.Element( 8 ); Not being used
|
startoffset := columns.Element( 9 );
|
|
remainingConcurrentSessions := reqConcurrentSessions - executingSessions_o;
|
script := select( testscripts,
|
Elements,
|
s,
|
true,
|
s.User() = user );
|
|
currentTime := this.PTF_ConvertStringToDateTime( this.PTF_GetCurrentDatetime() );
|
|
if( remainingSessions > 0
|
and this.PTF_ConvertStringToDateTime( lblStartTime.Text() ) + [Duration]startoffset <= currentTime
|
)
|
{
|
nrOfClientsToStart := minvalue( remainingSessions, remainingConcurrentSessions );
|
|
this.PTF_ExecuteClientByScript( script,
|
nrOfClientsToStart,
|
executedSessions_o,
|
executingSessions_o,
|
startTime_o
|
);
|
}
|
|
columns.Flush();
|
columns.Add( user );
|
columns.Add( [String]reqSessions );
|
columns.Add( [String]reqConcurrentSessions );
|
columns.Add( [String]executedSessions_o );
|
columns.Add( [String]executingSessions_o );
|
columns.Add( [String]remainingSessions );
|
columns.Add( startTime_o );
|
columns.Add( endTime );
|
columns.Add( this.PTF_GetTotalDuration( startTime_o, endTime ) );
|
columns.Add( startoffset );
|
|
tracker.Add( columns.ToString( columnDelimiter ) );
|
}
|
|
return tracker.ToString( rowDelimiter );
|
*]
|
}
|