poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。
最近有老学员问我QTP的问题,如何自动控制ORACLE,由于现在POPTEST已经不在培训qtp了,为了帮助学员解决问题我在这里分享个vbs的脚本。
自从安装了Oracle数据库后,我电脑的运行速度满了很多。为此我想了一个办法,让我在不需要使用Oracle数据库的时候,可以轻松地关掉Oracle相关服务。
我安装的Oracle版本为Oracle11g,与Oracle有关的服务如下图所示:
这些服务包括:
1、Oracle ORCL VSS Writer Service(手动启动)
2、OracleDBConsoleorcl(自动启动)
3、OracleJobSchedulerORCL(禁用)
4、OracleMTSRecoveryService(自动启动)
5、OracleOraDb11g_home1ClrAgent(手动)
6、OracleOraDb11g_home1TNSListener(自动启动)
7、OracleServiceORCL(自动启动)
其中,需要我们用脚本关闭的服务,都是开机自启动且当前已启动的服务,一共有四个(2、4、6、7)。
我们可以使用WQL查出这四个服务,逐一关闭即可。
VBS脚本(StopServiceLikeOracle.vbs)如下:
Set
ServiceSet = GetObject(
"winmgmts:"
). _
ExecQuery(
"select * from Win32_Service where name like 'Oracle%' and started = true"
)
For
Each
Service
In
ServiceSet
WScript.Echo
"Deal with service: "
& Service.Name
RetVal = Service.StopService()
If
RetVal = 0
Then
WScript.Echo
"Service stopped: "
& Service.Name
ElseIf
RetVal = 5
Then
WScript.Echo
"Service already stopped: "
& Service.Name
Else
WScript.Echo
"Return value: "
& RetVal
End
if
Next
其中Service下的StopService函数返回值,可以参阅MSDN文档:
https://msdn.microsoft.com/en-us/library/aa393673%28v=vs.85%29.aspx
调用这个VBS脚本的BAT脚本如下:
call C:\Users\Tsybius\Desktop\StopServiceLikeOracle\StopServiceLikeOracle.vbs
pause
注意要使用管理员身份调用此BAT脚本,否则会在关闭服务的时候触发权限不足的错误。使用管理员身份调用BAT脚本时,里面的VBS脚本地址,要写绝对地址(或相对于System32目录的相对地址)。
使用效果如下:
执行完毕后,可以看到各服务都已停止(或在停止的过程中,此时状态列会显示为“停止”)
顺便总结一下,在写WQL查询时,可以使用Windows自带的测试工具wbemtest.exe,步骤如下:
步骤1,在开始菜单中输入wbemtest.exe,找到这个程序后打开改程序。
(限于图片大小限制,上图中省去了开始菜单中间大片的白色无内容区域)
步骤2,点击【连接】按钮,进入连接界面,再点击【连接】
步骤3,连接成功后,点击【查询】按钮,弹出查询界面,在查询界面中输入查询WQL语句,再点击【应用】按钮
步骤4,此时会弹出一个查询结果页面,显示WQL语句的查询结果