[分享]在QTP中获取机器的内存占有量的方法。

上一篇 / 下一篇  2007-04-05 13:00:29 / 个人分类:QTP

只是为了解决一些项目的特殊需求要来获得内存的占有的情况。和大家分享。

On Error Resume Next
strComputer = "localhost"
Set ōbjWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfOS_Memory",,48)

For Each objItem in colItems
msgbox objItem.AvailableBytes
Next
Set ōbjWMIService = Nothing
Set colItems = Nothing

TAG: QTP

clei_hs的个人空间 引用 删除 clei_hs   /   2010-10-13 11:27:48
要这么麻烦啊,typeperf 命令可以解决。
风过无息 引用 删除 风过无息   /   2007-04-06 11:11:52
感谢wssgily的分享。
不冲动是年轻人吗? 引用 删除 wssgily   /   2007-04-06 11:02:46
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'函数说明:获取并返回进程内存使用情况
'参数说明:
'          (1)T1,运行次数
'          (2)T2,间隔时间
'          (3)Processname,进程名称
'          (4)sfilename,Excel绝对路径文件名
'前提条件:
'          Excel绝对路径文件名,必须事先创建成功
' 返回结果:
'          无
' 调用方法:
'          MemoryCollection(T1,T2,Processname)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function CreateExcel()
    Set ExcelApp = CreateObject("Excel.Application")
    ExcelApp.Workbooks.Add  
    ExcelApp.Visible = True
    Set CreateExcel = ExcelApp
End Function


Function PutValueInFile (sfilePath, isheet, irow, icolumn, value)
   Set ExcelObj = CreateObject("Excel.Application")
   ExcelObj.Workbooks.Open sfilePath
   Set NewSheet = ExcelObj.Sheets.Item(isheet)
   NewSheet.Cells(irow,icolumn) = value
   ExcelObj.ActiveWorkbook.Save
   ExcelObj.Application.Quit
   Set ExcelObj = Nothing
End Function



Function GetValueInFile (sfilePath, isheet, irow, icolumn)
   Set ExcelObj = CreateObject("Excel.Application")
   ExcelObj.Workbooks.Open sfilePath
   Set NewSheet = ExcelObj.Sheets.Item(isheet)
   value = NewSheet.Cells(irow,icolumn)
   ExcelObj.ActiveWorkbook.Save
   ExcelObj.Application.Quit
   Set ExcelObj = Nothing
   GetValueInFile = value
End Function



Function MemoryCollection(T1,T2,Processname,sfilename)
   Set ExcelObj = CreateObject("Excel.Application")
   ExcelObj.Workbooks.Open sfilename
   Set NewSheet = ExcelObj.Sheets.Item(1)
   Set oShell = CreateObject ("WSCript.shell")
   oShell.run "Taskmgr.exe"
   Dialog("regexpwndtitle:=Windows 任务管理器").Minimize
       For i=1 to T1
            Memory = Dialog("regexpwndtitle:=Windows 任务管理器").WinListView("regexpwndclass:=SysListView32").GetSubItem(ProcessName,"内存使用")
                        value = date&"-"&Time&" : "&rocessName&" 内存使用情况 : "&Memory
                        NewSheet.Cells(i+1,1) = value
                        wait T2
       Next
   Set oShell = Nothing
   ExcelObj.ActiveWorkbook.Save
   ExcelObj.Application.Quit
   Set ExcelObj = Nothing
   Dialog("regexpwndtitle:=Windows 任务管理器").Close
End Function



MemoryCollection 1,1,"QTPro.exe" ,"D:\QTPTemp\Memory State.xls"
 

评分:0

我来说两句

Open Toolbar