Quintiq file version 2.0
|
#parent: #root
|
Method PTF_CheckClientStatusByScript (
|
LibPTF_TestScript script,
|
Number executedsessions,
|
Number reqsessions,
|
output Number executingsessions_o,
|
output String endtime_o,
|
output Boolean alldone_o
|
) id:Method_LibPTF_pnlTestController_PTF_CheckClientStatusByScript
|
{
|
#keys: '[104342.0.777090175]'
|
Body:
|
[*
|
// Checks the PTF execution status of a single script and perform some post-PTF execution routine for individual script when the script has been executed successfully
|
|
columnDelimiter := LibPTF_Util::PTFLogFileColumnDelimiter();
|
user := script.User();
|
resultfiles := OS::ScanDirectory( this.PTF_GetResultLogPath(), LibPTF::FileExtEndResult() );
|
resultfilecount := this.PTF_GetFileCountFromResultLog( user, LibPTF::FileExtEndResult() )
|
tempfilecount := this.PTF_GetFileCountFromResultLog( user, LibPTF::FileExtTempResult() )
|
timeoutbooting := executedsessions - ( resultfilecount + tempfilecount );
|
executingsessions_o := timeoutbooting + tempfilecount;
|
|
|
if( resultfilecount < reqsessions )
|
{
|
alldone_o := false;
|
if( executedsessions > 0 )
|
{
|
endtime_o := this.PTF_GetCurrentDatetime();
|
}
|
}
|
else
|
{
|
scriptfullpath := this.PTF_GetScriptPath() + script.User() + "_" + script.Project() + LibPTF::FileExtRunningScript();
|
|
// Check if UI logging is required
|
if( script.LoggingOptions() = "Full"
|
and OS::IsFile( scriptfullpath )
|
)
|
{
|
// Create execution result and result line object
|
traverse( resultfiles, Elements, result )
|
{
|
fileuser := "";
|
clientid := "";
|
this.PTF_GetInfoFromResultLogPath( fileuser, clientid, result );
|
|
if( fileuser.ToUpper() = user.ToUpper() )
|
{
|
file := OSFile::Construct();
|
file.Open( result, "Read", true );
|
scriptresult := file.ReadTextToEnd();
|
file.Close();
|
|
totalduration := Duration::Zero();
|
if( scriptresult.TrimBoth().Length() > 0 )
|
{
|
totalduration := [Duration]this.PTF_GetTotalDurationFromResultLines( scriptresult )
|
}
|
execresult := LibPTF_ExecResult::Create( script,
|
[Number]clientid,
|
totalduration ,
|
fileuser
|
);
|
|
traverse( scriptresult.Tokenize( String::NewLine() ), Elements, line )
|
{
|
if( line.Length() > 0 )
|
{
|
linebycol := line.Tokenize( columnDelimiter );
|
starttime := linebycol.Element( 1 ).TrimBoth();
|
endtime := linebycol.Element( 2 ).TrimBoth();
|
overallduration := [Number]linebycol.Element( 3 ).TrimBoth();
|
actualduration := [Number]linebycol.Element( 4 ).TrimBoth();
|
action := linebycol.Element( 5 );
|
isRunSuccess := [Boolean]linebycol.Element( 6 ).TrimBoth();
|
information := linebycol.Element( 7 ).TrimBoth();
|
|
LibPTF_ExecResultLine::Create( execresult,
|
action,
|
overallduration,
|
actualduration,
|
this.PTF_ConvertStringToDateTime( starttime ),
|
this.PTF_ConvertStringToDateTime( endtime ),
|
isRunSuccess,
|
information
|
);
|
}
|
}
|
|
} // end if of fileuser check
|
} // end of traversing result file logs
|
} // end if of logging option
|
|
// SUCCESSFULLY finishes the test script execution, REMOVE QRUNSCRIPT files
|
OS::RemoveFile( scriptfullpath );
|
} // end of else block
|
*]
|
}
|