Smartbi V85.6(QTP+vbs)自动化脚本实现自动更换localhost为服务器的ID

背景:在写自动化脚本的时候,遇到一个问题:数据源在跨库的情况下,不能使用localhost而要用本机的IP地址,如何更改数据源的地址(例如:http://localhost:18080/mysql)改为本机或服务器的IP地址(http://168.10.10.1:18080/mysql),经过参考网上的一些方法,我封装了一下两个函数来实现。

 

CrossdatabaseQuery

' ***************************************************************************

' Purpose:          把跨库查询的数据库连接地址中的localhost改为服务器的ID                 

' Input:            dbID(数据库ID),dbName(数据库别名)

' Return:           null

' Created:          Huangzhenxu@2019-9-18

' Modified:         Huangzhenxu@2019-9-23

'                            

' **************************************************************************

Function CrossdatabaseQuery(dbID,dbName)

        Dim dbEdit

        Set dbEdit=Browser("公共资源").Page("定制管理页面").WebEdit("class:=.*inputtext","html tag:=INPUT","name:=textfieldConnectionString")

         OpenSourceById dbID,dbName

         If not dbEdit.Exist(5) then

            FReporterFail "打开跨库查询要修改localhost的数据库","打开失败","透视分析"

            Exit Function

         End If

         

 dbEdit.Set Replace(dbEdit.GetROProperty("value"),"localhost",GetIPMAC("."))

         

         Browser("公共资源").Page("定制管理页面").WebButton("class:=.*barbtn mg-left","html tag:=INPUT","name:=测试连接\(T\)").Click

         If not Browser("公共资源").Page("定制管理页面").WebElement("html tag:=DIV","innerhtml:=测试通过!").Exist(5) Then

             FReporterFail "测试连接","连接失败","公共资源"

             Exit Function

         End If

          Browser("公共资源").Page("定制管理页面").WebElement("class:=layui-layer-btn0","innertext:=确定\(O\)","html tag:=A").Click

         waitUntil Browser("公共资源").Page("定制管理页面").WebButton("class:=_buttonOk barbtn mg-left","html tag:=INPUT","value:=保存\(S\)"),5,true

         Browser("公共资源").Page("定制管理页面").WebButton("class:=_buttonOk barbtn mg-left","html tag:=INPUT","value:=保存\(S\)").Click

         waitUntil Browser("公共资源").Page("定制管理页面").WebElement("class:=layui-layer-btn0","html tag:=A","innertext:=确定\(O\)"),5,true

         Browser("公共资源").Page("定制管理页面").WebElement("class:=layui-layer-btn0","html tag:=A","innertext:=确定\(O\)").Click

End Function

 

 

 

 

 

 

GetIPMAC

' ***************************************************************************

' Purpose:          获取服务器(或本地)IP地址               

' Input:            ComputerName(计算机名,推荐用 "." )

' Return:           服务器IP地址

' Created:          Huangzhenxu@2019-9-23

' Modified:         Huangzhenxu@2019-9-23

'                            

' **************************************************************************

Function GetIPMAC(ComputerName)

Dim objWMIService,colItems,objItem,objAddress

Set objWMIService = 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

  GetIPMAC = objAddress

  Exit For

 End If  

 Next

 Exit For

Next

End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值