海是我向往的地方,吸纳和咆哮是他的魅力!!!

QTP的基础代码(转)

上一篇 / 下一篇  2008-07-04 17:05:07

QTP的基础代码

1 生产随机数列
        第一种方法
         randomize'更新反回的数据
        funcation rand(k,n)
        n="int((k-1)*rnd+1) rand=n
        end funcation

        第二种方法
         n="randomnumber.value(1,255)

        2  当运行到表中的某一行,自动导出表中的所有数据
         row=datatable.getcurrentrow
        if row="5" then
          datatable.export("d:\data.xml")
        end if

        3 参数化密码
        webedit("txtpass").setsecure"sdsdf...."
        如果参数化密码,可以直接在数据表中写入未加密的密码,它会自动识别,即不用把setsecure改为set

        4 如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证

         if browser("web_name").dialog("dialog_name").exist(1) then'如果不出现="false     error_message=browser("web_name").dialog("diaglog_name").static("用户密码错误!".getRoproperty("text")
           if error_message<>(datatable.value("error_info"))then
                 msgbox(error_message)
              end if
             browser("web_name").dialog("diaglog_name").close
          end if

        这里我总结了两点技巧:
          一是:对于dialog中,虽然提示信息对象名称是"用户密码错误",但如果信息对象名称是“该用户不存在”,不用更改会自动识别,我想主要是录制第一遍时,“用户密码错误”只是让运行时能找到这个控制,而不管它是什么内容,因为在对象仓库中,text不是决定该对象的属性
             二是:如果对于提示信息比较长的,可以用mid(error_message,n,m)取一部份特征提示信息进行验证,这样我想可以节省处理时间,又可以避免长度以及空格等字符的处理

        5  datatable.value("num")只在global形式下的一种省略形式;完整形式是:

         datatable.value("num",dtlocalsheet)
        -----向某一列的单元格赋值:
        datatable.value("column_name",dtlocalsheet)="nanjing"
        -----取得某一行具体值:
        datatable.setcurrentrow(n)
        msgbox(datatable.getsheet("global").getparameter("column_name").Rawvalue)
        或者kk=datatable.Rawvalue("column_name","action1")
        ----在run-time时,动态添加表格与数据
        kk=datatable.addsheet("sheet_name").addparameter("column_name","value").name;

        7   wintreeview一些操作
        选择一个条目:wintreeview.select(item)'根是0
        根的名称:wintreeview.getitem(0)

        8  数据库检查点模块:

         sub database_check
        set con="createobject(""adodb.connection")
        con.open "Descrīption="IBM_ODBC;DRIVER=SQL" Server;SERVER="IBM;UID=sa;""&_
                         "PWD="123456;APP=Quick"TestPro;WSID="IBM;DATABASE=IBM_table""
        'access方式:con.open "DRIVER="{Microsoft" Access Driver (*.mdb)};DBQ="d:\test.mdb""
        'Orocle方式:con.open "DRIVER="{Oracle" in OraHome92};SERVER="CESHI;UID=CND_TEST;PWD=CND;DBQ=CESHI;DBA=W;APA=T;

        EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BA

        M=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;""
        set record="createobject(""adodb.recordset")
       sql="select*from ibm_one_table"
        record.open sql,con
        DO
        if(record("ibm_table_column")="kai")then'//查找表格中有多少kai
        num=num+1;
        end if
        record.movenext
        loop until record.eof="true record.close
        set record="nothing con.close
        set con="nothing end sub

   9   换行符

          vbcr----chr(13)回车符// vblf----chr(10)换行符
            vbcrlf----chr(13)+chr(10)结合//type(chr(13)就相当于按了一上键盘上的enter


        10  Run from step有两种方式:
        在Keyword View模式会从本步骤运行到所有action结束
        在expert view模式仅会将本action运行结束

        11  由于对象属性原因,无法识别对象
        -----对于对象属性是变化的,可以参数化/或者用正则表达式
        -----报匹配多个对象错误,可以spy查看对象,添加一个该对象另一个唯一标识属性
        -----有时可以删除对象的变化的属性来解决识别问题
        ------对于多个完全相同的对象,可以采用添加index,location,createtime等特殊属性来识别
          (index:按照程序源码,绘制对象的先后标识对象,所以与其它相同对象是相互依赖,当其它对象发生
          变化后,原先的所有对象index属性要发生变化,开始是0;如index:="0;         location:根据对象的位置进行确定,从上到下,从左到右;
          CreateTime:按照对象被浏览器打开的先后标识对象)
        ------另外换一种思维方式,采取等效的方法;比如用键盘代替鼠标或用操作系统本身特性去解决问题

 

        12  对系统文件的操作

         -------从系统的文件中获取信息及删除文件
          get_file_infor("c:\she.mpg")
           function get_file_infor(url)
            dim fso,f
            set fso="createobject(""scrīpting.filesystemobject")
            set f="fso.getfile(url)"
            f.name:f.size:f.type:f.datacreated'///获取文件信息
            fso.deletefile(url)'/////删除文件
           end function
        --------获取文件夹里所有文件信息
        get_folder_infor("c:\kai")
        function get_folder_infor(folder)
        dim fso,f,f1,n
        set fso="createobject(""scrīpting,filesystemobject")
        set f="fso.getfolder(folder) set fc="f.files for each f1 in fc
        select case f1.name
        case"kai.mpg","she.mpg","dd.mp3"'//检查文件夹里是否含有这些文件
        end select
        next
        end function


        13   等待某个对象出现方法

         y="......waitproperty(""visible",true,10000)


TAG:

 

评分:0

我来说两句

Open Toolbar