下面脚本则使用的是slAQtime对象来访问AQTime:
procedure TestAQtime; var p : array[0..2] of OleVariant; i, FileName : OleVariant; begin p[0] := slAQtime.P4_AllocationProfiler; // Allocation Profiler p[1] := slAQtime.P4_CoverageProfiler; // Coverage Profiler p[2] := slAQtime.P4_PerformanceProfiler; // Performance Profiler // Opens your application in AQtime FileName := 'C:\MyProjects\MyApplication\MyApp_exe.aqt'; slAQtime.SetAQtimeProject(FileName); for i := 0 to 2 do begin try // Starts profiling in AQtime 4 slAQtime.RunAQtime4(p[i]); { To start profiling in other versions of AQtime, use the following methods -- AQtime 3.x: slAQtime.RunAQtime3(slAQtime.P3_VCLClassProfiler); AQtime 2.x: slAQtime.RunAQtime2(slAQtime.P2_VCLClassProfiler); AQtime .NET Edition 1.2x: slAQtime.RunAQtimeNET(slAQtime.PNET_StatisAnalysis); } except // Posts an exception message to the test log Log.Error(ExceptionMessage); end; // Your code goes here... // Wait until the profiling is over // (we call RunAQtime4 method in a loop) slAQtime.DoWaitFinish; end; end; |
通过调用操作系统的Perfmon对各种性能参数进行监控Perfmon是操作系统自带的性能监控工具,它能通过添加各种计数器,对各种性能参数进行记录。在TC中通过调用命令行的方式启动和停止Perfmon。具体方法如下:
首先在Perfmon中加名为perf_log的计数器日志,这里需要记录的是记事本的相关资源使用情况:
Process(NotePad): % Processor Time、Elapsed Time、Working Set
然后在TestComplete中调用命令行方式操作Perfmon(注意Perfmon的命令行工具叫logman),通过设定logman的命令行运行参数来启动(start perf_log)和停止(stop perf_log)Perfmon的计数器日志。
//开始记录 TestedApps.logman.Params.SimpleParams.CommandLineParameters:='start perf_log'; TestedApps.logman.Run(); //添加你的操作 //结束记录 TestedApps.logman.Params.SimpleParams.CommandLineParameters:='stop perf_log'; TestedApps.logman.Run(); |
通过TC提供的秒表对象记录时间
TC的log里面会对每个GUI动作的时间进行记录,但是记录的是时刻,要后期计算才能得到每个GUI操作的消耗时间,而且有些非GUI的操作时间无法记录,因此有必要寻找更精确、更方便的操作时间记录方式,而TC本身就提供一个叫StopWatch的秒表对象,可以方便地记录脚本的执行时间。
//Start开始计时 StopWatchObj := HISUtils.StopWatch; StopWatchObj.Start(); //执行你的操作 // Stop结束计时,通过StopWatch的ToString方法直接获取到经过的时间 StopWatchObj.Stop(); Log.Message('TimerRoutine finished.'); Log.Message('Execution time: ' + StopWatchObj.ToString()); |
原文转自:http://www.uml.org.cn/Test/2007083122.asp