QTP - vbs脚本相关收集

上一篇 / 下一篇  2009-09-25 16:44:50

1)生产随机数列
    第一种方法
    randomize'更新反回的数据
    funcation rand(k,n)
    n="int((k-1)*rnd+1) rand=n
    end funcation
   
    第二种方法
    n="randomnumber.value(1,255)
   
2)wintreeview一些操作
    选择一个条目:wintreeview.select(item)'根是0
    根的名称:wintreeview.getitem(0)

3)QTP中用代码连接数据库
    Set Conn = CreateObject("ADODB.Connection" )
    str="DRIVER=Oracle in OraHome92;SERVER=192.168.0.1;DBQ=testdb;user id=test; password=test"
    Conn.open str
    Set Rs = CreateObject ("ADODB.Recordset" )
   sql= "select * from user_table t where table_name = 'XXX' "
    Rs.open sql,conn',1,3

4)QTP如何测试鼠标右键菜单
    以QTP附带的订票网站sample为例,edit控件username鼠标右键,点击paste(第4个菜单项)

    cur_replay_type = Setting.WebPackage("ReplayType")
    'Run mouse operations using the mouse, if 1 using browser events
    Setting.WebPackage("ReplayType") = 2   
    Browser("Browser").Page("Welcome:MercuryTours").WebEdit("userName").Click micRightBtn
    Setting.WebPackage("ReplayType") = cur_replay_type
   
    index=4
    Set WshShell = CreateObject("Wscrīpt.Shell")
    For i = 1 To index
        WshShell.sendKeys "{DOWN}"
    Next
    WshShell.sendKeys "{ENTER}"
    Set WshShell = nothing

5)QTP测试页面字体颜色的办法
    set ōbj = Browser().Page().WebElement().Object
    ' Get the  object
    set iStyle= obj.currentstyle
    ' Get the attribute
    sColor = iStyle.color

6)从QC自动启动qtp如何自动加载插件
    '此函数用于加载指定Test所有的插件,若要运行Test可自己加个qtApp.Test.Run
    Function Load_Addins(testPath)
            Dim qtApp 'As QuickTest.Application
            Dim blnNeedChangeAddins
            Dim arrTestAddins
            Set qtApp = CreateObject("QuickTest.Application")
            arrTestAddins = qtApp.GetAssociatedAddinsForTest(testPath)
            blnNeedChangeAddins = False
            For Each testAddin In arrTestAddins
                    If qtApp.Addins(testAddin).Status <> "Active" Then
                        blnNeedChangeAddins = True
                        Exit For
                    End If
            Next
      If qtApp.Launched And blnNeedChangeAddins Then
              qtApp.Quit
      End If
      If blnNeedChangeAddins Then
          Dim blnActivateOK
          blnActivateOK = qtApp.SetActiveAddins(arrTestAddins, errorDescrīption)
          If Not blnActivateOK Then
                            Call ErrorLog(errorDescrīption)  '这里是调用自己的日志函数,可替换为自己的或注释掉
                            Wscrīpt.Quit
          End If
      End If
      If Not qtApp.Launched Then
          qtApp.Launch
      End If
      qtApp.Visible = True
      qtApp.Open testPath
            '可在此加入qtApp.Test.Run来运行Test
            Set qtApp = Nothing
End Function

7)换行符
    vbcr----chr(13)回车符
    vblf----chr(10)换行符
    vbcrlf----chr(13)+chr(10)结合
    type(chr(13)就相当于按了一上键盘上的enter
   
8)防程序中断方法
    On error resume next
    On error goto 0

9)"is+*"类型function
    isarray    '是否是数组
    isconnected    '判断QTP是否连接到TD
    isdate    '是否是合法的日期类型
    isempty    '判断是否初始化
    isNull    '判断是否为空值
    isNumeric    '判断是否是数字型
    isobject    '判断是否一个功能对象
    isready    '判断设备是否准备就绪
    isRootFolder    '是否是根目录

