关键字:测试
Test Complete主要是一个功能测试工具,利用其对GUI控件的识别、动作记录、回放等脚本技术实现替代部分的人工测试的执行。但是它同时还提供很多机制让我们在功能测试的同时记录性能。
MemUsage,CPUUsage
可利用TC(Test Complete)的sys对象的属性获得关于进程和操作系统的内存、CPU使用情况。
下面脚本记录当前所有进程和操作系统使用的内存:
log.Message(VarToStr(Sys.MemUsage)+'%');
下面脚本记录notepad进程的当前内存使用情况:
Log.Message(VarToStr(Sys.Process('notepad').MemUsage)+'K');
通过访问Sys对象,可以获取关于CPU的各种信息,例如,CPU处理器、处理器个数、CPU使用率(包括系统的和某个具体进程的)
//Information on the processor(s) installed on the current computer.
log.Message( Sys.CPU);
//Returns the number of processors installed on the current computer.
log.Message( Sys.CPUCount);
//Current percentage of CPU time used by the operating system and all running processes.
log.Message( VarToStr(Sys.CPUUsage)+'%');
//the current approximate percentage of the CPU time spent running the process.
log.Message( VarToStr(Sys.Process('notepad').CPUUsage)+'%');
注意:使用TC提供的VarToStr函数把Sys对象的各种属性变量值转换成String类型,否则log信息无法显示值。
与AQTime集成
上面说的方法是TC本身提供的,只能记录基本的性能参数,例如内存、CPU,TC还提供另外的途径记录性能,例如通过与AQTime集成的方式,AQTime是AutomatedQA公司出品的代码性能测试工具,它能在程序执行过程中记录每行代码的执行效率,内存使用情况、代码覆盖率等。
与AQTime集成有两种方式。一种是调用AQTime软件的方式,另外一种是直接使用AQTime提供的接口对象。
如果采用第一种方式,则首先应该把TC的TestedApps的执行模式改成 Profile 模式,可在TestedApps editor中设置,也可在脚本中设置,例如:
var
MyApp : OleVariant;
begin
// Obtains the tested application
MyApp := TestedApps.MyTestedApp;
// Specifies the run mode parameters
MyApp.Params.ProfileParams.AQtimeVersion := 5;
MyApp.Params.ProfileParams.ProfilerName := 'Coverage Profiler';
MyApp.Params.ProfileParams.RunMode := 'Normal';
MyApp.Params.ProfileParams.UseProject := False;
// Activates the Profile run mode
MyApp.Params.ProfileParams.Activate;
...