自动化测试中如何利用WMI(转)
上一篇 /
下一篇 2009-08-10 20:56:29
/ 个人分类:QTP
WMI即Windows管理规范,是用户管理本地和远程计算机的一种模型。通过它可以访问、配置、管理和监视几乎所有的 Windows 资源。WMI的语法十分简单,基本上常见的命名空间、对象等用几乎一模一样。它对应的是Windows里的WMI服务(winmgmt)
WMI实际是由两部分组成:CIM库和WMI脚本对象库。在具体使用过程中,我们是通过WMI脚本对象库去访问CIM库,管理托管的资源。也就是说,在我们编写脚本的过程大致可以分为这么几步:
1)创建WMI对象脚本库的指针实例;
2)调用其实例的方法,连接到CIM库,并指明需要访问的资源的逻辑位置;
)获得托管资源也就是类的实例的集合;
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 |
收藏
举报
TAG: