Test Complete的性能记录方法

Vibe Coding实战指南:从环境搭建到性能优化的全流程开发方法论 编程方法论是现代软件开发的核心基础,它通过系统化的思维模式指导代码编写过程。Vibe Coding作为一种注重开发体验的方法论,其原理在于通过工具链配置和即时反馈机制保持编码流畅性。这种方法的技術价值体现在提升开发效率30%和减少调试时间25%,特别适用于敏捷开发、快速原型验证和遗留系统重构等场景。在实际工程实践中,Vibe Coding与版本控制、自动化测试和持续集成等热词紧密相关,能够自然收敛到全流程开发优化。通过合理的环境配置和工作流设计,开发者可以在Web前端、微服务架构等项目中实现代码质量与开发效 阅读详情
 
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());
 
从 SARA 归档会话明细读懂一次 SAP 数据归档的真实状态 文章摘要:SAP数据归档中,归档会话明细(SARA事务码下的Archiving Session Details)常被忽视却至关重要。它记录了归档执行的系统信息、会话编号、执行时间、用户和关联spool等关键元数据,是判断归档完整性和可靠性的核心依据。不同于后台作业(SM37)仅关注技术执行状态,归档会话提供了业务层面的管理视角,包括文件状态、删除进度和存储情况。生产环境中需特别注意归档会话与后台作业的区别,利用会话编号串联各环节信息,并通过标记invalid会话避免后续误操作。该功能对BASIS、开发和审计 阅读详情

相关推荐

Test Complete中文帮助手册

Test Complete自带帮助文档的中文版

Test complete测试工具介绍

Test complete 是一款性价比比较高的测试工具,能够满足大多数用户的自动化测试的需求。 Test complete 是近几年流行和发展起来的一款自动化测试工具,早期版本由Automated QA 公司出品。 我在以前使用过version 4.25版本,感觉该工具使用起来很方便,功能也十分强大,给测试用户提供很多自主编程的空间。该工具现在最新版本为8.0,大家...

weixin_33972649的博客 847

别再让COGI拖慢你的SAP接口!手把手教你配置BAPI_PRODORDCONF_CREATE_TT的同步货物移动

本文深入解析SAP生产订单报工接口中的COGI问题,通过BAPI_PRODORDCONF_CREATE_TT的同步配置实战,解决异步更新导致的性能瓶颈。文章详细介绍了增强点配置和性能验证,帮助用户彻底消除COGI堆积,提升接口效率。

weixin_29214691的博客 482

【教程】TestComplete测试桌面应用程序教程(六)

TestComplete是一款具有人工智能的自动UI测试工具,利用自动化测试工具和人工智能支持的混合对象识别引擎,轻松检测和测试每个桌面,Web和移动应用程序。其中,TestComplete支持测试使用C++、C#、VB.NET、Java、Delphi、C ++ Builder等其他开发工具创建...

weixin_33671935的博客 599

手把手教你用CEFSharp打造防关联指纹浏览器(附完整代码)

本文详细介绍了如何基于CEFSharp框架,从零开始构建一个企业级的防关联指纹浏览器。通过剖析核心架构、多进程隔离实现、动态指纹混淆(如Canvas、WebGL)的实战代码,以及代理集成与性能优化,为跨境电商、广告投放等场景提供了一套可控、安全的开源解决方案。

fern8的博客 961

用C#语言实现记事本

本次程序设计作业为用C#语言设计一个记事本,设计的记事本应与电脑系统自带的记事本类似,最后实现的界面及功能应类似于下图。

qq_57738695的博客 2847

Test Complete 的自动化测试 --- 计算器

Test Complete 的自动化测试 --- 计算器 ·PS:工具:Test Complete, OS: win XP, (win10 不支持该工具的自动化测试) ·该篇博客将会讲1、如何录制脚本,2、如何实现数据驱动 这里说明一下数据驱动,在做软件测试的时候,数据驱动指的是引用外部的数据对待测程序进行测试,酱紫就减少了在程序里面进行逐步输入的繁琐步骤。 ...

