(上)使用 Rational Functional Tester 进行应用软件系统级自动化性能测试

发表于:2009-8-12 13:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:欧迎丰,唐雪琴    来源:IBM

  获取软件进程的内存信息

  得到句柄 hdestPr 后,我们就可以调用前面提到的 GetProcessTimes() API 来得到进程具体的进程占用的 CPU 时间了。而进程占用的内存,我们也可以通过 GetProcessMemoryInfo() API 来获取:

BOOL WINAPI GetProcessMemoryInfo(
 HANDLE Process, // 进程句柄
 PPROCESS_MEMORY_COUNTERS ppsmemCounters, // 内存信息结构
 DWORD cb // 内存信息结构的大小
);

  而内存信息结构的定义如下:

typedef struct _PROCESS_MEMORY_COUNTERS {
DWORD cb;
DWORD PageFaultCount; // 分页错误数目
SIZE_T PeakWorkingSetSize; // 工作集列 ( 物理内存 ) 的最大值
SIZE_T WorkingSetSize; // 工作集列 ( 物理内存 ) 的大小
SIZE_T QuotaPeakPagedPoolUsage; // 分页池的峰值的最大值
SIZE_T QuotaPagedPoolUsage; // 分页池的峰值大小
SIZE_T QuotaPeakNonPagedPoolUsage; // 非分页池的峰值的最大值
SIZE_T QuotaNonPagedPoolUsage; // 非分页池的峰值大小
SIZE_T PagefileUsage; // 页文件页的大小(虚拟内存)
SIZE_T PeakPagefileUsage; // 页文件页的最大值
}

  其中 WorkingSetSize 和 PagefileUsage 分别指的就是进程占用的物理内存和虚拟内存。

  在得到进程句柄后,我们将定义好的内存信息结构变量传入 GetProcessMemoryInfo(),就可以得到对应的内存信息了:

PROCESS_MEMORY_COUNTERS pmc;
pmc.cb = sizeof(PROCESS_MEMORY_COUNTERS);
GetProcessMemoryInfo(hsoffice, &pmc, sizeof(pmc));
physicalMem = pmc.WorkingSetSize;
virtualMem = pmc.PagefileUsage;

  除了可以通过 GetProcessTimes 和 GetProcessMemoryInfo API 来获取进程的 CPU 时间和占用内存的情况外,我们还可以通过类似的办法调用 GetProcessIoCounters,GetThreadTimes 等 API 获得更进一步的 IO,线程等信息。

相关阅读:

使用 Rational Functional Tester 进行应用软件系统级自动化性能测试(下)

利用 Rational Functional Tester 实现 ITCL (或者 IBM) 框架

使用Rational Functional Tester 测试应用软件的操作响应速度

对比使用 Rational Robot 和 Rational Functional Tester 进行软件测试

使用 IBM Rational Functional Tester 自动化定制控件

基于Rational Functional Tester 的测试脚本自动修复技术

扩展 Rational Functional Tester 的对象识别技术

使用 IBM Rational Functional Tester 实现全球化应用的自动化测试

使用Rational Functional Tester实现动态的校验点测试

定制用于数据驱动测试的 Rational Functional Tester 脚本

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号