0

我需要在性能测试期间使用 Windows Management Instrumentation (WMI) 测量 .NET 性能计数器。

测试平台基于 LoadRunner 和 SiteScope。

我使用了以下方法:

  1. 使用 perfmon 应用程序来识别我需要在“_Global_”范围内监控的 .NET 计数器
  2. 使用 wbemtest 应用程序翻译 WMI 对象中的计数器并详细说明所需的 Windows Management Instrumentation 查询语言 (WQL) 查询
  3. 使用 Get-WmiObject cmdlet 使用 PowerShell 翻译功能例程中的计数器提取过程
  4. 将 PowerShell 代码包装到 java 中以将其执行到 SiteScope“自定义 WMI 监视器”中
  5. 将 .NET 性能计数器导出到 LoadRunner

这个流程似乎是正确的,但由于安装在性能测试环境中的 Citrix 而变得复杂。

我已经轻松地完成了第 1、2 和 3 步,并且我制定了一个正确的 PowerShell 脚本,它可以从 SiteScope 服务器远程读取 .NET 性能计数器,但是如果我使用 PowerShell 代码执行 java 包装器,我会发现奇怪的值。

  • 在某些机器上,我看到计数器不属于“_Global_”范围,但与名为“Health Monitor”的 Citrix 服务相关
  • 在其他机器上我看不到任何计数器

Citrix 可以通过哪种方式更改 WMI 对象读取?为什么在 java 中包装我无法获得相同结果的工作 PowerShell 代码?

问候

4

0 回答 0