GetcharZp的博客 559

避坑指南:新手爬百度图片3个致命错,改完批量保存本地(亲测有效)

新手爬百度图片的核心是“绕开静态HTML,抓准API接口+处理反爬+提取原图”,改完本文提到的3个核心错,就能稳定批量保存高清图片。这套思路可复用在其他图片网站(如必应图片、360图片),只需修改API接口和参数即可。如果想进一步优化,可添加代理IP池、多线程下载(新手不建议,容易触发反爬)、图片去重等功能!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1586

软件测试开源小工具介绍

【Test Complete(自动化测试)】 TestComplete是AutomatedQA公司开发的一套支持自动测试软件的工具。在当今的软件开发中,自动测试非常重要,大型软件开发公司很久以来就已经将其作为软件开发的一项重要环节。然而,自动测试软件一般成本较高而且不易使用,很难在小型公司内推广。 TestComplete为Windows、.NET、Java和Web应用程序提供了一个特性全面的自

米菲的泰迪 2478

Power EM与Signal EM解决办法与原理分析

1.面对power EM,首先检查missing via,补全via,还可以加宽,加密局部power mesh,一些power IO出pin有power EM问题,可以叠加多层线和垂直方向补power形成网络降低并联电阻和提供更多电流通路解决,这种方法还可以降低ir drop。3.先进工艺有一个via ladder的方法可以解决power/signal em问题,clock cell出pin绕线或者power rail连接power stripe通过搭梯子的方式连接,原理还是分流。

m0_61544122的博客 4741

定位分析RCU stall问题

在编译内核时打开或者在启动参数中增加这样统计信息是在采样周期中收集的。其中number行分别是发生stalled的cpu上的硬中断,软中断,和上下文的切换次数cputime行的前三列分别是硬中断,软中断和任务消耗的cpu时间,单位为ms.最后一个数字是统计的周期时间(ms).因为用户态的任务通常不会引起RCU CPU stalls,所以任务通常是内核任务,这也是为什么只统计system cpu的原因.

happyAnger6的专栏 1993

适合 Python 入门的 8 款强大工具!

适合 Python 入门的 8 款强大工具!

python03011的博客 627

YOLOv11的元学习(MAML)few-shot适配-(5样本内快速适应新类别)

本文提出了一种基于元学习和YOLOv11的少样本目标检测方法。首先介绍了元学习的核心概念和MAML算法原理,分析了YOLOv11的架构改进及其在少样本检测中的适用性。针对少样本检测面临的过拟合、特征混淆和定位困难等挑战,提出了基于MAML的解决方案。在实现方面,详细阐述了环境配置、数据预处理和任务采样策略,构建了支持N-way K-shot任务的数据加载器。实验表明,该方法相比传统微调策略可显著提升小样本场景下的检测性能。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 599

免费开源远程桌面 BilldDesk:WebRTC 跨平台远控与 2K 高帧率串流完整指南

BilldDesk 是一套基于 Vue3 + WebRTC + Node.js + Flutter 的免费开源远程桌面控制方案,支持 Windows、macOS、安卓与浏览器互相发起连接,可帮你摆脱按月、按次计费,几分钟内跑通第一次远控。 ## 它替谁解决了什么 用 ToDesk、向日葵这类商业远程软件时,最常踩的三堵墙是:免费版权重被砍(1080p、30 帧)、连接时长和次数被限流、想要安卓

gitblog_00051的博客 361

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

better-scroll 嵌套滚动插件(nested-scroll)使用与原理深度解析