10)WScript.Shell的一些应用
    set WshShell = CreateObject("WScript.Shell")
    WshShell.SendKeys "{ENTER}"     '模拟键盘进行操作
    WshShell.AppActivate "Calculator"    '启动应用程序
   
    ' 利用粘贴板,实现中文输入   
    strCopy = "软件测试."
    Set bjIE = CreateObject("InternetExplorer.Application")
    objIE.Navigate("about:blank")
    objIE.document.parentwindow.clipboardData.SetData "text", strCopy
    objIE.Quit   
    wait 1
    Setting.WebPackage("ReplayType")=2
    Set bj=createobject("wscrīpt.shell")
    obj.sendkeys "{TAB}"
    wait 2
    obj.sendkeys "^v"
    wait 1
    Setting.WebPackage( "ReplayType")=1

11)childobjects的应用
    childobject可以返回界面上满足条件的对象集合,而且与对象库里是否有这些对象无关,这就可以简化对象库;
    返回的对象集合的count方法可以返回对象个数,这就可以通过下标对单个对象进行操作;在出现index标识对象时
    可以进行运用.如:
    ' Find All WebEdit Objects on aWebPage and Set a Value for a Specific One
    Sub ChildObjects_Example()
        Dim EditToSearch, ValueToSet, NumberOfEdits
        EditToSearch = "credit_card_number"
        ValueToSet = "3558986773230578"
       
        Set Desc = Description.Create()
            oDesc("micclass").Value = "WebEdit"
            oDesc("name").Value = "credit_card_number"
       
        Set EditCollection = Browser("Book a Flight: Mercury").Page("Book a Flight: Mercury").ChildObjects(oDesc)
        NumberOfEdits = EditCollection.Count
       
        For i = 0 To NumberOfEdits - 1
            If EditCollection(i).GetROProperty("name") = EditToSearch Then
               EditCollection(i).Set ValueToSet
            End If
        Next
   
    End Sub

12)关闭所有IE
SystemUtil.CloseProcessByName("iexplore.exe")

13)启动IE的语句:SystemUtil.Run "iexplore.exe", "http://www.***.com/"
   关闭IE或其他程序的语句:
   SystemUtil.CloseProcessByName "app.exe"
   SystemUtil.CloseProcessByWndTitle "Some Title"

14)引用自定义环境变量
    Environment.LoadFromFile "D:\询价\case\环境\huiyuan.xml"
   
15)环境变量有2种,一种是QTP的内置变量,一种是用户自定义的变量。内置变量是可以直接就可以用,自定义环境变量需要在菜单中选择“文件”——>“ 设置”——>“环境”,在变量类型中选择“用户自定义”,然后进行添加,可以对添加的变量全部导出,导出的文件为.xml格式的文档。既然可以导出,那么必然可以导入.xml文件,你可以在该对话框中的选中“从外部文件导入”,然后添加其文件路径即可。(当然这些操作都可以直接使用脚本来实现,如:Environment.LoadFromFile(“FileName”))
    xml文件格式如下:
    <Environment>
            <Variable>                        // 变量定义起始标识
                    <Name>aa</Name>               // 变量名称
                    <Value>11</Value>             // 变量值
                    </Variable>                   // 变量定义结束标识
            <Variable>
                    <Name>bb</Name>
                    <Value>22</Value>
            </Variable>
    </Environment>
    使用的脚本
    Dim aParam3
    aParam3=Environment.Value(“aa”)          // 调用环境变量
    msgbox aParam3

16)弹出输入窗口
    Dim Input
    Input = InputBox("Enter your name")
    MsgBox ("You entered: " & Input)

