自动化测试中如何利用WMI

发表于:2009-8-11 12:10

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

 作者:zte_boy    来源:51Testing博客

  WMI即Windows管理规范,是用户管理本地和远程计算机的一种模型。通过它可以访问、配置、管理和监视几乎所有的 Windows 资源。WMI的语法十分简单,基本上常见的命名空间、对象等用几乎一模一样。它对应的是Windows里的WMI服务(winmgmt)

  WMI实际是由两部分组成:CIM库和WMI脚本对象库。在具体使用过程中,我们是通过WMI脚本对象库去访问CIM库,管理托管的资源。也就是说,在我们编写脚本的过程大致可以分为这么几步:

  1)创建WMI对象脚本库的指针实例;

  2)调用其实例的方法,连接到CIM库,并指明需要访问的资源的逻辑位置;

  3)获得托管资源也就是类的实例的集合;

  4)枚举实例,完成工作

  WMI的命名空间共有16个,不过我们常用的只有两个:

  1)root\cimv2  在这个命名空间里包括了绝大多数与计算机、操作系统相关联的类。

  2)root\default  管理注册表的类

  给出两个实例参考:

  在日志报告中记录测试机器的地址:

Public Function GetIP()
 '获取测试机器的IP
  ComputerName="."
  Dim objWMIService,colItems,objItem,objAddress
 Set ōbjWMIService = GetObject("winmgmts:\\" & ComputerName & "\root\cimv2")
  Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
 For Each objItem in colItems
     For Each objAddress in objItem.IPAddress
         If objAddress <> "" Then
           GetIP = objAddress
           Exit Function
         End If
     Next
  Next
End Function

  如何在判断进程是否存在:

Function ProcessExist(processName)
  For each Process in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_process")
   If Process.Name = processName Then
     ProcessExist = True
     Exit Function
  End If
 Next
 ProcessExist = False
End Function

版权声明:本文出自zte_boy的51Testing软件测试博客:http://www.51testing.com/?161787

转载请保留链接,本文原始出处、作者信息和本声明,否则将追究法律责任。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号