本篇文章围绕 better-scroll 官方插件包 `@better-scroll/nested-scroll`(仓库路径 [packages/nested-scroll](https://link.gitcode.com/i/a8137e57a4ee5cc4fe6b591fd78a63eb))展开,完整讲解其在页面中"外层滚动 + 内层滚动"嵌套场景下的安装、配置、生命周期管理与销毁方法,并结

gitblog_00243的博客 475

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

memory test

memory test using sysbench 【Purpose】 Do memory performance test base on sysbench 【Eevironment】 RK3328 arm64 ubuntu 16.04 【Procdeure】 root@IOTP-EPC:/test/sysbench# sysbench --memory-tota...

良红 102

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

第9章 Profiling - 性能分析测试

OpenCL Profiling测试套件验证性能分析功能的正确性,通过命令队列分析精确测量执行时间。主要特性包括命令级性能分析、纳秒级时间戳记录和最小性能开销。测试涵盖数组读写、图像操作、拷贝及内核执行等多种场景。通过clGetEventProfilingInfo可查询命令入队、提交、开始和结束时间戳,计算各阶段耗时(如队列延迟、执行时间等),帮助开发者进行性能优化和瓶颈分析。性能分析需在创建命令队列时通过CL_QUEUE_PROFILING_ENABLE标志显式启用。

图形/计算GPU的驱动与虚拟化技术分享园地 740

Speedline完全指南:如何从DevTools性能跟踪计算视觉加载速度指数

想要准确测量网页的视觉加载速度吗?Speedline是一个强大的开源工具,专门用于从Chrome DevTools性能跟踪数据中计算**视觉加载速度指数**。这个工具可以帮助开发者量化用户感知的页面加载体验,是前端性能优化的必备利器。通过分析DevTools生成的timeline.json文件,Speedline能够精确计算出**速度指数**和**感知速度指数**,让你真正了解用户眼中的页面加载速

gitblog_00146的博客 904

WeChatMsg:微信聊天记录本地化处理引擎的技术架构与扩展设计

WeChatMsg的核心在于构建一个高效、安全的本地化数据处理引擎,专门针对微信聊天记录的结构化解析与转换。该引擎采用分层架构设计,确保数据处理过程的可扩展性和可维护性。 ### 数据提取层的技术实现 微信聊天记录的原始数据存储在SQLite数据库中,WeChatMsg通过逆向工程分析数据库结构,实现了对加密数据的解密和解析。数据提取层采用模块化设计,包含以下核心组件: ```python

gitblog_00742的博客 773

oracle+view性能,View 表性能优化

本人项目需要建立以下Oracle数据库的View表,但在PL/SQL Developer上执行,4077条记录,运行要49.502seconds,请问,有什么方法优化下面的View表,谢谢。create or replace view view_project_test asselect A.CLASS_ID,A.OBJECT_ID,A.TDM_ID,A.CREATION_DATE,A.MODIF...

weixin_42294495的博客 506

如何在大型项目中使用Benny进行模块化基准测试:提升代码性能的完整指南

在大型JavaScript/TypeScript项目中,性能优化是开发过程中的关键环节。Benny作为一个简单易用的基准测试框架,为开发者提供了强大的性能分析工具。本文将详细介绍如何在复杂项目中实施模块化基准测试策略,帮助您系统地优化代码性能。 ## 📊 为什么大型项目需要模块化基准测试? 随着项目规模的扩大,性能问题往往变得更加隐蔽且难以追踪。模块化基准测试允许您: - **隔离性能瓶颈*

gitblog_00392的博客 928

实战指南:Loguru多线程与异步日志的并发安全深度解析

在Python并发编程中,日志记录是系统稳定性的关键环节。Loguru通过智能设计确保了线程安全和进程安全,让开发者在复杂的并发环境中也能安心使用日志功能。本文将深入探讨Loguru在多线程、多进程和异步环境中的安全机制,并提供实际应用的最佳实践方案。 ## 为什么并发日志需要特别关注? 在多线程应用中,多个线程同时写入日志文件可能导致消息丢失、文件损坏或日志内容错乱。多进程环境更加复杂,每个

gitblog_00993的博客 279
上一篇: Test Complete的Name Mapping技术
下一篇: 探索性测试的适用性
TIB
TIB
博客等级 码龄19年 2879粉丝 957原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值