`
kuwoleft
  • 浏览: 1101852 次
文章分类
社区版块
存档分类
最新评论

Test Complete的性能记录方法

 
阅读更多
Test Complete的性能记录方法
陈能技
2007-8-18
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;
...
end;
第二种方式是采用访问提供的编程对象的方式,提供AQtimeIntegration 、AQtime、slAQtime对象来访问AQTime的各种功能。
例如,下面脚本使用AQtimeIntegration 和AQtime对象,首先通过AqtimeIntegration对象的IsSupportedVersionAvailable属性判断某版本的AQTime是否存在,如果存在,则指定CurrentVersion为某版本的AQTime,然后通过AQTime对象的CreateProjectFromModule方法创建一个新的AQTime项目,通过SelectProfiler方法指定Profile的类型,通过StartProfiling方法开始Profile,通过WaitAndExportResults输出结果。
procedure TestAQtime;
begin
// Checks AQtime version
if not AQtimeIntegration.IsSupportedVersionAvailable('4') then
begin
Log.Error('The required version of AQtime is not installed.');
Exit;
end;
// Specifies the desired AQtime version
AQtimeIntegration.CurrentVersion := 4;
// Creates a new project
if not AQtime.CreateProjectFromModule('C:/MyTestedApp/MyTestedApp.exe') then
begin
Log.Error('Cannot open the project.');
Exit;
end;
// Selects the desired profiler
if not AQtime.SelectProfiler('Performance Profiler') then
begin
Log.Error('Cannot select the specified profiler.');
Exit;
end;
// Starts profiling
if not AQtime.StartProfiling() then
begin
Log.Error('Cannot start profiling.');
Exit;
end;
// Waits until the profiling is over and
// exports profiling results
AQtime.WaitAndExportResults('C:/MyTestedApp/MySummaryResults.xml',
'C:/MyTestedApp/MyResults.xml');
// Closes AQtime
AQtime.Close();
end;
下面脚本则使用的是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());
分享到:
评论

相关推荐

    TestComplete中文帮助手册

    3. 录制与回放:TestComplete提供了方便的录制功能,允许用户记录自己的应用程序操作并将其转换为测试脚本。录制的脚本在回放时可以验证应用程序的行为。 4. 检查点:检查点是TestComplete中用于验证测试结果的一种...

    TestComplete的性能记录方法

    TestComplete主要是一个功能测试工具,利用其对GUI控件的识别、动作记录、回放等脚本技术实现替代部分的人工测试的执行。但是它同时还提供很多机制让我们在功能测试的同时记录性  TestComplete主要是一个功能测试...

    TestComplete Made Easy

    ### TestComplete7简易教程知识点概览 #### 一、TestComplete7简介 - **定义**:TestComplete7是一款由Automated QA公司开发的自动化测试工具,适用于多种类型的软件应用程序,包括桌面应用、Web应用以及移动应用等...

    TestComplete

    TestComplete支持多种类型的测试,包括功能测试、回归测试、数据驱动测试、接口测试、性能测试等。它内置了多种脚本语言,如JavaScript、Python、VBScript等,允许测试人员根据自己的熟悉程度选择合适的语言来编写...

    TestComplete 7 Made Easy

    ### TestComplete 7 Made Easy — 关键知识点解析 #### 一、TestComplete 7 概述 TestComplete 7 是一款由 Automated QA 公司开发的自动化测试工具,旨在为 Windows、.NET、Java 和 Web 应用程序提供一个全面且易于...

    TestCompleteMadeEasy PDF

    ### 关于《TestComplete Made Easy》的知识点解析 #### 一、TestComplete概述与功能介绍 ...通过阅读本书,不仅可以掌握TestComplete的基本使用方法,还能学到许多高级技巧和最佳实践,从而提高自己的测试技能。

    Getting_Started_With_TestComplete8.pdf

    - 使用TestComplete的录制功能记录用户操作。 - 录制时可设置速度、重复次数等选项。 5. **分析录制的测试:** - 查看录制下来的脚本,理解每一步的操作逻辑。 - 修改或优化脚本以适应更复杂的测试场景。 6. **...

    test case word文档

    4. **如何选择自动化测试框架.doc**:自动化测试可以提高效率,这份文档可能指导如何根据项目需求评估并选择合适的自动化测试工具或框架,如Selenium、Appium、TestComplete等。 学习和理解这些文档中的内容,有助...

    软件功能性能测试报告(模板).zip

    1. 功能测试工具:如Selenium、Junit、TestComplete等,用于自动化测试。 2. 性能测试工具:如LoadRunner、JMeter、 Gatling等,用于模拟用户负载并监控系统性能。 3. 缺陷跟踪系统:如JIRA、Bugzilla,用于管理缺陷...

    Software-test-specification.rar_软件测试ppt

    常见的自动化测试工具有Selenium、Junit、TestComplete等。自动化测试适用于执行重复性高、耗时长的测试场景。 **持续集成与持续测试** 持续集成(CI)是指频繁地将代码集成到主分支,每次集成都进行自动构建和...

    测试术语(含缩略语、中英文翻译)

    5. **CITRe (Complete Integration Test Report)**:完成的集成测试报告,记录了测试过程、发现的问题、修复情况以及测试结论,为质量保证提供依据。 6. **CITRu (Complete Integration Test Rules)**:完成的集成...

    《软件自动化测试成功之道》读书笔记.pdf

    - **录制回放功能**:TestComplete的录制回放功能强大且易于使用,支持在录制过程中修改脚本名称,并能智能地存储被测试对象的方法和属性。 - **Windows API支持**:利用Windows API中的函数,如FindWindow、...

    软件测试实验报告软件质量和性能

    7. TestComplete:功能丰富的自动化测试工具,支持多种应用程序类型。 8. SonarQube:代码质量管理平台,进行静态代码分析和代码审查。 **四、测试策略** 1. V模型:测试活动与开发阶段相对应,每个开发阶段都有...

    软件评测师学习记录

    最后,"测试工具介绍"将介绍一些常用的软件测试工具,比如JIRA用于项目管理和缺陷追踪,TestComplete用于自动化测试,LoadRunner用于性能测试等。熟悉这些工具的使用可以提高测试效率,确保测试工作的精确性和高效性...

    软件测试技术与方法学习

    常用自动化测试工具有Selenium、Junit和TestComplete等。还有性能测试,用于评估软件在高负载或压力下的表现,如LoadRunner和JMeter。安全测试则关注软件的安全性,防止数据泄露和攻击,常见的工具有OWASP ZAP和...

    软件测试方法和技术

    市面上有许多专业测试工具,如JIRA用于项目管理,TestComplete支持自动化测试,LoadRunner进行性能测试,Postman用于API测试等。 总结,软件测试方法和技术是保证软件质量的核心环节。从测试类型的选择到具体的实施...

    行业分类-设备装置-程序测试方法及平台.zip

    - **自动化测试工具**:如TestComplete、LoadRunner、Postman等,提高测试效率。 - **性能测试工具**:JMeter、LoadRunner用于模拟高负载,检查系统性能和稳定性。 6. **测试策略**: - **冒烟测试**:在深入...

    关于软件测试技术——测试流程,方法,工具的介绍

    7. TestComplete:一款功能强大的自动化测试工具,支持各种应用程序类型。 8. JIRA:缺陷跟踪和项目管理工具,帮助团队管理测试过程中的问题。 9. SonarQube:静态代码分析和代码质量管理工具,检测潜在的代码问题...

Global site tag (gtag.js) - Google Analytics