致力于测试团队建设和自动化测试开发,欢迎有兴趣者一起研究讨论

自动化测试中如何利用WMI

上一篇 / 下一篇  2008-08-25 13:24:56 / 个人分类:Automation

51Testing软件测试网_|{y"Pos%\7E

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

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

6GmD"WC O051Testing软件测试网6x^!quP jqXu T

1)创建WMI对象脚本库的指针实例;51Testing软件测试网#u+a-_\Q+Tt{7C

7Aq0n8?y)ZkfYs02)调用其实例的方法,连接到CIM库,并指明需要访问的资源的逻辑位置;51Testing软件测试网U p W s LR{\3_

KxRzbR}'|$` x$B03)获得托管资源也就是类的实例的集合;51Testing软件测试网xoY,w,{,m7o

51Testing软件测试网[\.mu@!T] j

4)枚举实例,完成工作

&FFE.tT\J$}z0C0

$h+M4G'[+|6t9G+Aye0WMI的命名空间共有16个,不过我们常用的只有两个:

5P2HY.W,fbp%Ui!mL051Testing软件测试网"z1?Tb Sz

1)root\cimv2  在这个命名空间里包括了绝大多数与计算机、操作系统相关联的类。51Testing软件测试网qs5q`E GT9S lq

G2c6Lw5T{*Mu02)root\default  管理注册表的类51Testing软件测试网u ? sfh4z0[

!G$k:S;YZ#vrcl0给出两个实例参考:51Testing软件测试网^?5LGs

51Testing软件测试网VG ]vF E"Em V

51Testing软件测试网0n-X]5T DFw1E

日志报告中记录测试机器的地址:51Testing软件测试网 t5zfd/TS4t

51Testing软件测试网5MaK#[ ug*RJ;K

Public Function GetIP()
\/x'}0p QU"X1Z0 '获取测试机器的IP51Testing软件测试网WN8^wJAQ
 ComputerName="."51Testing软件测试网 I(KH cs E&B6X
 Dim objWMIService,colItems,objItem,objAddress51Testing软件测试网/TMO e!M-l p
 Set ōbjWMIService = GetObject("winmgmts:\\" & ComputerName & "\root\cimv2")
5^aP6u8|L"}!F0 Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
` n p6g4m0 For Each objItem in colItems
J!w6d4lQ0     For Each objAddress in objItem.IPAddress51Testing软件测试网GZ.fS9Eo
         If objAddress <> "" Then
%ac&ZE;n,\,R4Qf0             GetIP = objAddress
(W;HO[*{#qy3rJE0             Exit Function
W.S|^V}X7K w0         End If
g!x(AUX i\)Q0     Next51Testing软件测试网jJH]KP\:z
 Next51Testing软件测试网_uT)[ E i7m
End Function51Testing软件测试网,X j`[S

51Testing软件测试网d3r{;zl8fb-],?B yw

51Testing软件测试网,f|!S"W:PA

7A.jV `3J0如何在判断进程是否存在

LIvN%U+{'}J0

V bMW-z}S.A!O0Function ProcessExist(processName)
h*Cb4a2M+c6tq3G)i0 For each Process in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_process")51Testing软件测试网!S;Q!~$|g Au~/W0|k
   If Process.Name = processName Then51Testing软件测试网D&v _L,Q'G#a!|
    ProcessExist = True
2gR bFt%t0    Exit Function 
a!M{FQ&[0   End If51Testing软件测试网hCQ)KH5t8qUPL
 Next51Testing软件测试网?.PD7JAq+Uud
 ProcessExist = False
Jh7nPb0J4K0End Function

7^HTW W*~*D|)k[%Mh0
51Testing软件测试网g8o'U%i hf X


TAG: Automation

 

评分:0

我来说两句

日历

« 2023-10-13  
1234567
891011121314
15161718192021
22232425262728
293031    

数据统计

  • 访问量: 89179
  • 日志数: 79
  • 图片数: 1
  • 建立时间: 2008-05-18
  • 更新时间: 2009-06-04

RSS订阅

Open Toolbar