我需要在性能测试期间使用 Windows Management Instrumentation (WMI) 测量 .NET 性能计数器。
测试平台基于 LoadRunner 和 SiteScope。
我使用了以下方法:
- 使用 perfmon 应用程序来识别我需要在“_Global_”范围内监控的 .NET 计数器
- 使用 wbemtest 应用程序翻译 WMI 对象中的计数器并详细说明所需的 Windows Management Instrumentation 查询语言 (WQL) 查询
- 使用 Get-WmiObject cmdlet 使用 PowerShell 翻译功能例程中的计数器提取过程
- 将 PowerShell 代码包装到 java 中以将其执行到 SiteScope“自定义 WMI 监视器”中
- 将 .NET 性能计数器导出到 LoadRunner
这个流程似乎是正确的,但由于安装在性能测试环境中的 Citrix 而变得复杂。
我已经轻松地完成了第 1、2 和 3 步,并且我制定了一个正确的 PowerShell 脚本,它可以从 SiteScope 服务器远程读取 .NET 性能计数器,但是如果我使用 PowerShell 代码执行 java 包装器,我会发现奇怪的值。
- 在某些机器上,我看到计数器不属于“_Global_”范围,但与名为“Health Monitor”的 Citrix 服务相关
- 在其他机器上我看不到任何计数器
Citrix 可以通过哪种方式更改 WMI 对象读取?为什么在 java 中包装我无法获得相同结果的工作 PowerShell 代码?
问候