私は最近、Squishテストスクリプトに取り組んでおり、ソリューションで説明されているようなことをしようとしています: Pythonプロセスで使用される合計メモリ?
私のコードからの関連するスニペットは次のとおりです。
def measureMemory():
w = wmi.WMI('.')
result = w.query("SELECT WorkingSet FROM Win32_PerfRawData_PerfProc_Process WHERE Name=\"some_program\"")
print result
for WorkingSet in result:
print WorkingSet
subset = result[0]
print subset['WorkingSet']
# return result[0]['WorkingSet']
for i in range(50):
memory = measureMemory()
if memory:
# test.passes("%d memory used during undo." % memory)
print memory
残念ながら、以下に示すように、実際に実行しようとするとエラーが発生します。
[<_wmi_object: \\USER-PC\root\cimv2:Win32_PerfRawData_PerfProc_Process.Name="some_program">]
instance of Win32_PerfRawData_PerfProc_Process
{
Name = "some_program";
WorkingSet = "19386368";
};
Traceback (most recent call last):
File "C:\Python26\Test scripts\Testify", line 25, in -toplevel-
memory = measureMemory()
File "C:\Python26\Test scripts\Testify", line 19, in measureMemory
print subset['WorkingSet']
File "C:\Python24\Lib\site-packages\win32com\client\dynamic.py", line 242, in __getitem__
raise TypeError("This object does not support enumeration")
TypeError: This object does not support enumeration
コードを取得した例から重要な変更を加えたとは思わないため、なぜこれがエラーをスローするのかわかりません。私はPython2.4.4を使用していますが、それが重要である場合、残念ながら、それがどれほど役立つとしても、実際にアップグレードすることはできません。