17)不同数据库检查点手动SQL写法
    QTP插入数据库检查点,手动指定SQL语句的写法。
   
    一、SQL Server格式(本地无需安装SQL Server)
    connectionstring(连接字符串):
    1.本地没有创建数据源的方式
    DRIVER=SQL Server;SERVER=数据库IP地址;UID=用户名;PWD=密码;APP=Microsoft Office 2003;WSID=本地主机名;DATABASE=数据库名
    实例:
    DRIVER=SQL Server;SERVER=10.160.11.10;UID=sa;PWD=sa;APP=Microsoft Office 2003;WSID=RJHLJUN;DATABASE=dcwork

    2.本地已创建数据源的方式
    DSN=数据源名称;UID=用户名;PWD=密码;APP=Microsoft Office 2003;WSID=数据库的主机名;DATABASE=数据库名
    实例:
    DSN=LocalServer;UID=sa;PWD=sa;APP=Microsoft Office 2003;WSID=RJDCWORKTEST;DATABASE=dcwork

    3.SQL语句实例(从数据库表HR_LANGUAGE_TYPE中,查询字段语言名称LANGUAGE_NAME,条件语言名称=中文,按语言名称升序排序结果)
    SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM dcwork.dbo.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME

    二、DB2格式:(本地至少安装DB2 Run-Time Client Lite)
    connectionstring(连接字符串):
    1.本地没有创建数据源的方式
    DRIVER={IBM DB2 ODBC DRIVER};UID=用户名;PWD=密码;MODE=SHARE;DBALIAS=数据库名;
    实例:
    DRIVER={IBM DB2 ODBC DRIVER};UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;
   
    2.本地已创建数据源的方式
    DSN=数据源名称;UID=用户名;PWD=密码;MODE=SHARE;DBALIAS=DCWORK;
    实例:
    DSN=DWCORKDB2;UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;
   
    3.SQL语句实例
    SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM DB2ADMIN.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME

    三、Oracle格式:(本地需要安装Oracle ODBC DRIVER)
    connectionstring(连接字符串):
    1.本地没有创建数据源的方式
    DRIVER={Oracle in OraHome92};SERVER=数据库服务名;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F; XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;
    实例:
    DRIVER={Oracle in OraHome92};SERVER=DCWORK;UID=DCWORK;PWD=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;
   
    2.本地已创建数据源的方式
    DSN= 数据源名称;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10; FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;
    实例:
    DSN=dcworkoracle;UID=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;
   
    3.SQL语句实例
    SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM DCWORK.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME

    四,mysql
    Set Conn = CreateObject("ADODB.Connection" )
    str="DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.1.100;DATABASE=wp_blog;user id=zzz ; password=123456"
    Conn.open str
    Set Rs = CreateObject ("ADODB.Recordset" )
    sql = "select * from `wp_blog`.`blg_webcategory` limit 0, 5000;"
    Rs.open sql,conn,1,3
    If (not Rs.eof) then
    Rs.MoveFirst
    MsgBox Rs(0)
    MsgBox Rs(1)
    MsgBox Rs(2)
    MsgBox Rs(3)
    end if
   
    Rs.close
    Set Rs = Nothing
    Conn.close
    Set Conn = Nothing
   
    五. access
   
    Set Conn = CreateObject("ADODB.Connection" )
    str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/db1.mdb"
    Conn.open str
    Set Rs = CreateObject("ADODB.Recordset")


TAG:

wanghailan0208的个人空间 引用 删除 wanghailan0208   /   2013-03-04 14:34:48
不错 不错
wanghailan0208的个人空间 引用 删除 wanghailan0208   /   2013-03-04 14:34:20
5
crazyzzj的个人空间 引用 删除 crazyzzj   /   2010-12-03 14:14:49
很好,收了。
crazyzzj的个人空间 引用 删除 crazyzzj   /   2010-12-03 14:14:28
5
 

评分:0

我来说两句

日历

« 2024-03-19  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 6814
  • 日志数: 18
  • 建立时间: 2009-09-25
  • 更新时间: 2009-10-02

RSS订阅

Open Toolbar