51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2093|回复: 8
打印 上一主题 下一主题

[求助] qtp check windows service state

[复制链接]
  • TA的每日心情
    奋斗
    2015-9-28 15:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2009-6-4 13:34:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    QTP 怎样实现获得某个服务是否存在,并检查当前状态
    eg:check apache service if exist and check its states
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2009-6-4 16:09:07 | 只看该作者
    检查本机的还是远端主机的?
    本地主机的wmi可以,获取running service列表,然后看看服务在不在

    如果是验证远端的主机当然如果有权限的也可以wmi,登录进去,验证下

    如果没有登录权限就要麻烦点了,要验证服务所在端口是否正确开放等等,具体要看你的需求了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-9-28 15:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2009-6-4 18:27:29 | 只看该作者

    回复 2# 的帖子

    是检查本机的服务

    直接用下面的函数,没有任何返回值,为什么呐?
    Private Function IsServiceRunning(strServiceName)
        Dim strComputer, objWMIService, colRunningServices, objService
       
        ' Connect to local host
        strComputer = "."
        objService="Apache2"

        ' Connect to WMI interface on computer
        Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
       
        ' Select the specified service
        Set colRunningServices = objWMIService.ExecQuery("Select * from Win32_Service where Name='" & strServiceName & "'")
       
        ' Read the services state
        For Each objService in colRunningServices
            Wscript.Echo objService.DisplayName  & VbTab & objService.State
            Call PrintLn("<strong>" & objService.DisplayName  & ": " & objService.State & "</strong>")
            If objService.State = "Running" Then
                IsServiceRunning = True
            Else
                IsServiceRunning = False
            End If
        Next
       
        ' Clean up
        Set objWMIService = Nothing
        Set colRunningServices = Nothing
        Set objService = Nothing
    End Function
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2009-6-4 20:35:29 | 只看该作者
    Function IsServiceRunning(strServiceName)
    IsServiceRunning = False

    Set wmi=GetObject("winmgmts:\\.")
    Set pro_s=wmi.instancesof("win32_Service")


    For Each p In pro_s
            If p.name=strServiceName and  p.started = True Then
                     IsServiceRunning = True
            End If
    Next
    Set pro_s=Nothing
    Set wmi  =Nothing
    End Function

    msgbox  IsServiceRunning("W32Time")

    写了个短点的,请试试,我在WinXP SP3 + QTP 9.5上试过可以了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2009-6-5 08:59:39 | 只看该作者
    收藏,学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-9-28 15:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
     楼主| 发表于 2009-6-5 10:02:31 | 只看该作者

    回复 4# 的帖子

    多谢!已经试过了,可以通过。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2009-6-5 10:42:50 | 只看该作者
    学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2009-6-5 11:35:10 | 只看该作者
    看到了wmi的应用了,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2009-6-5 14:27:35 | 只看该作者
    收藏 学习了 高手啊
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 15:47 , Processed in 0.063757 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表