没有什么不可以,只要你相信,只要你愿意去实现!

发布新日志

  • QTP 的基础代码结构累积2

    2010-03-15 22:03:59

    link:http://www.51testing.com/?uid-72002-action-viewspace-itemid-210607

    '关闭所有打开的IE进程
    systemutil.CloseProcessByName("iexplore.exe")

    '设置对象超时时间:为1000S
    setting("defaulttimeout")=1000000  
    *defaulttimeout
    *Sets or retrieves the delay for finding objects. DefaultTimeOut is a per-test setting.

    '调用VBS文件
    executefile "D:\chuchangceshi\public.vbs"

    'systemutil对象
    SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","","C:\Documents and Settings\test","open","3"

    open--  Opens the file specified by the FileName parameter. The file can be an executable file, a document file,   or a folder. Non-executable files are open in the associated application. 
     3--   Activates the window and displays it as a maximized window.

    'Opens a specified URL in the browser 打开一个指定的URL地址
    object.Navigate Location, [TargetFrame], [PostData], [Headers]

    Browser("Browser").Navigate URL

    '常见的IE浏览器打开窗口的操作语句
    Browser("Browser").Dialog("选择数字证书").WinListView("您要查看的网站要求标识。请选择证书。").Select "normal"

    'excel文件读取方式
     ==1
     Dim excel_ob,my_excel_workbook,my_excel_worksheet,range1,range2
     Set excel_ob =CreateObject("excel.application")
     excel_ob.Visible=True
     setmy_excel_workbook=excel_ob.Workbooks.Open("D:\MyVBscript\vba_excel.xls")
     Setmy_excel_worksheet=my_excel_workbook.Worksheets("test001")
     Sub test_copy()
      my_excel_worksheet.range("b1")=28
      Set range1=my_excel_worksheet.range("b1")
      Set range2=my_excel_worksheet.range("c3")
      range1.copy range2
      excel_ob.Workbooks.Close
      window("text:=microsoft excel").close
      'my_excel_worksheet.range("b1").copy my_excel_worksheet.range("b2")
     End Sub
      ==2
     Public FunctionQTP_Read_Excel(pathway,sheetname,x,y)
      Dim srcData,srcDoc,ret
      Set srcData = CreateObject("Excel.Application")
      srcData.Visible = True
      Set srcDoc = srcData.Workbooks.Open(pathway)
      srcDoc.Worksheets(sheetname).Activate
      ret = srcDoc.Worksheets(sheetname).Cells(x,y).value
      srcData.Workbooks.Close
      Window("text:=Microsoft Excel").Close
      QTP_Read_Excel = ret
     
    End Function

    '调用已有的QTP脚本 RunAction
    RunAction ActionName, [IterationMode , IterationRange , Parameters]
       ActionName:(String) The name of the action. 
       IterationMode:(Pre-defined constant ) Optional.
         oneIteration or 0 (Default) - runs the action only once
         rngIterations or 1 - runs iterations according to the third parameter.
       IterationRange:Not always required.
       Parameters:The values and storage locations for the called action's input and output parameters.
       eg:
     RunAction "https_portal_denglu [Login]", oneIteration

    '判断指定文件是否存在
    Function ReportFileStatus(filespec)
       Dim fso, msg
      Set fso = CreateObject("Scripting.FileSystemObject")
       If (fso.FileExists(filespec)) Then
          msg = True
       Else
          msg = False
       End If
       ReportFileStatus = msg
    End Function

    '获得当前对象属性信息 GetROProperty
    object.GetROProperty (Property, [PropData])
     object: Any Web test object.
        Property: Required. A String value. The property to retrieve from the object.
        PropData: Optional. A Variant value. Not in use.
    Return Type:A Variant value.  
     eg:'HWND是Browser("sts demo 演示")的一项属性
     Browser("sts demo 演示").GetROProperty("HWND")

    '使用eqv
    Performs a logical equivalence on two expressions
     result = expression1 Eqv expression2
             '比较两个表达式的值,当且仅当 表达式1和表达式2同为true或同为false时,结果才为true

    '生成结果报告 Reporter.ReportEvent
    Reporter.ReportEvent EventStatus, ReportStepName, Details [, in]
     EventStatus :
      0 or micPass: Causes the status of this step to be passed and sends the specified message to the report.
      1 or micFail: Causes the status of this step to be failed and sends the specified message to the report.
        When this step runs, the test or component fails.
      2 or micDone: Sends a message to the report without affecting the pass/fail status of the test or component.
      3 or micWarning: Sends a warning message to the report, but does not cause the test or component to
        stop running, and does not affect the pass/fail status of the test or component.
     ReportStepName: Name of the intended step in the report (object name).
     Details :Description of the report event. The string will be displayed in the step details frame. in the report.
     eg:
     If check eqv true Then
      reporter.ReportEvent 0,"pass","添加BS应用自动登录功能正确"
        else
      reporter.ReportEvent 1,"fail","添加BS应用自动登录功能失败"
        End If

    获取表格对象的行数 RowCount
    object.RowCount
    Returns the number of rows in the table.
    row=Browser("JIT Cinas").Page("JIT Cinas").Frame("mainFrame_4").WebTable("应用信息列表").RowCount

    '获取列表对象单元格的值 GetCellData
    object.GetCellData (vtRow, vtColumn)
    Returns the text contained in the specified cell.
     object: A test object of type WebTable.
     vtRow: Required. A Variant value. The row number where the cell is located. The first row in the table is numbered 1.
     vtColumn: Required. A Variant value. The column number where the cell is located. The first column in the table is numbered 1.
     eg:
       micheng=Browser("JIT Cinas").Page("JIT Cinas").Frame("mainFrame_4").WebTable("应用信息列表").GetCellData(i,1) 

    '对运行场景抓图 CaptureBitmap
    object.CaptureBitmap FullFileName, [OverrideExisting]
     Saves a screen capture of the object as a .png or .bmp image using the specified file name.
     object: Any Standard Windows test object.
     FullFileName: Required. A String value. 
     OverrideExisting: Optional. A Boolean value. Indicates whether the captured image should be overwritten if the image file already exists in the test results folder.    Possible values: True/False (default) 

    '按照索引获取对象中的值
       '获取表格对象的行数

         row=Browser("JIT Cinas").Page("JIT Cinas").Frame("mainFrame_4").WebTable("应用信息列表").RowCount
       '判断名称为bs的应用所在的行数,获取到配置信息图片的索引值
         dex=2 '索引的初始值
         For i=3 to row
            micheng=Browser("JIT Cinas").Page("JIT Cinas").Frame("mainFrame_4").WebTable("应用信息列表").GetCellData(i,1) 
       '获取所在行的应用名称
            If  trim(micheng)=trim("cs") Then
                         Exit for
            End If
            dex=dex+3 '进入下一行,图片索引值加3
          Next

    '关闭指定的进程
    systemutil.CloseProcessByName("iexplore.exe")'关闭所有打开的IE进程

  • QTP 的基础代码结构累积

    2010-03-15 21:52:06

    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("kai",dtlocalsheet)="nanjing"

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

      -----取得某一具体行的值:

      datatable.setcurrentrow(n);

      msgbox(datatable.getsheet("global").getparameter("kai").Rawvalue)

      或者kk=datatable.Rawvalue("kai","action1")

      -----在run-time期间,添加一个action和参数

      kk=datatable.addsheet("name").addparameter("kai","ddd").name'/value

      6 with dialog("name")'可以省好多代码,看着也简洁

      content=.wintreeview

      end with

      7 wintreeview.select(item)(根是0,列表第一个也是0)

      wintreeview.getcontent

      wintreeview.getitem(整行)+";"+

      winlistview.getitem(行中的第一个字符段)

      wincheckbox("").set"off"'/on

    8 数据库检查点:

      sub getdata

      set con=createobject("adodb.connection")

      con.open("descrīption=mod;driver=sqlserver;server=hp\sqlserver;uid=sa;"&_

      "pwd=11111;APP=qtp;WSID=hp;database=MOD31" '用sqlserver方式

      Con.open "DRIVER = {Microsoft Access Driver (*.mdb)};DBQ=D:\Testdb.mdb" '用access方式

      set record=createobject("adodb.recordset")

      sql="select * from m3_program" '选择具体满足一条件的:sql="select* from m3_program where "

      record.open sql,con

      if(not record.eof) then

      record.movenext

      msgbox("p_name")

      end if

      record.close

      set record=nothing

      con.close

      set con=nothing

      end sub

      '如果没有查到内容,在结果中不会报错,也不会弹出窗口

      9 vbcr----chr(13)回车符

      vblf----chr(10)换行符

      vbcrlf----chr(13)+chr(10)结合

      10 step run has two ways

      一是在key-driven页面,另一个是在代码页面,前者走完项目,后者只是本acton第一行

      11 对于时间,日期等的格式检查(一种是正则表达式,另一种是输出对比,如果不好对比,用mid截取一部分对比)

      12 对于一些列表框或树结构,如果发生结点名称发生变化,此时如果报没有彼配的对象,此时可以把更改后面的名称如_2

      13 对于动态变化的对象,要分清是对像还是属性;对于属性可以用gettoproperty("ddd");得到;而对于由于动态无法识别对像可以用描述性脚本:

      如:Set ōbject= Descrīption.Create()

      Object("regexpwndclass").Value="HtmlButton"

      Object("regexpwndtitle").Value="登陆"

      browser("ss").page("a").button(Object).click

      14 对于属性是变化的,有时可以把该属性从识别对象里删除

      15 从系统的文件中获取信息及删除文件

      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)

      msgbox(f.datecreated)

      f.name:f.size:f.type

      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

      16 四舍五入可以在后面+0.5,进行自动解决

    17 y=-------waitproperty("visible",true,10000)

      18 on error resume next

      on error goto o

      19 window("").wintreeview("systreeview32").TYpe micctrldown+"p"+micctrlup

      20 定义数组 name=array(1,2,"aa","bb");name(0)=1

      21 进行日期YYYY-MM-DD的格式检查:

      Function RegExpTest(patrn, strng)

      Dim regEx, Match, Matches ' Create variable.

      Set regEx = New RegExp ' Create a regular expression.

      regEx.Pattern = patrn ' Set pattern.

      regEx.IgnoreCase = True ' Set case insensitivity.

      regEx.Global = True ' Set global applicability.

      Set Matches = regEx.Execute(strng) ' Execute search.

      For Each Match in Matches ' Iterate Matches collection.

      RetStr = RetStr & "Match found at position "

      RetStr = RetStr & Match.FirstIndex & ". Match Value is '"

      RetStr = RetStr & Match.Value & "'." & vbCRLF

      Next

      RegExpTest = RetStr

      End Function

      date_pattern="^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$"

      result_message=RegExpTest(date_pattern, inputbox("请你输入要检查的时间:"))

      Select case result_message

      Case ""

      msgbox("你输入的日期格式与标准不匹配")

      case else MsgBox(result_message)

      相关阅读:

      QTP中的描述性编程

      QTP脚本还可以这样写

      QTP的登陆脚本设计

      QTP中常有的VB函数

       QTP中的参数传递

      手工编写QTP测试脚本

      QTP脚本触发WEB客户端控件的事件

    link:

    http://www.51testing.com/html/88/n-6388-3.html

  • QTP编码小结

    2010-03-04 15:49:40

    QTP编码小知识 六 参数】

      相信很多人刚接手的新项目,理解自动化脚本中参数的传递是一个很耗费时间的过程,我们需要时间去吸收和理解它。这也不禁让人觉得,自动化项目的中,参数形式的拟定尤为重要,它也是在框架搭建时候的必备工作之一。无疑一个好的参数形式的拟定工作也是决定项目后期维护成本的重要因素。……

      详情请查看:http://www.51testing.com/html/87/n-170187.html

    【QTP编码小知识 五 “山寨”WebElement】

      随着web开发技术变得越来越复杂,使QTP在处理web对象时也变得不那么容易,但是很多时候还是能通过调整对象属性的技巧,达到正确识别我们想要的对象(Web元素)。这同时也就提出了更高的要求,要能够了解一些Web开发的知识,分析测试页面的源程序。当然光分析仍然是有些马后炮,更好的应该是在界面开发时就为以后自动化测试做准备了。

      确实在QTP的对象识别过程中,让QTP用户尤为头疼的就是对象识别。而当QTP识别不了对象时候,就不负责任的丢了一个"WebElement"给大家,而每个人都觉得这不是我想要的结果。那么如何更好的把这个WebElement做出我们想要的效果与操作呢?

      ……

      详情请查看:http://www.51testing.com/html/74/n-108374.html


    【QTP编码小知识 四 对象库与索引值】

      偏向喜欢使用对象库操作的QTP用户,在添加对象时候,会出现某几个子对象,都识别成一个对象,因为里面的所有属性几乎是一样的,很为难的不知道如何解决这个问题,借鉴与描述编程中的索引值index的使用,例如:

      dim Input_Dec
      set Input_Dec=description.create()
      Input_Dec("Html tag").value="Input"
      Input_Dec("Index").value=1
      .....

      如何把index添加进去或者如何把这些描述的东西添加进去?在这里给了大家一个小的html page,大家下载下去后,可以先试试看,然后再看看下文,如何使用Index。自然这个不会识别成一个对象,因为它们的类型有区别,只是特定或者模拟某些情况而已。

      ……

      详情请查看:http://www.51testing.com/?action-viewnews-itemid-96772


    【QTP编码小知识 三 IE内存释放】

      由于编码小知识出到第三帖,特此帖送出API手册一份,想要会自动化,还离不开Win32 API。

      先说下小编对关于Web内存的一些小看法,之前已经有讨论过关于IE内存占用居高不下,导致了QTP对Web页面的操作出现种种问题。今天和大家说下简单的内存释放方法。首先我们使用的将浏览器最小化然后再做最大化的操作来实现这个释放工作。很多人知道,IE最小化后,内存占用不到2M,最大化后,会比之前最小化前占的内存更少。

      ……

      详情请查看:http://www.51testing.com/?action-viewnews-itemid-94271


    【QTP编码小知识 二】

      大家看看下面代码,代码是运行在谷歌的主页面,如果大家要试的话,大家同样也可以试试这代码的运行结果。

         Dim LinkDes
         Set LinkDes=description.Create()
         LinkDes("html tag").value="A"

         Set LinkObj=browser("Google").Page("Google").ChildObjects(LinkDes)
         For i=0 to LinkObj.count
            LinkObj(i).click
            browser("Google").Back
         Next

      代码运行完后,你会发现,原来在循环第2次连接点击的时候,抛出了一个“General run error”。这个是为什么会这样?之前也同样有论坛的朋友问到这样的问题,所以今天就在这里提到。

      问题是出在了对第一个连接点击后,做了返回操作所导致的,在第一次back的时候,LinkObj对象就已经丢失了,失效了。所以你在做第2次操作的时候,LinkObj(i)就已经找不到了,因此它会出错。

      正确的方法,这个也是我目前想到的,或者还有其它达人能做更好的方法出来。

      ……

      详情请查看:http://www.51testing.com/html/52/n-93852.html


    【QTP编码小知识 一】

      你学习过了编程,知道了,如果and的条件,如果有一个否,哪么就全部为否,自然是这个是逻辑条件的问题,你有学过,所以你写成2个and的方法去简略代码。但问题往往发生在这里,就和变魔术一样,大人看不出,但小孩就可以看出里面的问题,因为成人的思想会被自己所谓的经验所左右。

      这段代码的错误地方发生在那里,估计读到这里的人大部分已经猜到了,错误会发生在第1片中的2 3行!!你会问为什么?这应该没错才对的呀?

      详情请查看:http://www.51testing.com/?action-viewnews-itemid-93797

  • QTP视频总汇

    2009-07-01 11:30:11

    为了自己查看比较方便,对BOOBOOKE内所有的QTP视频做个汇总贴.51Testing软件测试网a&xHk2Qp
    ================================================================================51Testing软件测试网 {(u7o#i @.q*[1e
    [V] QTP 9的新特性 1 - 英文视频
    urdL*B| Gb.C177152http://www.boobooke.com/v/bbk105051Testing软件测试网 n4m%V Blt|y%J$Z
    是QTP 9软件中自带的视频讲座,英语讲座51Testing软件测试网9{-M BQuj`g%G,K
    [V] QTP 9的新特性 2 - 英文视频
    AY5h7FZ,Tr4E177152http://www.boobooke.com/v/bbk1051
    j4q m?J177152QTP 9软件中自带的视频讲座,英语发音51Testing软件测试网c6c iBd jW-Gn
    [V] QTP 9的新特性 3 - 英文视频
    GZ5CTu177152http://www.boobooke.com/v/bbk1052
    7~ ` IK6Vu5_9QE:k177152QTP 9软件自带的视频讲座,英语发音,希望大家喜欢。
    e0O,b ]H177152这些视频都在QTP 9的安装目录的help目录下面。51Testing软件测试网twCW1^)M1L7G2t
    help目录包括了QTP全部的联机文档和帮助。
    G:E u#{%@ V1o0k177152================================================================================
    K7B8TJG%mAj177152[V]小布老师QTP系列培训视频 - 1
    @9~XA!dE g177152http://www.boobooke.com/v/bbk1043
    Y kn!M0S3d177152本讲讲了QTP的概述,希望大家喜欢。51Testing软件测试网5^ LXK3r-d-kh$J2P
    [V] 小布老师QTP系列培训视频 - 2
    |#cu Z3S3K5g177152http://www.boobooke.com/v/bbk1044
    Eo$j ? n.c,Ts177152本讲讲了测试规划,希望大家喜欢。51Testing软件测试网t.X ]f:F&`BM
    [V] 小布老师QTP系列培训视频 - 3
    WDLF*F L7K;I177152http://www.boobooke.com/v/bbk1045
    {QL y)A#s s177152本讲讲了录制测试脚本,是使用QTP的第一步,希望大家喜欢。
    ^"h(~!Gy*YdLd177152================================================================================51Testing软件测试网 g[&^,{x7kYq0^.r2_
    小强作品-零基础学习软件测试-qtp-目录
    +r[@{bx-d1771521 qtp目录分析
    JBMT6f9z1771522 qtp界面分析51Testing软件测试网0PN(dx5ej }
    3 qtp示例程序分析
    Qsj5~3d1771524 qtp学习指南51Testing软件测试网1j9?nm1L!k
    5 qtp基本操作录制与回放
    #]0Z.s1V`&Oy1771526 qtp的三种录制方式
    v[Pr N~1771527 增强help步骤51Testing软件测试网_&m\Wc
    8 checkpoint
    :P[&EQ6k w2oa1771529 参数化
    5sP9eI x)N b&[17715210 Tools下的工具介绍
    EV"K7B5P&o.p$LO17715211 qtp插件分析51Testing软件测试网 c.zM7j(D3W D
    12 qtp测试用例设计考题51Testing软件测试网 N6Xg~a[8O3P@k&m
    13 vbs
    ,C5U v6x6_Q17715214 recovery Scenarios51Testing软件测试网/b$i\bA5Pl
    15 虚拟对象
    ]P9Obb$QrO/z17715216 专家视图测试脚本开发51Testing软件测试网sXN'V},o*uJ
    17 qtp描述性编程
    u`WQ1vf(rV17715218 qtp测试脚本编写规范
    ^k7SwOLsWj*D17715251Testing软件测试网t'vO/Lv7bd
    [V]小强老师系列作品:QTP的安装目录分析
    'qM'Sr-aL w3R"z177152http://www.boobooke.com/v/bbk1590
    ;P;w |fG\5l177152在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP安装后的各个目录,重点介绍了大家需要关注的东西,希望对大家有帮助。51Testing软件测试网Z d `]TlZ]
    [V] 小强老师系列作品:QTP界面剖析
    z~&v]N%t177152http://www.boobooke.com/v/bbk1594
    +WJ|7E{ws177152本集是承接上集,小强老师向刚刚接触QTP的朋友介绍了QTP的常用界面和菜单选项,希望对大家有帮助。51Testing软件测试网#x[D+q+g3z3jn4f
    [V] 小强老师系列作品:QTP示例程序之研究
    r @W(J:mX#Um*w177152http://www.boobooke.com/v/bbk159851Testing软件测试网*s O}wKyN/[6s
    本集是承接上集,小强老师向刚刚接触QTP的朋友介绍了QTP自带的示例程序-飞机订票系统,别小看这个示例程序,小程序里面有大文章,且听小强老师给你道来, 希望对大家有帮助。
    @]k5LX0Z177152[V] 小强老师系列作品:QTP学习指南
    8aME^(e8kk"S177152http://www.boobooke.com/v/bbk1515
    J7Yp+H;X_ mNKs177152在本集中,小强老师根据自己的经验和体会,向刚刚接触QTP的朋友介绍了如何学习QTP的一些方法和经验,希望对大家有帮助。
    6B-c;D#v{;Z5_ I177152[V] 小强老师系列作品:QTP脚本的录制和回放
    7d(D$?5b$a[/b177152http://www.boobooke.com/v/bbk1591
    *I$~OrTz)L177152在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP最基本的脚本录制回放的功能,希望对大家有帮助。
    US2Z%]&IhUF177152[V] 小强老师系列作品:QTP三种录制方式51Testing软件测试网Z`,O%?7}Z|
    http://www.boobooke.com/v/bbk1516
    5u5t.Z2EL177152这是该系列讲座的第三集。在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP录制脚本的三种模式,希望对大家有帮助。
    P{9@3? e^3uSR177152[V] 小强老师系列作品:QTP检查点之研究
    .j_@;xAQq.Z,XF177152http://www.boobooke.com/v/bbk1595
    o#gw3JC{q&SS177152本集是承接上集,小强老师向刚刚接触QTP的朋友介绍了QTP的重要功能 - 检查点,希望对大家有帮助。
    c_'DA8C"y^177152[V] 小强老师系列作品:QTP参数化之研究51Testing软件测试网"},EM0S'c,A)zt
    http://www.boobooke.com/v/bbk1599
    xUr#q0F'KVv177152本集是承接上集,小强老师向刚刚接触QTP的朋友介绍了QTP重要的功能-参数化, 希望对大家有帮助。51Testing软件测试网 Goh]*nt xF
    [V] 小强老师系列作品:QTP的常用工具阐释
    /q%gau}[p!r177152http://www.boobooke.com/v/bbk158951Testing软件测试网4^t{G9` D
    在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP附带的常用工具,希望对大家有帮助。
    k(`5`?r7C(Q177152[V] 小强老师系列作品:QTP插件分析51Testing软件测试网$E$VsRk)WS9zAIYY
    http://www.boobooke.com/v/bbk168951Testing软件测试网%\9l9@"qa
    在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP插件的基本知识,希望对大家有帮助。51Testing软件测试网H6W(ND"V_{,boU_
    [V] 小强老师系列作品:QTP认证考试试题分析一则51Testing软件测试网%AUAdyB
    http://www.boobooke.com/v/bbk1575
    k$U| S9C3U|*W177152小强老师针对想入行软件测试行业的菜鸟级别的朋友,推出了零基础学习软件测试系列培训视频。
    D5j?J6Qa0ca177152在本集中,小强老师根据自己的经验和体会,向刚刚接触QTP的朋友介绍了如何QTP认证考试的一道典型题目的分析.
    _pI2n_`mPs{177152[V] 小强老师系列作品:QTP中VBS介绍
    [f?N%\X:grv'Pc e k177152http://www.boobooke.com/v/bbk1621
    ]'Gi{(V S177152在本集中,小强老师给大家介绍了QTP脚本语言VBS的基本知识,希望大家喜欢。51Testing软件测试网&e-Y5wa-E_L
    [V] 小强老师系列作品:QTP之场景恢复(Recovery Scenarios)
    #@o"d*zgz177152http://www.boobooke.com/v/bbk1692
    !k,{F'x b aD j-e177152在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP的场景恢复(Recovery Scenarios)的基本知识,希望对大家有帮助。
    /m1@Qy/P7Ar(_To!r1o177152[V] 小强老师系列作品:QTP中的虚拟对象入门51Testing软件测试网%WM"J-h F
    http://www.boobooke.com/v/bbk1695
    .aE8PR Xf"@177152在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP中虚拟对象的基本知识,希望对大家有帮助。51Testing软件测试网6VT~hX2w/K y7OV
    [V] 小强老师系列作品:QTP之专家视图和测试脚本开发51Testing软件测试网 s,bTK&S6t+TR
    http://www.boobooke.com/v/bbk1690
    4y3YK*@T:c9` tjb ~v m`177152在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP的专家视图,并介绍了脚本开发的几个重要对象,希望对大家有帮助。
    s)J$Rv G)R(a177152[V] 小强老师系列作品:QTP之描述性编程
    ut4T-|w"l2O177152http://www.boobooke.com/v/bbk1691
    su!j0Tu_'kDE,y177152在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP的描述性编程的基本知识,希望对大家有帮助。51Testing软件测试网)t [ D#R^5o;r u
    [V] 小强老师系列作品:QTP之测试脚本开发规范51Testing软件测试网 IA8P6G/t @4U(M W+ar
    http://www.boobooke.com/v/bbk1693
    3UOXk`1^177152在本集中,小强老师向刚刚接触QTP的朋友介绍了QTP脚本开发的基本规范,希望对大家有帮助。51Testing软件测试网FH`HN.C
    [V] 小强老师系列作品:QTP脚本的增强一则
    T [BpK Tg0F177152http://www.boobooke.com/v/bbk159251Testing软件测试网;wJ3h.jG)C
    本集是承接上集,小强老师向刚刚接触QTP的朋友介绍了如何对录制的脚本进行增强,希望对大家有帮助。51Testing软件测试网)my#?.p`x"zX
    51Testing软件测试网*]v9t&tHF%?LF
    小强作品:QTP之Excel操作
    Hc`%nw177152http://www.boobooke.com/v/bbk2835
    5oEI'i5vG7A%c17715251Testing软件测试网:Nq S}On/Y
    小强作品:QTP之描述性编程实例
    )D7R9|vY8`[2QW177152http://www.boobooke.com/v/bbk283651Testing软件测试网)E/` ~8\f;Z3RBIg"l
    51Testing软件测试网;V!e8X^!m,k!m-q`
    小强作品:QTP之DLL
    /C {ZP6U(y0y:X)S177152小强老师又出新品,QTP中使用动态库DLL技术,希望大家喜欢!
    &TK5p'~I#x177152http://www.boobooke.com/v/bbk2834
    |I[@.}-?f+fTj177152==============================================================================
    uW-GVF0gW&GWs t177152Happy1tiann作品:使用QTP连接数据库
    .S3oH DFI#Dy!h,J177152在线观看:http://www.boobooke.com/v/bbk201751Testing软件测试网%M gW,~(z
    Happy1tian作品:QTP自动化对象模型51Testing软件测试网+AY/HNX
    在线观看:http://www.boobooke.com/v/bbk209851Testing软件测试网pZ0|;^x n,ei
    Happy1tian作品:QTP实战示例51Testing软件测试网'M0\Q[%x!vM
    在线观看:http://www.boobooke.com/v/bbk2099

    转自:http://www.51testing.com/?uid-84226-action-viewspace-itemid-132060

  • 密码参数化的方法

    2009-07-01 11:05:52

    密码输入有两种方式,一种改用Set方法,一种SetSecure方法

    用Set方法时直接输入密码就可以了

    如果用SetSecure方法,则需要将明文转换为经过加密后的字符串,具体用Crypt对象的Encrypt方法。

    比如密码是 mercury,用 Crypt.Encrypt("mercury") 可以得到一个值 "464d059be45f8d524b913574b017ed492a8b8d4b"

    转自:http://www.51testing.com/?uid-77806-action-spacelist-type-blog-itemtypeid-1335

  • Wscript.shell详细介绍

    2009-07-01 11:02:26

    Wscrīpt.Shell 对象详细介绍

    WshShell 对象
    ProgID Wscrīpt.Shell
    文件名 WSHom.Ocx
    CLSID F935DC22-1CF0-11d0-ADB9-00C04FD58A0B
    IID F935DC21-1CF0-11d0-ADB9-00C04FD58A0B


    下表说明和 WshShell 对象有关的属性。

    属性 说明
    Environment 返回 WshEnvironment 集合对象。
    SpecialFolders 使用 WshSpecialFolders 对象提供对 Windows shell 文件夹的访问,如桌面文件夹,开始菜单文件夹和个人文档文件夹。


    下表说明和 WshShell 对象有关的方法。

    方法 说明
    CreateShortcut 创建并返回 WshShortcut 对象。
    ExpandEnvironmentStrings 扩展 PROCESS 环境变量并返回结果字符串。
    Popup 显示包含指定消息的消息窗口。
    RegDelete 从注册表中删除指定的键或值。
    RegRead 从注册表中返回指定的键或值。
    RegWrite 在注册表中设置指定的键或值。
    Run 创建新的进程,该进程用指定的窗口样式执行指定的命令。


    WshShell.Environment
    Environment 属性返回 WshEnvironment 对象。

    语法
    WshShell.Environment ( [strType]) = objWshEnvironment

    注释
    若 strType 指定了环境变量所处的位置,可能值为 \"System\"、\"User\"、\"Volatile\" 和 \"Process\"。若未提供 strType,则该方法在 Windows NT 中检索系统环境变量或在 Windows 95 中检索进程环境变量。

    对于 Windows 95,strType 参数仅支持 \"Process\"。

    下列变量是由 Windows 操作系统提供的。脚本也可获取由其他应用程序设置的环境变量。

    名称 说明
    NUMBER_OF_PROCESSORS 计算机上运行的处理器数目。
    PROCESSOR_ARCHITECTURE 用户工作站使用的处理器类型。
    PROCESSOR_IDENTIFIER 用户工作站的处理器 ID。
    PROCESSOR_LEVEL 用户工作站的处理器级。
    PROCESSOR_REVISION 用户工作站的处理器版本。
    OS 用户工作站所用的操作系统。
    COMSPEC 用于运行“命令提示”窗口的命令(通常为 cmd.exe)。
    HOMEDRIVE 本地主驱动器(通常为 C 驱动器)。
    HOMEPATH 用户的默认路径(在 Windows NT 上通常为 \\users\\default)。
    PATH 路径环境变量。
    PATHEXT 可执行文件的扩展名(通常为 .com、 .exe、.bat 或 .cmd)。
    PROMPT 命令提示符(通常为 $P$G)。
    SYSTEMDRIVE 系统所在的本地驱动器(例如,c:\\)。
    SYSTEMROOT 系统目录(例如,c:\\winnt)。和 WINDIR 相同。
    WINDIR 系统目录(例如 c:\\winnt)。和 SYSTEMROOT 相同。
    TEMP 存储临时文件的目录(例如,c:\\temp)。用户可更改。
    TMP 存储临时文件的目录(例如,c:\\temp)。用户可更改。


    示例
    \' Retrieve the NUMBER_OF_PROCESSORS system environment variable
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.Shell\")

    Set WshSysEnv = WshShell.Environment(\"SYSTEM\")
    Wscrīpt.Echo WshSysEnv(\"NUMBER_OF_PROCESSORS\")

    请参阅
    WshEnvironment 对象


    WshEnvironment 对象
    WshEnvironment 对象未直接给出,可用 WshShell.Environment 属性来访问。

    ProgID N/A
    文件名 WSHom.Ocx
    CLSID
    IID


    下表描述与 WshEnvironment 对象关联的属性。

    属性 说明
    Item 获取或设置指定的环境变量值。
    Count 枚举项的数目。
    length 枚举项的数目 (Jscrīpt)。


    下表描述与 WshEnvironment 对象关联的方法。

    方法 说明
    Remove 删除指定的环境变量。


    WshShell.SpecialFolders
    SpecialFolders 属性提供 WshSpecialFolders 对象以便访问 Windows 的 shell 文件夹,例如桌面文件夹、开始菜单文件夹和个人文档文件夹。

    语法
    WshShell.SpecialFolders = objWshSpecialFolders

    示例
    \' This code fragment shows how to access the desktop folder
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.Shell\")
    MsgBox \"Your desktop is \" & WshShell.SpecialFolders(\"Desktop\")
    请参阅
    WshSpecialFolders 对象

    WshSpecialFolders 对象
    该对象未直接给出。要得到 WshSpecialFolders 对象,请使用 WshShell.SpecialFolders 属性。

    ProgID N/A
    文件名 WSHom.Ocx
    CLSID
    IID


    下表描述与 WshSpecialFolders 对象关联的属性。

    属性 描述
    Item 指定文件夹的完整路径(默认)。
    Count 枚举项的数目。
    length 枚举项的数目 (Jscrīpt) 。

    WshSpecialFolders.Item
    Item 属性返回由 strFolderName 指定的文件夹的完整路径。它是默认属性。

    语法
    WshShell.SpecialFolders.Item(\"strFolderName\") = strFolderPath
    WshShell.SpecialFolders(\"strFolderName\") = strFolderPath

    注释
    若请求的文件夹 (strFolderName) 不可用,则 WshShell.SpecialFolders(\"strFolderName\") 返回 NULL。例如,Windows 95 没有 AllUsersDesktop 文件夹,如果 strFolderName = AllUsersDesktop,则返回 NULL。

    Windows 95 和 Windows NT 4.0 操作系统提供下列指定文件夹:
    AllUsersDesktop
    AllUsersStartMenu

    AllUsersPrograms

    AllUsersStartup

    Desktop

    Favorites

    Fonts

    MyDocuments

    NetHood

    PrintHood

    Programs

    Recent

    SendTo

    StartMenu

    Startup

    Templates

    示例
    \' This fragment returns the full path for the Windows Desktop folder
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.Shell\")
    StrMyDesktop = WshShell.SpecialFolders(\"Desktop\")

    \' List all special folders
    For Each strFolder In WshShell.SpecialFolders
    MsgBox strFolder
    Next

    请参阅
    WshShell.SpecialFolders 属性


    WshShell.CreateShortcut
    CreateShortcut 方法创建 WshShortcut 对象并将其返回。如果快捷方式标题以 .url 结尾,就会创建 WshURLShortcut 对象。

    语法
    WshShell.CreateShortcut(strPathname) = objShortcut

    示例
    \' This code fragment creates a shortcut
    \' to the currently executing scrīpt
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.Shell\")
    Set ōShellLink = WshShell.CreateShortcut(\"Current scrīpt.lnk\")
    oShellLink.TargetPath = Wscrīpt.scrīptFullName
    oShellLink.Save
    Set ōUrlLink = WshShell.CreateShortcut(\"Microsoft Web Site.URL\")
    oUrlLink.TargetPath = \"http://www.microsoft.com\"
    oUrlLink.Save

    请参阅
    WshShortcut 对象、WshUrlShortcut 对象

    WshShortcut 对象
    该对象未直接给出。要获得 WshShortcut 对象,请使用 WshShell.CreateShortcut 方法。

    ProgID N/A
    文件名 WSHom.Ocx
    CLSID F935DC28-1CF0-11d0-ADB9-00C04FD58A0B
    IID F935DC27-1CF0-11d0-ADB9-00C04FD58A0B


    下表说明和 WshShortcut 对象有关的属性。

    属性 说明
    Arguments 快捷方式对象的参数。
    Descrīption 快捷方式对象的说明。
    Hotkey 快捷方式对象的热键。
    IconLocation 快捷方式对象的图标位置。
    TargetPath 快捷方式对象的目标路径。
    WindowStyle. 快捷方式对象的窗口样式。
    WorkingDirectory 快捷方式对象的工作目录。


    下表说明与 WshShortcut 对象有关的方法。

    方法 说明
    Save 将快捷方式存储到指定的文件系统中。

    WshShortcut.Arguments
    Arguments 属性提供快捷方式对象的参数。

    语法
    WshShortcut.Arguments = strArguments

    WshShortcut.Descrīption
    Descrīption 属性提供快捷方式对象的说明。

    语法
    WshShortcut.Descrīption = strDescrīption

    WshShortcut.Hotkey
    HotKey 属性提供快捷方式对象的热键。热键是启动或切换程序的键盘快捷方式。

    语法
    WshShortcut.HotKey = strHotKey

    注释
    strHotKey 的BNF语法如下:

    Hotkey ::= modifier* keyname
    modifier ::= \"ALT+\" │ \"CTRL+\" │ \"SHIFT+\" │ \"EXT+\"
    keyname ::= \"A\" .. \"Z\" │
    \"0\".. \"9\" │
    \"Back\" │ \"Tab\" │ \"Clear\" │ \"Return\" │
    \"Escape\" │ \"Space\" │ \"Prior\" │ ...

    所有键的名称都可以在 WINUSER.H 中找到。热键不区分大小写。

    热键只能激活位于 Windows 桌面或 Windows“开始”菜单的快捷方式。

    Windows 资源管理器不接受 ESC、ENTER、TAB、SPACE、PRINT SCREEN 或 BACKSPACE,即使 WshShortcut.Hotkey 遵循 Win32 API 支持它们。因此,建议在快捷方式中不要用这些键。

    示例
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.WshShell\")
    strDesktop = WshShell.SpecialFolders(\"Desktop\")
    Set ōMyShortcut = WshShell.CreateShortcut(strDesktop & \"\\a_key.lnk\")
    OMyShortcut.TargetPath = \"%windir%\\notepad.exe\"
    oMyShortCut.Hotkey = \"ALT+CTRL+F\"
    oMyShortCut.Save
    Wscrīpt.Echo oMyShortCut.HotKey = \"Alt+Ctrl+F\"

    请参阅
    WshSpecialFolders 对象

    WshShortcut.IconLocation
    IconLocation 属性提供快捷方式对象的图标位置。图标位置的格式应为 \"Path,index\"。

    语法
    WshShortcut.IconLocation = strIconLocation

    WshShortcut.TargetPath
    TargetPath 属性提供快捷方式对象的目标路径。

    语法
    WshShortcut.TargetPath = strTargetPath

    WshShortcut.WindowStyle
    WindowStyle. 属性提供快捷方式对象的窗口样式。

    语法
    WshShortcut.WindowStyle. = natWindowStyle

    WshShortcut.WorkingDirectory
    WorkingDirectory 为一个快捷方式对象提供工作目录。

    语法
    WshShortcut.WorkingDirectory = strWorkingDirectory

    WshShortcut.Save
    Save 方法把快捷方式对象保存到由 FullName 属性指定的位置。

    语法
    WshShortcut.Save

    WshUrlShortcut 对象
    该对象未直接给出。要获取 WshUrlShortcut 对象,可使用 WshShell.CreateShortcut 方法。

    ProgID N/A
    文件名 WSHom.Ocx
    CLSID
    IID


    下表说明了和 WshUrlShortcut 对象有关的属性。

    属性 说明
    FullName URL 快捷方式对象的完整路径。
    TargetPath URL 快捷方式对象的目标路径。


    下表说明了和 WshUrlShortcut 对象有关的方法。

    方法 说明
    Save 将快捷方式保存到指定的文件系统中。

    WshUrlShortcut.FullName
    FullName 属性提供快捷方式对象的完整路径。

    语法
    WshUrlShortcut.FullName = strFullName

    WshUrlShortcut.TargetPath
    TargetPath 属性提供快捷方式对象的目标路径。

    语法
    WshUrlShortcut.TargetPath = strTargetPath

    WshUrlShortcut.Save
    Save 方法保存一个快捷方式,该快捷方式指向 FullName 属性指定的位置。

    语法
    WshUrlShortcut.Save

    WshShell.ExpandEnvironmentStrings
    ExpandEnvironmentStrings 方法在 strString 中扩展 PROCESS 环境变量并返回结果字符串。变量被 \'%\' 字符括起。

    环境变量不区分大小写。

    语法
    WshShell.ExpandEnvironmentStrings(strString) = strExpandedString

    示例
    MsgBox \"Prompt is \" & WshShell.ExpandEnviromentStrings(\"%PROMPT%\")

     

    WshShell.Popup
    Popup 方法显示一个弹出式消息框窗口,消息框中包含的消息由 strText 指定。该消息框的窗口标题由 strTitle 指定。若 strTitle 省略,则窗口标题为 Windows scrīpting Host。

    语法
    WshShell.Popup(strText, [natSecondsToWait], [strTitle], [natType]) = intButton

    注释
    若提供 natSecondsToWait 且其值大于零,则消息框在 natSecondsToWait 秒后关闭。

    natType 的含义与其在 Win32? MessageBox 函数中相同。下表显示 natType 中的值及含义。下表中的值可以组合。

    按钮类型
    值 说明
    0 显示“确定”按钮
    1 显示“确定”和“取消”按钮
    2 显示“终止”、“重试”和“忽略”按钮
    3 显示“是”、“否”和“取消”按钮
    4 显示“是”和“否”按钮
    5 显示“重试”和“取消”按钮


    图标类型
    值 说明
    16 显示停止标记图标
    32 显示问号图标
    48 显示感叹号图标
    64 显示信息标记图标


    以上两个表并不涵盖 natType 的所有值。完整的列表请参阅 Win32 文档。

    返回值 intButton 指示用户所单击的按扭编号。若用户在 natSecondsToWait 秒之前不单击按扭,则 intButton 设置为 -1 。

    值 说明
    1 “确定”按扭
    2 “取消”按扭
    3 “终止”按扭
    4 “重试”按扭
    5 “忽略”按扭
    6 “是”按扭
    7 “否”按扭


    示例
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.Shell\")
    WshShell.Popup \"Where do you want to go today?\"

    请参阅
    Wscrīpt.Echo 方法

    Wscrīpt.Echo
    Echo 方法在窗口(Wscrīpt.exe 中)或“命令提示符”窗口(Cscrīpt.exe 中)显示参数。

    参数用空格分隔。在 Cscrīpt.exe 中,该方法在显示最后一个参数之后输出一对回车/换行(CR LF)。

    语法
    Wscrīpt.Echo [anyArg...]

    示例
    Wscrīpt.Echo
    Wscrīpt.Echo 1, 2, 3
    Wscrīpt.Echo \"Windows scrīpting Host is cool.\"

    WshShell.RegDelete
    RegDelete 从注册表中删除名为 strName 的键或值。

    语法
    WshShell.RegDelete strName

    参数
    strName
    如果 strName 以反斜杠 (\\) 结束,则该方法删除键而不是值。
    strName 参数必须以下列之一的根键名开始:

    短根键名 长根键名
    HKCU HKEY_CURRENT_USER
    HKLM HKEY_LOCAL_MACHINE
    HKCR HKEY_CLASSES_ROOT
    HKEY_USERS
    HKEY_CURRENT_CONFIG


    示例
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.Shell\")

    WshShell.RegDelete \"HKCU\\scrīptEngine\\Value\" \' Delete value \"Value\"
    WshShell.RegDelete \"HKCU\\scrīptEngine\\Key\\\" \' Delete key \"Key\"

    请参阅
    WshShell.RegRead 方法、WshShell.RegWrite 方法


    WshShell.RegRead
    RegRead 方法返回名为 strName 的注册表键或值。

    语法
    WshShell.RegRead(strName) = strValue

    参数
    strName
    如果 strName 以反斜杠 (\\) 结束,则该方法返回键,而不是值。
    strName 参数必须以下列根键名开始。

    Short Long
    HKCU HKEY_CURRENT_USER
    HKLM HKEY_LOCAL_MACHINE
    HKCR HKEY_CLASSES_ROOT
    HKEY_USERS
    HKEY_CURRENT_CONFIG


    注释
    RegRead 方法仅支持 REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY 和 REG_MULTI_SZ 数据类型。若注册表有其他数据类型,RegRead 返回 DISP_E_TYPEMISMATCH。

    示例
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.Shell\")

    WshShell.RegRead(\"HKCU\\scrīptEngine\\Val\") \' Read from value \"Val\"
    WshShell.RegRead(\"HKCU\\scrīptEngine\\Key\\\") \' Read from key \"Key\"

    请参阅
    WshShell.RegDelete 方法、WshShell.RegWrite 方法


    WshShell.RegWrite
    RegWrite 方法设置名为 strName 的注册表键或值。

    语法
    WshShell.RegWrite strName, anyValue, [strType]

    参数
    strName
    若 strName 以一个反斜杠 (\\) 结束,则该方法设置键,而不是值。
    strName 参数必须以下列根键名开头。

    Short Long
    HKCU HKEY_CURRENT_USER
    HKLM HKEY_LOCAL_MACHINE
    HKCR HKEY_CLASSES_ROOT
    HKEY_USERS
    HKEY_CURRENT_CONFIG

     

    anyValue
    当 strType 为 REG_SZ 或 REG_EXPAND_SZ 时,RegWrite 方法自动将 anyValue 转换为字符串。若 strType 为 REG_DWORD,则 anyValue 被转换为整数。若 strType 为 REG_BINARY,则 anyValue 必须是一个整数。

    strType
    RegWrite 方法支持 strType 为 REG_SZ、REG_EXPAND_SZ、REG_DWORD 和 REG_BINARY。若其他的数据类型被作为 strType 传递,RegWrite 返回 E_INVALIDARG。
    示例
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.Shell\")

    WshShell.RegWrite \"HKCU\\scrīptEngine\\Value\", \"Some string value\"
    WshShell.RegWrite \"HKCU\\scrīptEngine\\Key\\\", 1 \"REG_DWORD\"

    请参阅
    WshShell.RegDelete 方法、WshShell.RegWrite方法


    WshShell.Run
    Run 方法创建一个新的进程,该进程以 intWindowStyle. 窗口样式执行 strCommand。

    语法
    WshShell.Run (strCommand, [intWindowStyle], [blnWaitOnReturn])

    参数
    strCommand
    在 strCommand 参数内部的环境变量被自动扩展。

    intWindowStyle.
    这是为新进程在 STARTUPINFO 结构内设置的 wShowWindow 元素的值。其意义与 ShowWindow 中的 nCmdShow 参数相同,可取以下值之一。名称 值 含义
    SW_HIDE
    0 隐藏窗口并激活另一窗口。
    SW_MINIMIZE
    6 最小化指定窗口并激活按 Z 序排序的下一个顶层窗口。
    SW_RESTORE
    9 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。
    SW_SHOW
    5 以当前大小和位置激活并显示窗口。
    SW_SHOWMAXIMIZED
    3 激活窗口并以最大化显示该窗口。
    SW_SHOWMINIMIZED
    2 激活窗口并以最小化显示该窗口。
    SW_SHOWMINNOACTIVE
    7 最小化显示窗口。活动窗口保持活动。
    SW_SHOWNA
    8 以当前状态显示窗口。活动窗口保持活动。
    SW_SHOWNOACTIVATE
    4 按窗口最近的大小和位置显示。活动窗口保持活动。
    SW_SHOWNORMAL
    1 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。

     

    blnWaitOnReturn
    如果未指定 blnWaitOnReturn 或其值为 FALSE,则该方法立即返回到脚本继续执行而不等待进程结束。
    若 blnWaitOnReturn 设为 TRUE,则 Run 方法返回由应用程序返回的任何错误代码。如果未指定 blnWaitOnReturn 或其值为 FALSE,则 Run 返回错误代码 0(zero)。

    示例
    \' This fragment launches Notepad with the current executed scrīpt
    Set WshShell = Wscrīpt.CreateObject(\"Wscrīpt.Shell\")
    WshShell.Run (\"notepad \" & Wscrīpt.scrīptFullName)
    WshShell.Run (\"%windir%\\notepad\" & Wscrīpt.scrīptFullName)

    \' This fragment returns the error code from the executed application
    Return = WshShell.Run(\"notepad \" & Wscrīpt.scrīptFullName, 1, TRUE)

    转自:http://www.51testing.com/?uid-77806-action-spacelist-type-blog-itemtypeid-1335

  • 国外测试网站

    2009-07-01 10:07:50


    转载自caicai1724

    美国的软件测试教育网站51Testing软件测试网8G Z*Xr0A!E%FN
    http://www.csc.ncsu.edu/faculty/xie/softtestingedu.html51Testing软件测试网F,|*Nm VL1w
    51Testing软件测试网aO8C U'lA
    http://www.testingeducation.org/

    IVhn"F)L5D0

    -gL&hU0_ W2DqH0其他51Testing软件测试网1?W5c;_.k

    l7Yn,O$\.rb z3UW0http://www.qasoftwaretesting.com/

    :\nfC)M!n z051Testing软件测试网8?(Wx+bml x

    http://www.onestoptesting.com/51Testing软件测试网3l#S7UHV%cH{

    51Testing软件测试网9IP%Q4p}

    http://www.devbistro.com/articles/Testing/  (推荐)

    e+po;C&stg051Testing软件测试网rkT(p ^K6X

    http://www.soft.com/Institute/HotList/index.html

    tS%f }V051Testing软件测试网 |z W^5tC:ol/ME

    http://www.softwaretestingwiki.com/doku.php

    S.H$PV7A0

    /cB_Fd'L v0http://www.softwareqatest.com/51Testing软件测试网&q;Pv_W H-` l5}#B

    51Testing软件测试网w2m/? S6Ny

    51Testing软件测试网'T3C;\&h"C Y?hM
    http://www.aptest.com/resources.html51Testing软件测试网/T'b0~2W!~ ?2^6}*v

    RS!UQ(E*Mp6vD:x*]051Testing软件测试网{I8W0B zpc;ZF4G
    http://www.itpub.net/582806,1.html (国内的论坛,里面的下载资料很多,所以推荐)51Testing软件测试网 F-i)yO)hN:O w

    9Jr I%C0xi4Jc0 

    _u*g7mY0B,N0
    51Testing软件测试网6qa:bXKmtx

    国外大学的性能测试课程51Testing软件测试网p7p)H$E-i/N9N1g_O

    51Testing软件测试网[*?T @%yr!Vz

    http://www.cc.gatech.edu/classes/AY2005/cs4803epr_spring/51Testing软件测试网ucC9I#n4ty Ww B

    51Testing软件测试网ZC#t,V.vs1S

    测试论坛

    F Y'QC'V051Testing软件测试网;cVo]"F Qx"B*t

    http://www.testing-post.com/testing/

    9d!D V,T*^051Testing软件测试网R)x$C@1y)g!O

    国外的软件测试电子杂志51Testing软件测试网_@f4sJLF1w"Z q

    W5TD5H,M0EJ0http://www.stpmag.com/

    a*u|%CHxS0

    _+J&` k[4Z y!\0E文文章下载站点51Testing软件测试网9d kss7e5Bn(\6rt

    51Testing软件测试网3[p t'gdp!C

    http://www.workroom-productions.com/papers.html

    E)]6YEpp0

    [Rf.E$@0http://www.informit.com/articles/index.asp?st=4136851Testing软件测试网{\YJe)v
    http://www.informit.com/articles/index.asp?st=41271
    51Testing软件测试网.Lr JQh3pS`

    51Testing软件测试网4yV-srR)N tY*k$}"|

    博客

    F? [9c8e2T0d/a0

    8o U0IoN:M:i x0http://testertested.blogspot.com/2007/02/there-is-no-four-and-six-in-testing.html

  • 转载:测试用例制定的原则

    2009-02-10 11:48:19

    测试用例制定的原则

     

    测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。测试数据应该选用少量、高效的测试数据进行尽可能完备的测试;基本目标是:设计一组发现某个错误或某类错误的测试数据,测试用例应覆盖方面:

    1、    正确性测试:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用 例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。

    2、    容错性(健壮性)测试:程序能够接收正确数据输入并且产生正确(预期)的输出, 输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示 并进行相应处理。把自己想象成一名对产品操作一点也不懂的客户,在进行任意操作。

    3、    完整(安全)性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,程序的数据处理能够保持外部信息(数据库或文件)的完整。

    4、    接口间测试:测试各个模块相互间的协调和通信情况,数据输入输出的一致性和正确性。

    5、    数据库测试:依据数据库设计规范对软件系统的数据库结构、数据表及其之间的数据调用关系进行测试。

    6、 边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在测试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取。

    7、 压力测试:输入10条记录运行各个功能,输入30条记录运行,输入50条记录运行。。。进行测试。

    8、等价划分:将所有可能的输入数据(有效的和无效的)划分成若干个等价类。

    9、错误推测:主要是根据测试经验和直觉,参照以往的软件系统出现错误之处。

    10、效率:完成预定的功能,系统的运行时间(主要是针对数据库而言)。

    11、可理解(操作)性:理解和使用该系统的难易程度(界面友好性)。

    12、可移植性:在不同操作系统及硬件配置情况下的运行性。

    13、回归测试:按照测试用例将所有的测试点测试完毕,测试中发现的问题开发人员 已经解决,进行下一轮的测试。

    14、比较测试:将已经发版的类似产品或原有的老产品与测试的产品同时运行比较,或与已往的测试结果比较

    说明:针对不同的测试类型和测试阶段,测试用例编写的侧重点有所不同。

    1、  其中第1、2、6、8、9、13项为模块(组件、控件)测试、组合(集成)测试、系统测试都涉及并重点测试的方面。

    2、  单元(模块)测试(组件、控件)测试:重点测试第5项。

    3、  组合(集成)测试:重点进行接口间数据输入及逻辑的测试,即第4项。

    4、  系统测试:重点测试第3、7、10、11、12、14项。

    5、  其中压力测试和可移植性测试如果是公司的系列产品,可以选用其中有代表性的产品进行一次代表性测试即可。

    6、  GMPS基础测试用例设计完成后,其他的测试项目只编写设计与之不同部分的测试用例。

    7、  对于每个测试项目测试的测试用例不是一成不变的,随着测试经验的积累或在测试其他项目发现有测试不充分的测试点时,可以不断的补充完善测试项目的测试用例。

    link:http://www.51testing.com/?229266/action_viewspace_itemid_106455.html

     

  • 转载:等价类划分法分析与实践

    2009-02-10 11:37:05

    转载:等价类划分法分析与实践

     

      1、方法定义:

      从软件测试的角度来说,等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。等价类划分包含两个部分:有效等价类和无效等价类。

      1) 有效等价类

      是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。主要为了检验程序是否实现了规格说明中所规定的功能和性能。

      2) 无效等价类

      与有效等价类相反,主要为了程序的健壮性与可靠性。

      2、方法运用到用例设计中的思路:

      1) 根据需求说明书,把需要输入的数据划分成若干个子集合。在这里要确保两点:

      A、每个子集中的数据在测试过程中对于发现程序缺陷是有效的。

      B、每个子集中的数据在测试过程中对于发现程序缺陷是等效的。

      C、子集之间数据互不相交。

      2) 然后从每个集合中选择部分代表性数据形成测试用例中的输入数据。

      3) 覆盖所有有效的和无效的等价类

      3、确定等价类的原则

      1) 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。

      例如:成年人每分钟的心跳60-100之间为正常。

      有效等价类:60-100 无效等价类:<60 和 >100

      2) 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。

      例如:用户连续输入错误密码的次数最多为3次。

      有效等价类:<=3次 无效等价类:>3次

      3) 在输入条件是一个布尔量的情况下,可确定一个有效等价类。

      例如:单选的选中与不选中。

      4) 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。

      例如:输入数据为省份的选择。

      5) 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

      例如:规定必须输入非0的正整数。

      这种例子应充分考虑规则是否可以拆分为具有单一的子规则,然后得到从不同角度违反规则的无效等价类。

      该例子起码可拆分为非0、数字、正数、整数4个子规则,至少每个规则对应一个无效等价类,即0、字符串、负数、小数,甚至可挖掘出输入为空的隐含等价类。

      6) 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

      例如:核对日期的有效性,初步有效等价类是1<=Month<=12,1<=Day<=31

      可是考虑到2月以及闰年、闰月、长月、短月等,需要进一步细分,当然其中还涉及到了年月日组合的问题。

      4、测试用例举例

      竞猜系统中:投注的金额要求是大于10的正整数。

      根据分析等到以下等价类表。

    输入条件 有效等价类 无效等价类
    >10的正整数 大于10的正整数
    小数
    <10的数
    负数
    字符串

      5、优缺点

      优点:避免了盲目或随机选取输入数据的布完整性和覆盖的不稳定性

      缺点:没有对组合情况进行充分的考虑,需要结合其他测试用例设计的方法进行补充

  • vbscript错误代码大全(转)

    2008-12-23 16:48:47

    Microsoft VBscrīpt语法错误(0x800A03E9)-->内存不足 lenovo联想会员俱乐部社区9YV1I(Z O,x5c@:p!q s
    Microsoft VBscrīpt语法错误(0x800A03EA)-->语法错误 lenovo联想会员俱乐部社区,Y]1z'skR6qM.N
    Microsoft VBscrīpt语法错误(0x800A03EB)-->缺少 ':' lenovo联想会员俱乐部社区ztSPK"u
    Microsoft VBscrīpt语法错误(0x800A03ED)-->缺少 '(' lenovo联想会员俱乐部社区8w Z,Z,y$PZ H3p s7Iy
    Microsoft VBscrīpt语法错误(0x800A03EE)-->缺少 ')'
    8p-s1x-i:@:f0Microsoft VBscrīpt语法错误(0x800A03EF)-->缺少 ']'
    5V:JkVUp8\@0Microsoft VBscrīpt语法错误(0x800A03F2)-->缺少标识符 lenovo联想会员俱乐部社区(@)B_ sN
    Microsoft VBscrīpt语法错误(0x800A03F3)-->缺少 '='
    z0o hPz*bV1\1z fC8f0Microsoft VBscrīpt语法错误(0x800A03F4)-->缺少 'If'
    V3}H1t a%P B0Microsoft VBscrīpt语法错误(0x800A03F5)-->缺少 'To'
    *C\TT|jB0Microsoft VBscrīpt语法错误(0x800A03F6)-->缺少 'End' lenovo联想会员俱乐部社区vQ:^1SZ2X
    Microsoft VBscrīpt语法错误(0x800A03F7)-->缺少 'Function' lenovo联想会员俱乐部社区3[\DpFI.\X
    Microsoft VBscrīpt语法错误(0x800A03F8)-->缺少 'Sub' lenovo联想会员俱乐部社区4z#_pne
    Microsoft VBscrīpt语法错误(0x800A03F9)-->缺少 'Then' lenovo联想会员俱乐部社区Q K @ R{Ypm'G
    Microsoft VBscrīpt语法错误(0x800A03FA)-->缺少 'Wend'
    +LL/|/T%m8Td0Microsoft VBscrīpt语法错误(0x800A03FB)-->缺少 'Loop' lenovo联想会员俱乐部社区bPG+T/d{7B
    Microsoft VBscrīpt语法错误(0x800A03FC)-->缺少 'Next' lenovo联想会员俱乐部社区$l Ip"EX
    Microsoft VBscrīpt语法错误(0x800A03FD)-->缺少 'Case'
    G/l)e(v1~(L/[p0Microsoft VBscrīpt语法错误(0x800A03FE)-->缺少 'Select'
    4G K$QiD"W!x[ d1@0Microsoft VBscrīpt语法错误(0x800A03FF)-->缺少表达式 lenovo联想会员俱乐部社区h;^A}k?3ac
    Microsoft VBscrīpt语法错误(0x800A0400)-->缺少语句
    Z)K2v[D4K.\4r N0Microsoft VBscrīpt语法错误(0x800A0401)-->语句未结束 lenovo联想会员俱乐部社区*~5C4\~ I5d&}$S h^
    Microsoft VBscrīpt语法错误(0x800A0402)-->缺少整型常数 lenovo联想会员俱乐部社区S O"lqEY
    Microsoft VBscrīpt语法错误(0x800A0403)-->缺少 'While' 或 'Until'
    XYGf8b2n7u^ p0Microsoft VBscrīpt语法错误(0x800A0404)-->缺少 'While', 'Until' 或语句未结束
    h&i3fV1FEP0Microsoft VBscrīpt语法错误(0x800A0405)-->缺少 'With'
    6`@`'W h M7Z0Microsoft VBscrīpt语法错误(0x800A0406)-->标识符过长
    [YP2qN$`0Microsoft VBscrīpt语法错误(0x800A0407)-->无效数字 lenovo联想会员俱乐部社区F%k4EGy
    Microsoft VBscrīpt语法错误(0x800A0408)-->无效字符 lenovo联想会员俱乐部社区0I"xR6p Cc:B
    Microsoft VBscrīpt语法错误(0x800A0409)-->未结束的字符串常量 lenovo联想会员俱乐部社区 h.v7@]/Tb J
    Microsoft VBscrīpt语法错误(0x800A040A)-->注释未结束
    1oE4I_N8X'} Lq0Microsoft VBscrīpt语法错误(0x800A040D)-->无效使用 'Me' 关键字
    [1nZ"\:P(O#b9L7|6g0Microsoft VBscrīpt语法错误(0x800A040E)-->'loop' 语句缺少 'do' lenovo联想会员俱乐部社区st!Q*_wLS
    Microsoft VBscrīpt语法错误(0x800A040F)-->无效的 'exit' 语句
    /M.]Mo"B0Microsoft VBscrīpt语法错误(0x800A0410)-->循环控制变量 'for' 无效
    rM%Y`f|2ynLg0Microsoft VBscrīpt语法错误(0x800A0411)-->名称重定义
    4Fib8B)@wr0Microsoft VBscrīpt语法错误(0x800A0412)-->必须是行中的第一个语句 lenovo联想会员俱乐部社区u2| `+v9W~@2q
    Microsoft VBscrīpt语法错误(0x800A0413)-->不能为 non-ByVal 参数赋值 lenovo联想会员俱乐部社区"a2wjF;{ Q
    Microsoft VBscrīpt语法错误(0x800A0414)-->调用子程序时不能使用括号 lenovo联想会员俱乐部社区H6aD$[Jk
    Microsoft VBscrīpt语法错误(0x800A0415)-->缺少文字常数
    -cPyLb6Z3A6c0E0Microsoft VBscrīpt语法错误(0x800A0416)-->缺少 'In' lenovo联想会员俱乐部社区"_7E3NiA~
    Microsoft VBscrīpt语法错误(0x800A0417)-->缺少 'Class'
    B}t&| [S^0Microsoft VBscrīpt语法错误(0x800A0418)-->必须在一个类的内部定义
    5AuE tK+Wr0Microsoft VBscrīpt语法错误(0x800A0419)-->在属性声明中缺少 Let , Set 或 Get lenovo联想会员俱乐部社区sm \ B [|3[,V
    Microsoft VBscrīpt语法错误(0x800A041A)-->缺少 'Property' lenovo联想会员俱乐部社区JgJ5Nro
    Microsoft VBscrīpt语法错误(0x800A041B)-->在所有属性的规范中,变量的数目必须一致 lenovo联想会员俱乐部社区O7Wu,`.v%t
    Microsoft VBscrīpt语法错误(0x800A041C)-->在一个类中不允许有多个缺省的属性/方法 lenovo联想会员俱乐部社区#{ M [:\Uw l
    Microsoft VBscrīpt语法错误(0x800A041D)-->类的初始化或终止程序没有参数
    1u:o7K@|$}y0Microsoft VBscrīpt语法错误(0x800A041E)-->属性的 set 或 let 必须至少有一个参数 lenovo联想会员俱乐部社区 R4JA,s U\2Z0K9W
    Microsoft VBscrīpt语法错误(0x800A041F)-->错误的 'Next'
    1i O iA2l!S!@`0Microsoft VBscrīpt语法错误(0x800A0420)-->'Default' 只能在 'Property' , 'Function' 或 'Sub' 中指定 lenovo联想会员俱乐部社区-My!f@:wb
    Microsoft VBscrīpt语法错误(0x800A0421)-->指定 'Default' 时必须同时指定 'Public' ") lenovo联想会员俱乐部社区'Q6p9H5I%^f[
    Microsoft VBscrīpt语法错误(0x800A0422)-->只能在 Property Get 中指定 'Default' lenovo联想会员俱乐部社区7f] { h hq!n'M&AR
    Microsoft VBscrīpt 运行时错误(0x800A0005)-->无效的过程调用或参数 lenovo联想会员俱乐部社区@$Tb&pW} TP z
    Microsoft VBscrīpt 运行时错误(0x800A0006)-->溢出
    tu#CM+Ac_ uX9@0Microsoft VBscrīpt 运行时错误(0x800A0007)-->内存不足 lenovo联想会员俱乐部社区 ]A2GCuHr!O
    Microsoft VBscrīpt 运行时错误(0x800A0009)-->下标越界
    8K_mI6y yZZ)p$E0Microsoft VBscrīpt 运行时错误(0x800A000A)-->该数组为定长的或临时被锁定
    |BH]ws+P la0Microsoft VBscrīpt 运行时错误(0x800A000B)-->被零除
    +mlSE8L0Microsoft VBscrīpt 运行时错误(0x800A000D)-->类型不匹配
    Y$kRG4OX?J5A:fr0Microsoft VBscrīpt 运行时错误(0x800A000E)-->字符串空间不够 lenovo联想会员俱乐部社区;p A0e UV-u*M#lQ
    Microsoft VBscrīpt 运行时错误(0x800A0011)-->不能执行所需的操作 lenovo联想会员俱乐部社区6e6QV"MY|gS
    Microsoft VBscrīpt 运行时错误(0x800A001C)-->堆栈溢出
    ,_"z+NJG6w0Microsoft VBscrīpt 运行时错误(0x800A0023)-->未定义过程或函数 lenovo联想会员俱乐部社区ZY3M I IrHje(K(G
    Microsoft VBscrīpt 运行时错误(0x800A0030)-->加载 DLL 时出错 lenovo联想会员俱乐部社区!V4m{Kh kY b
    Microsoft VBscrīpt 运行时错误(0x800A0033)-->内部错误 lenovo联想会员俱乐部社区"[Ke'n!pE1B
    Microsoft VBscrīpt 运行时错误(0x800A0034)-->错误的文件名或号码
    )J ~5v e:cp0Microsoft VBscrīpt 运行时错误(0x800A0035)-->文件未找到
    "Dh)O5kR:u0Microsoft VBscrīpt 运行时错误(0x800A0036)-->错误的文件模式 lenovo联想会员俱乐部社区 W,daN,dsD(y,\0P
    Microsoft VBscrīpt 运行时错误(0x800A0037)-->文件已经打开 lenovo联想会员俱乐部社区{g#R{MD |q
    Microsoft VBscrīpt 运行时错误(0x800A0039)-->设备 I/O 错误 lenovo联想会员俱乐部社区G7U1l"\f6]@
    Microsoft VBscrīpt 运行时错误(0x800A003A)-->文件已存在
    W!jyZpY0Microsoft VBscrīpt 运行时错误(0x800A003D)-->磁盘已满
    "XSO` i0Microsoft VBscrīpt 运行时错误(0x800A003E)-->输入超出了文件尾 lenovo联想会员俱乐部社区^M+Ro&g8[
    Microsoft VBscrīpt 运行时错误(0x800A0043)-->文件过多
    &s R5E'@7r+Y2k(~3d0Microsoft VBscrīpt 运行时错误(0x800A0044)-->设备不可用
    "y-P3_bm0Microsoft VBscrīpt 运行时错误(0x800A0046)-->没有权限
    .Uu5] `!aj"Q0_1O0Microsoft VBscrīpt 运行时错误(0x800A0047)-->磁盘没有准备好
    Bue_f6Qs0Microsoft VBscrīpt 运行时错误(0x800A004A)-->重命名时不能带有其他驱动器符号
    Mf MQ*Q-\ca:AY!p|0Microsoft VBscrīpt 运行时错误(0x800A004B)-->路径/文件访问错误 lenovo联想会员俱乐部社区7u+gHD B
    Microsoft VBscrīpt 运行时错误(0x800A004C)-->路径未找到
    /^%e s&xd&Uh|F0Microsoft VBscrīpt 运行时错误(0x800A005B)-->对象变量未设置
    2s{v7AC { II.VSb0Microsoft VBscrīpt 运行时错误(0x800A005C)-->For 循环未初始化
    6L xh'X"KZ0Microsoft VBscrīpt 运行时错误(0x800A005E)-->无效使用 Null
    Y{A8m,k*[+Rs)C!B0Microsoft VBscrīpt 运行时错误(0x800A0142)-->不能创建所需的临时文lenovo联想会员俱乐部社区0S0L(mv h7^P
    Microsoft VBscrīpt 运行时错误(0x800A01A8)-->缺少对象
    B5]t QbO8bp&E2^t5@0Microsoft VBscrīpt 运行时错误(0x800A01AD)-->ActiveX 部件不能创建对象
    ;L9g_R W'E4d7F0Microsoft VBscrīpt 运行时错误(0x800A01AE)-->类不能支持 Automation 操作 lenovo联想会员俱乐部社区)@6J@e3rc
    Microsoft VBscrīpt 运行时错误(0x800A01B0)-->Automation 操作中文件名或类名未找到
    &BL$p6b%Z"Q t0Microsoft VBscrīpt 运行时错误(0x800A01B6)-->对象不支持此属性或方法 lenovo联想会员俱乐部社区2T%S?Gx Gu%O(j
    Microsoft VBscrīpt 运行时错误(0x800A01B8)-->Automation 操作错误 lenovo联想会员俱乐部社区r4}o#w I [.\
    Microsoft VBscrīpt 运行时错误(0x800A01BD)-->对象不支持此操作 lenovo联想会员俱乐部社区4`J4U.P6YXU p
    Microsoft VBscrīpt 运行时错误(0x800A01BE)-->对象不支持已命名参数
    ,w;{5o[auwx`0Microsoft VBscrīpt 运行时错误(0x800A01BF)-->对象不支持当前区域设置
    L/{$A;it&SW0Microsoft VBscrīpt 运行时错误(0x800A01C0)-->未找到已命名参数
    XV|W+T l0Microsoft VBscrīpt 运行时错误(0x800A01C1)-->参数是必选项 lenovo联想会员俱乐部社区S9v g8g_2_a|z&S(o
    Microsoft VBscrīpt 运行时错误(0x800A01C2)-->错误的参数个数或无效的参数属性值
    0r-R;zF*~!@0Microsoft VBscrīpt 运行时错误(0x800A01C3)-->对象不是一个集合 lenovo联想会员俱乐部社区VNBg1V3plJ
    Microsoft VBscrīpt 运行时错误(0x800A01C5)-->未找到指定的 DLL 函数 lenovo联想会员俱乐部社区,l v?W0Mv&}b4|p
    Microsoft VBscrīpt 运行时错误(0x800A01C7)-->代码资源锁定错误
    r7p!k]k YS'I.b0Microsoft VBscrīpt 运行时错误(0x800A01CA)-->变量使用了一个 VBscrīpt 中不支持的 Automation 类型
    #e:K*}R[0Microsoft VBscrīpt 运行时错误(0x800A01CE)-->远程服务器不存在或不可用
    8LMu+X3b7Yo.V0Microsoft VBscrīpt 运行时错误(0x800A01E1)-->无效图片 lenovo联想会员俱乐部社区bg}N R+m,c/x+D v
    Microsoft VBscrīpt 运行时错误(0x800A01F4)-->变量未定义
    dWhT6F[0Microsoft VBscrīpt 运行时错误(0x800A01F5)-->非法赋值
    `w+h!z,pf,[ G ~0Microsoft VBscrīpt 运行时错误(0x800A01F6)-->对象不能安全地使用 scrīpt 编程
    .F!}j_5Q0V|&\0Microsoft VBscrīpt 运行时错误(0x800A01F7)-->对象不能安全初始化 lenovo联想会员俱乐部社区&[4^"q{5K5K
    Microsoft VBscrīpt 运行时错误(0x800A01F8)-->对象不能安全创建
    __? ^3z2r0Microsoft VBscrīpt 运行时错误(0x800A01F9)-->无效的或无资格的引用 lenovo联想会员俱乐部社区2C^Zd e
    Microsoft VBscrīpt 运行时错误(0x800A01FA)-->类没有被定义 lenovo联想会员俱乐部社区jFEC;TX&e4yUUNG
    Microsoft VBscrīpt 运行时错误(0x800A01FB)-->出现一个意外错误
    cS GE7Ca"{0Microsoft VBscrīpt 运行时错误(0x800A1398)-->缺少常规表达式对象
    {3e*|`c8n8b0r8c0Microsoft VBscrīpt 运行时错误(0x800A1399)-->常规表达式语法错误 lenovo联想会员俱乐部社区E#E M YF0m-t&F
    Microsoft VBscrīpt 运行时错误(0x800A139A)-->错误的数量词
    ?+z;?"i!Y0Microsoft VBscrīpt 运行时错误(0x800A139B)-->常规表达式中缺少 ']'
    0`(Z}!xf9Q x0J Z0Microsoft VBscrīpt 运行时错误(0x800A139C)-->常规表达式中缺少 ')'
    "O3blq n0Microsoft VBscrīpt 运行时错误(0x800A139D)-->字符集越界
    w-?2DGy0Microsoft VBscrīpt 运行时错误(0x800A802B)-->未找到元素
    v|K LjY0ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件 lenovo联想会员俱乐部社区%QYX8u ~_S
    Microsoft OLEDBProviderforODBCDrivers(0x80040E14)-->sql语句出错(字段名错误,或数据类型不匹配) lenovo联想会员俱乐部社区G3QH(y[7F(ZN.O?F
    Microsoft OLEDBProviderforODBCDrivers(0x80040E07)-->sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)
    6JV&X*`lr0Microsoft OLEDBProviderforODBCDrivers(0x80040E57)-->sql语句出错(要插入或更新的数据溢出)
    a@i}TK"MS0Microsoft OLEDBProviderforODBCDrivers(0x80040E10)-->sql语句出错(update字段名或要更新的数据类型错误) lenovo联想会员俱乐部社区)t5eE@ ZXTW-y+TK
    Microsoft OLEDBProviderforODBCDrivers(0x80004005)-->sql语句出错(要插入或更新的字段的数值不能为空值) lenovo联想会员俱乐部社区I3f` Y1d ZK+ZO;g
    Microsoft OLEDBProviderforODBCDrivers(0x80004005)-->打开数据库出错,没有在指定目录发现数据库 lenovo联想会员俱乐部社区4w b@M}.`
    Microsoft OLEDBProviderforODBCDrivers(0x80040E37)-->没有发现表
    3jPRU$~Y d0ODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表/字段错误或处于编辑状态,或不存在于conn打开的数据库中) lenovo联想会员俱乐部社区2b[;OUj/n
    ADODB.Recordset(0x800A0BB9)-->sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误) lenovo联想会员俱乐部社区e^}K:|a7f7h
    ADODB.Recordset(0x800A0CC1)-->rs对像出错(rs对像本身不存在或错误地引用了一个不存在的字段名) lenovo联想会员俱乐部社区$FL%D O1_jR'eJ T?
    ADODB.Recordset(0x800A0BCD)-->rs对像出错(记录集中没有记录却对记录集进行操作)
    ik$}/Wv0ADODB.Recordset(0x800A0E78)-->rs对像出错(记录集不存在,缺少rs.open语句) lenovo联想会员俱乐部社区a*v$e&s%R:J
    ADODB.Recordset(0x800A0CC1)-->rs对像出错(引用了一个不存在的字段名)
    bpe@;]!O f0ADODB.Recordset(0x800A0E7D)-->conn定义错误
    o#O^t*Sz0ADODB.Recordset(0x800A0CB3)-->数据库以只读方式打开,无法更新数据
    Tv\6l!PE0ADODB.Recordset(0x800A000D)-->错误引用rs变量(rs对像已关闭或未定义)
    r3i } AD0--------------------------------------- lenovo联想会员俱乐部社区fSe1Ak(m)Z#o N
    大部分的ADO的错误码对应的含义 lenovo联想会员俱乐部社区#J%o:vr L*m{;YF
    除了在 Error 对象和 Errors 集合中说明的提供者错误之外,ADO 本身也将错误返回到
    -j/J"e B6[+]b[,G0运行时环境的异常处理机制之中。使用编程语言的错误捕获机制(如 Microsoft®
    P$ks0F-xGA|0Visual Basic® 中的 On Error 语句)可捕获及处理下列错误。下表将同时显示十 lenovo联想会员俱乐部社区8bZP!S*i.j#?Ud
    进制和十六进制错误代码值。
    lMK8g:r0常量名称 编号 说明
    Z&Qh?bi.j,c+K0adErrInvalidArgument 3001 0x800A0BB9 应用程序使用的参数其类型错误、超出可接受
    [LNio^N"e0的范围或者与其他参数冲突。 lenovo联想会员俱乐部社区HVL:Bj
    adErrNoCurrentRecord 3021 0x800A0BCD BOF 或 EOF 为 True,或者当前记录已经删除
    p8[8Pc{t"C4g1w0。应用程序请求的操作需要当前记录。
    ks R'H {,voD5H u0adErrIllegalOperation 3219 0x800A0C93 应用程序请求的操作不允许出现在该上下文
    3k J`+c,\"nr0中 adErrInTransaction 3246 0x800A0CAE 在事务中应用程序无法显式关闭 lenovo联想会员俱乐部社区{5{*~{(o6C
    Connection 对象。 lenovo联想会员俱乐部社区G#XV l,`$g6[s;l
    adErrFeatureNotAvailable 3251 0x800A0CB3 提供者不支持应用程序请求的操作。
    +Tj8`9@'l%G!j0adErrItemNotFound 3265 0x800A0CC1 ADO 无法在对应于应用程序请求的名称或顺序引 lenovo联想会员俱乐部社区!A LL-E}&SN
    用的集合中找到对象。
    R7\ H(H&A0adErrObjectInCollection 3367 0x800A0D27 无法追加,对象已经在集合中。 lenovo联想会员俱乐部社区`[$W FA8vD+y5F
    adErrObjectNotSet 3420 0x800A0D5C 应用程序引用的对象不再指向有效的对象。
    ``$gIO'Z0adErrDataConversion 3421 0x800A0D5D 应用程序使用了不符合对当前操作的值类型。
    E:`:]e'I?/P)|0adErrObjectClosed 3704 0x800A0E78 如果对象关闭,则不允许应用程序请求的操作。
    9C{t$w0fX m0adErrObjectOpen 3705 0x800A0E79 如果对象打开,则不允许应用程序请求的操作。 lenovo联想会员俱乐部社区 Cd@.O4H/H-[!Q/n
    adErrProviderNotFound 3706 0x800A0E7A ADO 找不到指定的提供者。 lenovo联想会员俱乐部社区*VFu4Qpe-{
    adErrBoundToCommand 3707 0x800A0E7B 应用程序无法用 Command 对象将 Recordset
    1RWTc O(na0对象的 ActiveConnection 属性更改为它的来源数据。
    m$hHFV-JR0adErrInvalidParamInfo 3708 0x800A0E7C 应用程序错误地定义了 Parameter 对象。 lenovo联想会员俱乐部社区1oP'Xo#V+J Sqt4j
    adErrInvalidConnection 3709 0x800A0E7D 应用程序通过引用关闭或无效的 lenovo联想会员俱乐部社区1SZ;nis'r1i
    Connection 对象来请求对对象的操作。 lenovo联想会员俱乐部社区5kGQy"^pU*t
    lenovo联想会员俱乐部社区/m"K4rN\%jC
    *****************************************************************************
    ri%{ E-xT R@jU0ASP错误代码说明 lenovo联想会员俱乐部社区#J)T;L*? i:ZA!q{
    错误代码 错误消息 说明 lenovo联想会员俱乐部社区c%N-p'do_
    ASP0100 Out of memory 内存不足(不能分配要求的内存 lenovo联想会员俱乐部社区-\ c#Isz
    ASP0101 Unexpected error 意外错误 lenovo联想会员俱乐部社区\5\ EW}/E+Lu
    ASP0102 Expecting string input 缺少字符串输入 lenovo联想会员俱乐部社区Qh&\-nm-h%M/x
    ASP0103 Expecting numeric input 缺少数字输入 lenovo联想会员俱乐部社区/a2c-G~4?
    ASP0104 Opration not allowed 操作不允许 lenovo联想会员俱乐部社区wsc]#V
    ASP0105 Index out of ange 索引超出范围(一个数组索引超届)
    t#M)T,O:GS2s0ASP0106 Type Mismatch 类型不匹配(遇到的数据类型不能被处理)
    G:u!l$\/Q H0ASP0107 Stack Overflow 栈溢出(正在处理的数据超出了允许的范围) lenovo联想会员俱乐部社区-TF_#J;b
    ASP0115 Unexpected error 意外错误(外部对象出现可捕获的exception_name错误,脚
    '~.\%} i,s0本不能继续运行) lenovo联想会员俱乐部社区U!gT4Ey]ZT5`p
    ASP0177 Server.CreateObject Failed 服务器创建对象失败(无效的progid)
    z3x:fG [,`dl"ru0ASP0190 Unexpected error 意外错误(当释放外部对象,产生可捕获的错误) lenovo联想会员俱乐部社区r?[MS5]
    ASP0191 Unexpected error 意外错误(在外部对象的OnStartPage方法中产生可捕获的错 lenovo联想会员俱乐部社区[]t x0|"R%k([
    误) lenovo联想会员俱乐部社区~4e7cRX a{#m!U i
    ASP0192 Unexpected error 意外错误(在外部对象的OnEndPage方法中产生可捕获的错误
    5m \#AF^0发信人: longsi——现代速龙(时速200公里),信区:X-COM基地 lenovo联想会员俱乐部社区;L sl/B3oKB
    ASP0177 Server.CreateObject Failed 服务器创建对象失败(无效的progid)
    q ^~'CR0发信站: 侏罗纪公园(2050年2月31日18:30:00 星期六),站内信件 获的错误) lenovo联想会员俱乐部社区j4r/I+Q7~2x
    ASP0191 Unexpected error 意外错误(在外部对象的OnStartPage方法中产生可捕获的错 lenovo联想会员俱乐部社区#Mu*N]8oQ
    误)
    }oE:d0JY$k+e0ASP0192 Unexpected error 意外错误(在外部对象的OnEndPage方法中产生可捕获的错误
    :oj.d Jd ['E$yD\0) lenovo联想会员俱乐部社区6A'iDz!C.N?]1`E+I
    ASP0193 OnStartPage Failed 在外部对象的OnStartPage方法中产生错误 lenovo联想会员俱乐部社区1F;iE]5O!~*o9LZ
    ASP0194 OnEndPage Failed 在外部对象的OnEndPage方法中产生错误
    }e7w gzuD0G0ASP0240 scrīpt Engine Exception 脚本引擎从object_name对象中抛出exception_anme lenovo联想会员俱乐部社区$KR&O(q*Al
    异常
    |\wC'?9o}4u0a0ASP0241 CreateObject Exception object_name 对象的CreatObject方法引起了excepti
    ._Dy/@/K"U}M3QFXk0on_name异常
    1})P"Ybsn0ASP0242 Query OnStartPage nterface 查询对象Object_name的OnsException
    I/^9G^:Y2sf\!c0
    ioga5@6L0********************************************** lenovo联想会员俱乐部社区%_9WTYk7~y
    Jscrīpt 运行时错误
    (z^&C)l[~0Jscrīpt 运行时错误是指当 Jscrīpt 脚本试图执行一个系统不能运行的动作时导致的错 lenovo联想会员俱乐部社区h l/mL4H9XxU1F
    误。当正在运行脚本、计算变量表达式、或者正在动态分配内存时出现Jscrīpt 运行时 lenovo联想会员俱乐部社区uN.dP%I l
    错误时。 lenovo联想会员俱乐部社区:O%Z[+n crD
    以下是76个运行时错误 lenovo联想会员俱乐部社区zV4K C^su:nD z\+n
    lenovo联想会员俱乐部社区!svGu^ y
    错误号 描述 lenovo联想会员俱乐部社区8s;{G7{9jL
    十进制 十六进制 说明
    M8]5C9mb.d.GqR1M6Jok05 800A0005 非法过程调用或参数 lenovo联想会员俱乐部社区:F E2^/TA{!E6p
    6 800A0006 溢出 lenovo联想会员俱乐部社区5F9|9Y;hd$j6X+V&c%[n
    7 800A0007 内存不足 lenovo联想会员俱乐部社区y Y,c0?FX7B
    9 800A0009 下标超界
    5D^S]s(A)Gu010 800A000A 此数组被固定或临时锁定 lenovo联想会员俱乐部社区 Z}:p zC] E[
    11 800A000B 零除错误
    Ejo*u7B*JG013 800A000D 类型失配 lenovo联想会员俱乐部社区~M:r V3U6F.c M
    14 800A000E 串空间不足 lenovo联想会员俱乐部社区_@g,\0S
    17 800A0011 不能执行所请求的操作 lenovo联想会员俱乐部社区mY }9r@
    28 800A001C 栈空间不足
    0K1dr/^_035 800A0023 子过程或函数未找到 lenovo联想会员俱乐部社区&}7`fhUL
    48 800A0030 装载DLL出错 lenovo联想会员俱乐部社区-Q~L7D*c-^BFC.l
    51 800A0033 内部出错
    .J;r/FtG C052 800A0034 坏文件名或数 lenovo联想会员俱乐部社区8v y ?Hu&H5s {0E8]
    53 800A0035 文件未找到
    | |)I*F,FxDN5M054 800A0036 坏文件模式 lenovo联想会员俱乐部社区&J!i)Cw0]&R_
    55 800A0037 文件已经打开
    q8c%e/U`+tQZ057 800A0039 设备I/O错误
    Bl c8S9~ Z058 800A003A 文件已经存在
    as(i^Q*y061 800A003D 磁盘空间已满 lenovo联想会员俱乐部社区i~-GgA!WQ$z
    62 800A003E 输入超出文件尾
    `?[x.Ng067 800A0043 文件太多 lenovo联想会员俱乐部社区/M{]4w1K-~#uB
    68 800A0044 设备不可用 lenovo联想会员俱乐部社区o3[#n"c0jx[0z c
    70 800A0046 权限禁用
    C,d LS]071 800A0047 磁盘未准备好 lenovo联想会员俱乐部社区;f(qH tA'P
    74 800A004A 不能用不同的驱动重命名 lenovo联想会员俱乐部社区g U$U1P+z
    75 800A004B 路径/文件访问错误 lenovo联想会员俱乐部社区5x:i3cBI?!w7t;x Vf
    76 800A004C 路径未找到 lenovo联想会员俱乐部社区&Z? E7p }"f
    91 800A005B 对象变量或With块变量未设置
    dtQ)`$d0p092 800A005C For循环未初始化 lenovo联想会员俱乐部社区 @C ?z8i3J?
    94 800A005E Null使用无效
    E&iz G2uw1l7CA0322 800A0042 不能建立所需的临时文件 lenovo联想会员俱乐部社区!W['q(w0r4{eg J$g X
    424 800A01A8 需要对象 lenovo联想会员俱乐部社区-vf z&A*\i
    429 800A01A9 Automation服务器不能建立对象
    *u3mo7a/C K.pC0430 800A01AE 类不支持Automation
    vtg0r~n0U0432 800A01B0 在Automation操作中找不到文件名或类名
    |2ZT8{M[K}S0438 800A01B6 对象不支持这个属性或方法
    1D0t'[Ib`S0440 800A01B8 Automation错误
    2d%j"I6`5im*]/zPF9`0445 800A01BD 对象不支持这个动作 lenovo联想会员俱乐部社区Z7cL:uuJW'w-E8y
    446 800A01BE 对象不支持指定的参数
    sL#rA"Afg0447 800A01BF 对象不支持当前区域设置 lenovo联想会员俱乐部社区,j3OB;idK%j)w
    448 800A01C0 指定的参数未找到
    _/v'[6OX4R5h5e0449 800A01C1 参数不可选
    C#X @F8}t:hr0450 800A01C2 错误的参数数目或非法属性分配 lenovo联想会员俱乐部社区4}/C*um ? G OA3h})C
    451 800A01C3 对象不是一个集合 lenovo联想会员俱乐部社区l*{#w-|*gN6p e
    453 800A01C5 指定的dll函数未找到
    p8X-y&?t| A4Pv0gk*k.@0458 800A01CA 变量使用了一个Jscrīpt不支持的Automation类型 lenovo联想会员俱乐部社区_Q,c,^? e"m&Q
    462 800A01CE 远程服务器机器不存在或不可用 lenovo联想会员俱乐部社区+v5H9g.AS(f!\ }B/iyt
    501 800A01F5 不能分配给变量 lenovo联想会员俱乐部社区'{"CD&hD~$[oa,Y x
    502 800A01F6 对象对于脚本不安全
    4q2dJ3w h h&R%N0503 800A01F7 对象对于初始化不安全
    ,~nd4O5RKk$} I0504 800A01F8 对象对建立不安全 lenovo联想会员俱乐部社区!L(UKI+N@
    5000 800A1388 不能分配给“this” lenovo联想会员俱乐部社区Y L zu"nN
    5001 800A1389 需要 Number 类型
    )U8Td9MS8gb05002 800A138A 需要 Function 对象
    bY0G |2pP/J$g05003 800A138B 不能给函数返回值赋值
    &_g B8r;H I#QW05004 800A138C 不能索引对象 lenovo联想会员俱乐部社区e0]ei%HR ^W[
    5005 800A138D 需要 String
    M3_w t}-B1u5s05006 800A138E 需要 Date 对象
    Q5_}o5UM'B05007 800A138F 需要 Object 类型 lenovo联想会员俱乐部社区 d7K Itv\WEd8y
    5008 800A1390 非法赋值
    F |Gp&]3Na3U05009 800A1391 未定义标识符 lenovo联想会员俱乐部社区*lKI"p_
    5010 800A1392 需要 Boolean lenovo联想会员俱乐部社区H"Qd|A
    5011 800A1393 不能执行来自一个自由脚本的代码
    6Q;zP2n8T `;cn i"l:ta05012 800A1394 需要对象的成员 lenovo联想会员俱乐部社区'H'M g'wzj V
    5013 800A1395 需要 VBArray
    y:k;|K;sUi05014 800A1396 需要 Jscrīpt 对象
    LI0FM.i$F"k,F:z05015 800A1397 需要 Enumerator 对象
    t(?-Wi*YrK(m R05016 800A1398 需要正则表达式对象
    YpQ&XY05017 800A1399 正则表达式语法错误 lenovo联想会员俱乐部社区kB+EvCl#H/i.v
    5018 800A139A 未预期的限定符 lenovo联想会员俱乐部社区(dO'Jq M[)c5U/i
    5019 800A139B 正则表达式中缺少“]”
    p;uB0|N,Z05020 800A139C 正则表达式中缺少“)” lenovo联想会员俱乐部社区`e:I4S*U
    5021 800A139D 字符集范围无效
    L%X&I}n7II$]4c9z B05022 800A139E 异常抛出,但无法抓住
    ,\nGEq Jv05023 800A139F 函数没有合法的 Prototype (原型)对象 lenovo联想会员俱乐部社区Tm7WH2D~
    5024 800A13A0 待解码的 URI 包含有非法字符 lenovo联想会员俱乐部社区"oR Q"L|-V2b
    5025 800A13A1 待解码的 URI 编码非法 lenovo联想会员俱乐部社区4q1n;Wt9{mE Sy5]
    5026 800A13A2 小数部分的位数越界
    4l;h7EDhR!P-K05027 800A13A3 精度越界
    CE.w4o#eip(H8F05028 800A13A4 需要 Array 或 arguments 对象 lenovo联想会员俱乐部社区bBA1?!?1i O{
    5029 800A13A5 数组长度必须为一有限正整数 lenovo联想会员俱乐部社区f{| p^N
    5030 800A13A6 必须赋给数组长度一个有限正数
    #rVCD0GN)h0
    8k2QQ(a~a}0******************************************************* lenovo联想会员俱乐部社区#?3w6raEP
    jscrīpt错误代码及相应解释大全 lenovo联想会员俱乐部社区%XS+j2|2[#RX R g
    Jscrīpt 语法错误
    v4WO*G x6Cw0Jscrīpt 语法错误是指当 Jscrīpt 语句违反了 Jscrīpt 脚本语言的一条或多条语法规
    V6U:q)hLk~w0则时导致的错误。Jscrīpt 语法错误发生在程序编译阶段,在开始运行该程序之前。( lenovo联想会员俱乐部社区^`#i7su7Z
    错误发生在开发过程中),以下是32个语法错误 lenovo联想会员俱乐部社区"Sr&K,x5eB
    lenovo联想会员俱乐部社区fh0R#D-R#tY [+j
    错误号 描述 lenovo联想会员俱乐部社区P|h?+U
    十进制 十六进制 说明 lenovo联想会员俱乐部社区X7s'sx{#pcX a&V
    1001 800A03E9 内存不足 lenovo联想会员俱乐部社区5`t%s2[2dP?Y r
    1002 800A03EA 语法错误 lenovo联想会员俱乐部社区Y.CA%TYv%F+zH.k
    1003 800A03EB 需要“:” lenovo联想会员俱乐部社区|,vg] } W.H
    1004 800A03EC 需要“;” lenovo联想会员俱乐部社区4MFVm?4^A W
    1005 800A03ED 需要“(”
    +k$uL7{)`+H;u01006 800A03EE 需要“)”
    ee OZAc%i01007 800A03EF 需要“]”
    *U'f.JLsZ01008 800A03F0 需要“{”
    f1MIp@{oa01009 800A03F1 需要“}” lenovo联想会员俱乐部社区~%\FMq"ZuQ
    1010 800A03F2 需要标识符 lenovo联想会员俱乐部社区.d/F9}/uMb$K!rs`+Xb
    1011 800A03F3 需要“=” lenovo联想会员俱乐部社区-U1xc3O kh5e/`
    1012 800A03F4 需要“/”
    5`6M,~a ?lv9b(Cya01013 800A03F5 无效数 lenovo联想会员俱乐部社区$`A5@R#R HR FuF
    1014 800A03F6 非法字符 lenovo联想会员俱乐部社区(a,d9S&kD&c:`2]0@[
    1015 800A03F7 字符串常数未结束 lenovo联想会员俱乐部社区`VT6bz
    1016 800A03F8 注释未结束
    O$B2q X1^*m`X01018 800A03FA 函数外有 ’return’ 语句
    $WDu,O(^L8C(P01019 800A03FB 在循环外不能有“break” lenovo联想会员俱乐部社区s-z oYW{6?:o i
    1020 800A03FC 在循环外不能有“continue”
    "@a-K-_k5]XD01023 800A03FF 需要十六进制数
    8Z4GJ.n4IC01024 800A0400 需要“while” lenovo联想会员俱乐部社区6Kkw)L }nI-O+Fl
    1025 800A0401 标签定义重复 lenovo联想会员俱乐部社区D5\x5j/BI6r.m
    1026 800A0402 未找到标签
    /]&`j"t.i01027 800A0403 一条 “switch” 语句中只能有一个 “default”
    a(R2wB `3_01028 800A0404 需要标识符、字符串或者数字 lenovo联想会员俱乐部社区A&p]nU){'Qn3`
    1029 800A0405 需要“@end”
    pq;J~o2e#]01030 800A0406 条件编译已关闭
    2UjB5[k zO V;F)dB01031 800A0407 需要常数
    C-~%\2n%o\2N7UF01032 800A0408 需要“@”
    :] Zz[2U6SH+d01033 800A0409 需要“catch” lenovo联想会员俱乐部社区~!SX.l+H2b
    1034 800A040A 需要“var”
    u)?O-K p.Z"_] ~01035 800A040B “Throw”的后面必须跟有一个表达式,且在同一源代码行上
    D+~,A7J.C fwpi0lenovo联想会员俱乐部社区J@(N#t6Q5PO8s
    ************************************************************************ lenovo联想会员俱乐部社区ph Wa:yq3ds}
    VBscrīpt 运行时错误 lenovo联想会员俱乐部社区 qi9Y"JM+D
    如果 VBscrīpt 脚本执行系统无法实施的操作,则会产生 VBscrīpt 运行时错误。只有
    P(@z4q @*bT#{0在运行脚本、为变量表达式赋值或 lenovo联想会员俱乐部社区-pE d f U3x
    分配内存时,才会产生 VBscrīpt 运行时错误。 以下是65个运行时错误:
    BE!k&z+T.YF}0错误编号 描述 lenovo联想会员俱乐部社区3| w I-M.r]
    十进制 十六进制 说明 lenovo联想会员俱乐部社区{Q'B.zDEL
    5 800A0005 无效过程调用或参数
    6k1}3eP1Qe:N06 800A0006 溢出
    RuFg5N uy07 800A0007 内存不足
    Y-E3gf-s.E09 800A0009 下标越界
    H8?dz.h4_\ _6c3P010 800A000A 该数组为定长的或临时被锁定
    &vsy2A9ql&qS011 800A000B 被零除 lenovo联想会员俱乐部社区%y:Zei:`+UU
    13 800A000D 类型不匹配 lenovo联想会员俱乐部社区RW%A4Dp!y7M5]
    14 800A000E 字符串空间溢出
    -HSm-D~'j*W017 800A0011 无法执行请求的操作 lenovo联想会员俱乐部社区(e&l)^/oB C[)W8yx
    28 800A001C 堆栈溢出 lenovo联想会员俱乐部社区7T3MH#X T6pF
    35 800A0023 未定义 Sub 或 Function
    8{'Y B&cK048 800A0030 加载 DLL 错误
    H4T2z'|0a051 800A0033 内部错误 lenovo联想会员俱乐部社区)Eu fy;w9Ay;S*L
    52 800A0034 坏文件名或数
    !y4d%|c|SMB8M053 800A0035 文件未找到 lenovo联想会员俱乐部社区.u x,SWFE z)R8q3}l
    54 800A0036 坏文件模式 lenovo联想会员俱乐部社区I%NlHd6O$L f
    55 800A0037 文件已经打开 lenovo联想会员俱乐部社区!tK]!Rr&gUvH
    57 800A0039 设备I/O错误
    .b3V1|n-a7ja058 800A003A 文件已经存在 lenovo联想会员俱乐部社区Oi$s9o$H _^&Xy,e"y
    61 800A003D 磁盘空间已满 lenovo联想会员俱乐部社区 vJH%xoR__C
    62 800A003E 输入超出文件尾
    _+Y-EC ]067 800A0043 文件太多 lenovo联想会员俱乐部社区or:d nO)ps
    68 800A0044 设备不可用 lenovo联想会员俱乐部社区b)~aP"`W3A9NR
    70 800A0046 权限禁用
    lc&V ^:E^y071 800A0047 磁盘未准备好
    [-^:~4S W*V z074 800A004A 不能用不同的驱动器重新命名 lenovo联想会员俱乐部社区^3A [#Xfg
    75 800A004B 路径/文件访问错误
    vLC$^oE076 800A004C 路径未找到
    UNw ~6F E u6DG091 800A005B 未设置对象变量 lenovo联想会员俱乐部社区g{P5Ka2@
    92 800A005C For 循环未初始化 lenovo联想会员俱乐部社区J6{a!Lk [~
    94 800A005E 非法使用 Null
    Fv&Nqq7^)O"k0322 800A0142 不能建立所需临时文件 lenovo联想会员俱乐部社区B b6i},b8l
    424 800A01A8 需要对象
    'k$|#YxQ*Sr/GF0429 800A01AD ActiveX 部件无法创建对象
    :` G ^ tu#I+u{0430 800A01AE 类不支持自动化
    -o ~e-g0D%l6f({rGA7^0432 800A01B0 在自动化操作中未找到文件名或类名 lenovo联想会员俱乐部社区?8d2j2iL8J{
    438 800A01B6 对象不支持该属性或方法
    6T2Ml[1Oc,\*iaT0440 800A01B8 Automation错误
    _sZ'_9V0445 800A01BD 对象不支持此操作
    %g w;XsI0446 800A01BE 对象不支持指定的参数 lenovo联想会员俱乐部社区x+~+vD&\9c&qM
    447 800A01BF 对象不支持当前的区域设置
    &? Z!g!}J5E0448 800A01C0 未找到命名参数 lenovo联想会员俱乐部社区 Z@Ia8^
    449 800A01C1 参数不可选 lenovo联想会员俱乐部社区.u-v'c-j"n#S
    450 800A01C2 错误的参数个数或无效的参数属性值 lenovo联想会员俱乐部社区:n4\|;B&aH"\9g`*L#l(}
    451 800A01C3 对象不是一个集合
    +OrpmlS0453 800A01C5 指定的dll函数未找到 lenovo联想会员俱乐部社区R2L&V*a{d
    455 800A01C7 代码源锁错误
    B-K1ro*i,j0~].[r0457 800A01C9 这个键已经是本集合的一个元素关联 lenovo联想会员俱乐部社区Ml!m"hl(kKo'h9i
    458 800A01CA 变量使用了一个 VBscrīpt 中不支持的自动化(Automation)类型 lenovo联想会员俱乐部社区?-}K;R7V2n
    462 800A01CE 远程服务器不存在或不能访问
    Hr }YCo0]%QV0481 800A01E1 无效图片
    VMN;Iv{ y?0500 800A01F4 变量未定义 lenovo联想会员俱乐部社区o,]a oVu |p
    501 800A01F5 违法的分配 lenovo联想会员俱乐部社区q6U;m o V"L
    502 800A01F6 脚本对象不安全 lenovo联想会员俱乐部社区!m?IU{0sQ~
    503 800A01F7 对象不能安全初始化
    OI3?o"w"S@"t0504 800A01F8 对象不能安全创建 lenovo联想会员俱乐部社区9nR2p7t)p:l6jxY7nn
    505 800A01F9 无效的或不合格的引用
    +RM2LN7eKp#l0506 800A01FA 类未被定义
    !W9f @} vg:s0507 800A01FB 发生异常
    )Z6yv!v7OKE Xmw0Si"P05016 800A1398 需要正则表达式对象 lenovo联想会员俱乐部社区/_6_H3t0U0^%e
    5017 800A1399 正则表达式中的语法错误 lenovo联想会员俱乐部社区Na3E#YK7Eh
    5018 800A139A 错误的数量词
    &F_5WRgD?-]05019 800A139B 在正则表达式中需要 ']' lenovo联想会员俱乐部社区XJE,Aq4c/m
    5020 800A139C 在正则表达式中需要 ')' lenovo联想会员俱乐部社区Omx,}7mJSg#Z
    5021 800A139D 字符集越界
    F3qFBJm)Mc032811 800A802B 元素未找到 lenovo联想会员俱乐部社区(JF8Ta)a [7G
    lenovo联想会员俱乐部社区5Os#Q `KI5x m
    **************************************************************
    FQTqHC0vbscrīpt错误代码及对应解释大全 lenovo联想会员俱乐部社区G%E%S#l O?
    VBscrīpt 语法错误 lenovo联想会员俱乐部社区7?b3I`.cY fj k%A@
    如果 VBscrīpt 语句结构违反了一个或多个 VBscrīpt 脚本语言语法规则,就会产生
    %x)D9U7_ppx4b0VBscrīpt 语法错误。 lenovo联想会员俱乐部社区y0x)\E*N a Y9_
    错误通常在执行程序前,编译程序时产生。 以下是53个语法错误: lenovo联想会员俱乐部社区 j8K4B?|rXE
    错误编号 描述 lenovo联想会员俱乐部社区]t(S a!V"y g
    十进制 十六进制 说明 lenovo联想会员俱乐部社区x(\}'U$L&Sa/d d
    1001 800A03E9 内存不足 lenovo联想会员俱乐部社区IY~ ]s)yr^
    1002 800A03EA 语法错误 lenovo联想会员俱乐部社区l0cPN+uZV4Q
    1003 800A03EB 缺少“:” lenovo联想会员俱乐部社区$]\ t;LI)oW$a9t
    1005 800A03ED 需要 '(' lenovo联想会员俱乐部社区{H-mJ ~C` f
    1006 800A03EE 需要 ')'
    }"zN7w2T5XB8B;z G`g01007 800A03EF 缺少“]”
    TFUY|01010 800A03F2 需要标识符 lenovo联想会员俱乐部社区 a8w.Uy?
    1011 800A03F3 需要 '='
    $QPrBf-UJB01012 800A03F4 需要 'If' lenovo联想会员俱乐部社区S9fL;] g$d
    1013 800A03F5 需要 'To'
    I3G9Y-r.{Z7}01014 800A03F6 需要 'End'
    rz1GWX"G4iQpK)oF01015 800A03F7 需要 'Function'
    +UD*B7jx-QDdy8{9L&t01016 800A03F8 需要 'Sub' lenovo联想会员俱乐部社区h?_4R8r-vA
    1017 800A03F9 需要 'Then'
    \&esJ+M01018 800A03FA 需要 'Wend' lenovo联想会员俱乐部社区VU XW~"F/qz;z
    1019 800A03FB 需要 'Loop'
    !Y.kl0OZI.K`#n01020 800A03FC 需要 'Next'
    2z5B$[SH,i7Gw01021 800A03FD 需要 'Case'
    (bWly"B#ux_01022 800A03FE 需要 'Select'
    }+OKF#p:K?2hl01023 800A03FF 需要表达式
    C7Z:zQ%I$V/d01024 800A0400 需要语句
    &?0g,z'vW/Az01025 800A0401 需要语句的结束
    (O%ym%I g;{-_ x(Dnh`*c01026 800A0402 需要整数常数 lenovo联想会员俱乐部社区X%\%g*L#u{\
    1027 800A0403 需要 'While' 或 'Until' lenovo联想会员俱乐部社区*]9H*v;T8S
    1028 800A0404 需要 'While,'、 'Until,' 或语句未结束 lenovo联想会员俱乐部社区e skUo3B
    1029 800A0405 需要 'With'
    0~)Mm[*a4EC01030 800A0406 标识符太长 lenovo联想会员俱乐部社区&pl c;E%h p
    1031 800A0407 无效的数 lenovo联想会员俱乐部社区9W"TAoD'[d
    1032 800A0408 无效的字符 lenovo联想会员俱乐部社区7[B0D`$W
    1033 800A0409 未结束的串常量 lenovo联想会员俱乐部社区 GB.Lf~ kEU
    1034 800A040A 未结束的注释
    )Z+cbcXI%S$C2`c01037 800A040D 无效使用关键字 'Me' lenovo联想会员俱乐部社区8ZQ;JL[;H%?YM
    1038 800A040E 'loop' 没有 'do' lenovo联想会员俱乐部社区 R @k Nd)?ounhG
    1039 800A040F 无效 'exit' 语句 lenovo联想会员俱乐部社区6IR9{QB(M2z%TN
    1040 800A0410 无效 'for' 循环控制变量
    1m cD!N^!t%Z!A5A01041 800A0411 名称重定义 lenovo联想会员俱乐部社区qY|W _s_}
    1042 800A0412 必须为行的第一个语句
    %h^;\\7Rk01043 800A0413 不能赋给非Byval参数
    *e$C/G)o0N,`01044 800A0414 调用 Sub 时不能使用圆括号
    3To\K3Cajk01045 800A0415 需要文字常数
    x ]d)CbepUw01046 800A0416 需要 'In'
    :EK^k&LH&_[9p01047 800A0417 需要 'Class' lenovo联想会员俱乐部社区;z?J`x,i G
    1048 800A0418 必须在一个类的内部定义 lenovo联想会员俱乐部社区_ m`.D W1]5T5E
    1049 800A0419 在属性声明中需要 Let , Set 或 Get lenovo联想会员俱乐部社区:e j8[k4r*jG
    1050 800A041A 需要 'Property' lenovo联想会员俱乐部社区 B^0|9SL/]|9k
    1051 800A041B 参数数目必须与属性说明一致 lenovo联想会员俱乐部社区J&O[+b/vpIr&p
    1052 800A041C 在类中不能有多个缺省的属性/方法
    9t"P_~#}`%r01053 800A041D 类初始化或终止不能带参数 lenovo联想会员俱乐部社区[E7oRAFq@
    1054 800A041E Property Let 或 Set 至少应该有一个参数 lenovo联想会员俱乐部社区/X n.VBhf!m
    1055 800A041F 不需要的 'Next' lenovo联想会员俱乐部社区+z7qG"Qw
    1056 800A0420 只能在 ‘Property’ 或 ’Function’ 或 ’Sub’ 上指定 ’Default ’
    /UxE ^z {G01057 800A0421 说明 'Default' 必须同时说明 'Public' "
    'Q`eb%j'Fz2tG01058 800A0422 只能在 Property Get 中指定 'Default'
  • vb常用函数3

    2008-12-23 14:57:36

    1Left 函数——返回 Variant (String),其中包含字符串中从左边算起指定数量的字符。

    语法:Left(string, length)

    Left 函数的语法有下面的命名参数:
    string
    ——必要参数。字符串表达式其中最左边的那些字符将被返回。如果 string 包含 Null,将返             Null 
    length
    ——必要参数;为 Variant (Long)。数值表达式,指出将返回多少个字符。如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。  

     

    2Mid 函数——从字符串中返回指定数目的字符。       

    语法:Mid(string, start[, length])

    参数

    string ——字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null

    Start—— string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")

    Length——要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。

    说明:要判断 string 中字符的数目,可使用 Len 函数。      

    下面的示例利用 Mid 函数返回字符串中从第四个字符开始的六个字符:

    Dim MyVar

    MyVar = Mid("VB脚本is fun!", 4, 6) 'MyVar 包含 "scrīpt"

    注意   MidB 函数与包含在字符串中的字节数据一起使用。其参数不是指定字符数,而是字节数。

     

    3Len 函数——返回字符串内字符的数目,或是存储一变量所需的字节数。
    语法:Len(string | varname)

    参数

    String——任意有效的字符串表达式。如果 string 参数包含 Null,则返回 Null

    Varname——任意有效的变量名。如果 varname 参数包含 Null,则返回 Null

    说明:下面的示例利用 Len 函数返回字符串中的字符数目:

    Dim MyString

    MyString = Len("VBscrīpt") 'MyString 包含 8

    注意:   LenB 函数与包含在字符串中的字节数据一起使用。LenB 不是返回字符串中的字符数,而是返回用于代表字符串的字节数。

     

    4Right 函数——从字符串右边返回指定数目的字符。
    语法:Right(string, length)

    参数

    string ——字符串表达式,其最右边的字符被返回。如果 string 参数中包含 Null,则返回 Null

    Length——数值表达式,指明要返回的字符数目。如果为 0,返回零长度字符串;如果此数大于或等于 string 参数中的所有字符数目,则返回整个字符串。

    说明:要确定 string 参数中的字符数目,使用 Len 函数。

    下面的示例利用 Right 函数从字符串右边返回指定数目的字符:

    Dim AnyString, MyStr

    AnyString = "Hello World"      ' 定义字符串。

    MyStr = Right(AnyString, 1)    ' 返回 "d"

    MyStr = Right(AnyString, 6)    ' 返回 " World"

    MyStr = Right(AnyString, 20)   ' 返回 "Hello World"

    注意: RightB 函数用于字符串中的字节数据,length 参数指定返回的是字节数目,而不是字符数目。

     

    5InStr 函数——返回某字符串在另一字符串中第一次出现的位置。
       
    语法:InStr([start, ]string1, string2[, compare])

    参数

    Start——可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。

    string1——必选项。接受搜索的字符串表达式。

    string2——必选项。要搜索的字符串表达式。

    compare ——可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅设置部分。如果省略,将执行二进制比较。

    设置--compare 参数可以有以下值:常数、值、描述
    vbBinaryCompare
     0
     
    执行二进制比较。
     
    vbTextCompare
     1
     
    执行文本比较。
     

    返回值

    InStr 函数返回以下值:

    如果
     InStr
    返回
     
    string1
    为零长度
     0
     
    string1
    Null
     Null
     
    string2
    为零长度
     start
     
    string2
    Null
     Null
     
    string2
    没有找到
     0
     
    string1 中找到 string2
     
    找到匹配字符串的位置
     
    start > Len(string2)
     0
     

    说明

    下面的示例利用 InStr 搜索字符串:

    Dim SearchString, SearchChar, MyPos

    SearchString ="XXpXXpXXPXXP"   ' 要搜索的字符串。

    SearchChar = "P"   ' Search for "P".

    MyPos = Instr(4, SearchString, SearchChar, 1)   ' 在位置 4 进行的文本比较。返回 6

    MyPos = Instr(1, SearchString, SearchChar, 0)   ' 在位置 1 进行的二进制比较。返回 9

    MyPos = Instr(SearchString, SearchChar)   ' 默认情况下,进行的是二进制比较(省略了最后的参数)。返回 9

    MyPos = Instr(1, SearchString, "W")   ' 在位置 1 进行的二进制比较。返回 0(找不到 "W")。

    注意   InStrB 函数使用包含在字符串中的字节数据,所以 InStrB 返回的不是一个字符串在另一个字符串中第一次出现的字符位置,而是字节位置。

     

    6LTrimRTrim Trim 函数——返回不带前导空格 (LTrim)、后续空格 (RTrim) 或前导与后续空格 (Trim) 的字符串副本。
    语法:LTrim(string)

          RTrim(string)

          Trim(string)

    String——参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null

    说明:下面的示例利用 LTrim, RTrim, Trim 函数分别用来除去字符串开始的空格、尾部空格、 开始和尾部空格:

    Dim MyVar

    MyVar = LTrim("   vbscrīpt ")   'MyVar 包含 "vbscrīpt "

    MyVar = RTrim("   vbscrīpt ")   'MyVar 包含 "   vbscrīpt"

    MyVar = Trim("   vbscrīpt ")   'MyVar 包含 "vbscrīpt"

     

    7Rnd 函数——返回一个随机数。
    语法:Rnd[(number)]

    Number——参数可以是任意有效的数值表达式。

    说明: Rnd 函数返回一个小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式:

    如果 number Rnd 生成
    小于零——每次都相同的值,使用 number 作为种子。

    大于零——序列中的下一个随机数。

    等于零——最近生成的数。

    省略——序列中的下一个随机数。
        
    因每一次连续调用 Rnd 函数时都用序列中的前一个数作为下一个数的种子,所以对于任何最初给定的种子都会生成相同的数列。

        在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有基于系统计时器的种子。

        要产生指定范围的随机整数,请使用以下公式:

    Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

       这里, upperbound 是此范围的上界,而 lowerbound 是此范围内的下界。

    注意   要重复随机数的序列,请在使用数值参数调用 Randomize 之前,立即用负值参数调用 Rnd。使用同样 number 值的 Randomize 不能重复先前的随机数序列。

     

    8Randomize 语句——初始化随机数生成器。
    语法:Randomize [number]

            查看(564) 评论(0) 收藏 分享 管理

  • vb常用函数2

    2008-12-23 14:39:28

    在编写 QTP脚本的过程中,有一些经常使用的函数。如果我们能熟悉这些常用的函数及其用法,并合理地使用它们,那么一些问题就很容易得到解决。下面是我总结的VBscrīpt中常用的函数及其用法。
    1,GetROProperty
      说明:You use the GetROProperty method to retrieve the current value of a test object property from a run-time object in your application.
      一般来说,所有的对象都可以使用此方法得到运行时对象的实际值。
      语法:object.GetROProperty (Property, [PropertyData])

    ButtonName=Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").GetTOProperty("Name")
    2,WaitProperty
      说明:Waits until the specified object property achieves the specified value or exceeds the specified timeout before continuing to the next step.
      此方法可以解决由于等待系统进行处理某些操作或网络原因引起的测试对象同步问题。
         语法:object.WaitProperty (PropertyName, PropertyValue, [TimeOut])

    Window("Test").Static("Status:").WaitProperty "text", "Ready", 30000
    3,Instr
    Returns the position of the first occurrence of one string within another.
      可以得到一个字符串在另外一个字符串中首次出现的位置。
      语法: InStr([start, ]string1, string2[, compare])

    4,Split
    Returns a zero-based, one-dimensional array containing a specified number of substrings.
      此函数可以把原来用某个特殊字符串连接起来的字符串分割开,得到一个一维的数组。
    5,UBound
    Returns the largest available subscrīpt for the indicated dimension of an array.
    得到某个维度的最大值。
    6,Trim
    Returns a copy of a string without leading spaces (LTrim), trailing spaces (RTrim), or both leading and trailing spaces (Trim).

      如果需要删除字符串左边的所有空格,那么可以使用LTrim  函数;如果需要删除字符串右边的所有空格,那么可以使用RTrim  函数。如果需要删除字符串左边和右边的所有空格,那么可以使用Trim  函数。
    7,Ucase
    Returns a string that has been converted to uppercase.
      此函数可以把所有的字符都转换成相应的大写。
    8,LCase
    Returns a string that has been converted to lowercase.
      此函数可以把所有的字符都转换成相应的小写。
    9,Cstr
    Returns an expression that has been converted to a Variant of subtype String.

      由于VBscrīpt只有一种类型Variant,你可以使用此函数把某个变量强制转换成String类型。
    10,CInt
    Returns an expression that has been converted to a Variant of subtype Integer.
      由于VBscrīpt只有一种类型Variant,你可以使用此函数把某个变量强制转换成Integer类型。
      在描述性编程语句中,最常用的函数有:

    11,Create
      这是创建一类或一个对象时必须要使用的方法。

    12,ChildObjects
      使用此方法可以得到符合某些条件的一类对象的集合。

    13,Count
      使用使用此方法可以得到符合某些条件的一类对象的个数。
    The following example uses the Create method to return a Properties collection object named EditDescrīption, and then uses the returned object to instruct QuickTest to enter the text: MyName in the first WebEdit object in the Mercury Tours page with the name UserName.
    Set EditDesc = Descrīption.Create()
    EditDesc("micclass").Value = "WebEdit"
    EditDesc("Name").Value = "userName"

    Set Lists = Browser("Welcome: Mercury").Page("Welcome: Mercury").ChildObjects(EditDesc)
    NumberOfLists = Lists.Count()
    If NumberOfLists > 0 Then
      Browser("Welcome: Mercury").Page("Welcome: Mercury").Lists(0).Set "MyName"
    End If
      一些具体的用法可以在 QTP的帮助里面找到。 个人的建议是:你最好按照 QTP里面提供的例子,自己使用这些函数自己写几行语句,运行后看一下运行结果,结合QTP帮助里面的说明,这样学习会快,也记得牢固。
      在输出结果时, 常用的函数有 Msgbox 和 Print 函数。Msgbox 函数在 QTP8.2 及其以上版本都可以使用;Print 函数需要在 QTP 9.2 版本上使用,QTP 8.2 不支持此函数,不知道 QTP 9.0是否支持此函数。
      希望大家共同总结一下,一起进步。

    转自:

  • VBS的常用函数

    2008-12-23 14:28:06

    Abs(number) 取得数值的绝对值。  
    Asc(String) 取得字符串表达式的第一个字符ASCII 码。  
    Atn(number) 取得一个角度的反正切值。  
    CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。  
    CBool(expression) 转换表达式为Boolean 型态。  
    CByte(expression) 转换表达式为Byte 型态。  
    CChar(expression) 转换表达式为字符型态。  
    CDate(expression) 转换表达式为Date 型态。  
    CDbl(expression) 转换表达式为Double 型态。  
    CDec(expression) 转换表达式为Decimal 型态。  
    CInt(expression) 转换表达式为Integer 型态。  
    CLng(expression) 转换表达式为Long 型态。  
    CObj(expression) 转换表达式为Object 型态。  
    CShort(expression) 转换表达式为Short 型态。  
    CSng(expression) 转换表达式为Single 型态。  
    CStr(expression) 转换表达式为String 型态。  
    Choose (index, choice-1[, choice-2, ... [, choice-n]]) 以索引值来选择并传回所设定的参数。  
    Chr(charcode) 以ASCII 码来取得字符内容。  
    Close(filenumberlist) 结束使用Open 开启的档案。  
    Cos(number) 取得一个角度的余弦值。  
    Ctype(expression, typename) 转换表达式的型态。  
    DateAdd(dateinterval, number, datetime) 对日期或时间作加减。  
    DateDiff(dateinterval, date1, date2) 计算两个日期或时间间的差值。  
    DatePart (dateinterval, date) 依接收的日期或时间参数传回年、月、日或时间。  
    DateSerial(year, month, day) 将接收的参数合并为一个只有日期的Date 型态的数据。  
    DateValue(datetime) 取得符合国别设定样式的日期值,并包含时间。 
    Day(datetime) 依接收的日期参数传回日。  
    Eof(filenumber) 当抵达一个被开启的档案结尾时会传回True。  
    Exp(number) 依接收的参数传回e 的次方值。  
    FileDateTime(pathname) 传回档案建立时的日期、时间。  
    FileLen(pathname) 传回档案的长度,单位是Byte。  
    Filter(sourcearray, match[, include[, compare]])  搜寻字符串数组中的指定字符串,凡是数组元素中含有指定字符串,会将它们结合成新的字符串数组并传回。若是要传回不含指定字符串的数组元素,则 include 参数设为False。compare 参数则是设定搜寻时是否区分大小写,此时只要给TextCompare 常数或1 即可。  
    Fix(number) 去掉参数的小数部分并传回。  
    Format(expression[, style[, firstdayofweek[, firstweekofyear]]]) 将日期、时间和数值资料转为每个国家都可以接受的格式。  
    FormatCurrency(expression[,numdigitsafterdecimal [,includeleadingdigit]]) 将数值输出为金额型态。numdigitsafterdecimal 参数为小数字数,includeleadingdigit 参数为当整数为0 时是否补至整数字数。  
    FormatDateTime(date[,namedformat]) 传回格式化的日期或时间数据。  
    FormatNumber(expression[,numdigitsafterdecimal [,includeleadingdigit]]) 传回格式化的数值数据。Numdigitsafterdecimal 参数为小数字数,includeleadingdigit 参数为当整数为0 时是否补至整数字数。  
    FormatPercent(expression[,numdigitsafterdecimal [,includeleadingdigit]]) 传回转换为百分比格式的数值数据。numdigitsafterdecimal 参数为小数字数,includeleadingdigit 参数为当整数为0 时是否补至整数字数。  
    GetAttr(filename) 传回档案或目录的属性值。  
    Hex(number) 将数值参数转换为16 进制值。
    Hour(time) 传回时间的小时字段,型态是Integer。  
    Iif(expression, truepart, falsepart) 当表达式的传回值为True 时执行truepart 字段的程序,反之则执行falsepart 字段。  
    InStr([start, ]string1, string2) 搜寻string2 参数设定的字符出现在字符串的第几个字符,start 为由第几个字符开始寻找,string1 为欲搜寻的字符串,string2 为欲搜寻的字符。  
    Int(number) 传回小于或等于接收参数的最大整数值。  
    IsArray(varname) 判断一个变量是否为数组型态,若为数组则传回True,反之则为False。 
    IsDate(expression) 判断表达式内容是否为DateTime 型态,若是则传回True,反之则为False。  
    IsDbNull(expression) 判断表达式内容是否为Null,若是则传回True,反之则为False。  
    IsNumeric(expression) 判断表达式内容是否为数值型态,若是则传回True,反之则为False。  
    Join(sourcearray[, delimiter]) 将字符串数组合并唯一个字符串,delimiter 参数是设定在各个元素间加入新的字符串。  
    Lcase(string) 将字符串转换为小写字体。  
    Left(string, length) 由字符串左边开始取得length 参数设定长度的字符。  
    Len(string) 取得字符串的长度。  
    Log(number) 取得数值的自然对数。  
    Ltrim(string) 去掉字符串的左边空白部分。  
    Mid(string, start[, length]) 取出字符串中strat 参数设定的字符后length 长度的字符串,若length 参数没有设定,则取回start 以后全部的字符。  
    Minute(time) 取得时间内容的分部分,型态为Integer。  
    MkDir(path) 建立一个新的目录。  
    Month(date) 取得日期的月部分,型态为Integer。 
    MonthName(month) 依接收的月份数值取得该月份的完整写法。  
    Now() 取得目前的日期和时间。  
    Oct(number) 将数值参数转换为8 进制值。  
    Replace(expression, find, replace) 将字符串中find 参数指定的字符串转换为replace 参数指定的字符串。  
    Right(string,length) 由字符串右边开始取得length 参数设定长度的字符。  
    RmDir(path) 移除一个空的目录。  
    Rnd() 取得介于0 到1 之间的小数,如果每次都要取得不同的值,使用前需加上Randomize 叙述。  
    Rtrim(string) 去掉字符串的右边空白部分。  
    Second(time) 取得时间内容的秒部分,型态为Integer。  
    Sign(number) 取得数值内容是正数或负数,正数传回1,负数传回-1,0 传回0。  
    Sin(number) 取得一个角度的正弦值。  
    Space(number) 取得number 参数设定的空白字符串。 
    Split(expression[, delimiter]) 以delimiter 参数设定的条件字符

     

     

     

     

    Abs 函数:返回数的绝对值。  
    Array函数:返回含有数组的变体。 
    Asc 函数:返回字符串首字母的 ANSI 字符码。
    Atn 函数:返回数值的反正切。  
    CBool函数:返回已被转换为 Boolean 子类型的变体的表达式。  
    CByte函数:返回已被转换为字节子类型的变体的表达式。  
    CCur 函数:返回已被转换为货币子类型的变体的表达式。  
    CDate函数:返回已被转换为日期子类型的变体的表达式。  
    CDbl函数:返回已被转换为双精度子类型的变体的表达式。  
    Chr 函数:返回与指定的 ANSI 字符码相关的字符。  
    CInt 函数:返回已被转换为整形子类型的变体的表达式。  
    CLng 函数;返回已被转换为Long子类型的变体的表达式。  
    Cos 函数:返回角度的余弦。   C
    reateObject函数:创建并返回对“自动”对象的引用。
    CSng函数:返回已被转换为单精度子类型的变体的表达式。
    CStr函数:返回已被转换为字符串子类型的变体的表达式。
    Date函数:返回当前系统日期。
    DateAdd 函数:返回的日期已经加上了指定的时间间隔。
    DateDiff 函数:返回两个日期之间的间隔。
    DatePart 函数:返回给定日期的指定部分。
    DateSerial函数:返回指定年月日的日期子类型的变体。
    DateValue 函数:返回日期子类型的变体。
    Day 函数:返回日期,取值范围为 1 至 31。
    Eval 函数:计算表达式并返回结果。
    Exp 函数:返回 e (自然对数的底) 的多少次方。
    Filter函数:根据指定的筛选条件,返回含有字符串数组子集的、下限为 0 的数组。
    Fix 函数:返回数的整数部分。
    FormatCurrency 函数:返回的表达式为货币值格式,其货币符号采用系统控制面板中定义的。
    FormatDateTime 函数:返回的表达式为日期和时间格式。
    FormatNumber 函数:返回的表达式为数字格式。
    FormatPercent 函数:返回的表达式为百分数(乘以 100)格式,后面有 % 符号。
    GetObject 函数:返回从文件对“自动”对象的引用。
    GetRef 函数:返回对能够绑定到一事件的过程的引用。
    Hex 函数:返回一字符串,代表一个数的十六进制值。
    Hour函数:返回表示钟点的数字,取值范围为 0 至 23。
    InputBox函数:在对话框中显式一提示,等待用户输入文本或单击按钮,并返回文本框的内容。
    InStr函数:返回一个字符串在另一个字符串中首次出现的位置。
    InStrRev函数;返回一个字符串在另一个字符串中出现的位置,但是从字符串的尾部算起。

  • VBscrīpt编码约定

    2008-12-23 14:18:33

    VBscrīpt编码约定

    编码约定是帮助您使用 Microsoft Visual Basic scrīpting Edition 编写代码的一些建议。编码约定包含以下内容:

    • 对象、变量和过程的命名约定
    • 注释约定
    • 文本格式和缩进指南

    使用一致的编码约定的主要原因是使脚本或脚本集的结构和编码样式标准化,这样代码易于阅读和理解。使用好的编码约定可以使源代码明白、易读、准确,更加直观且与其他语言约定保持一致。

    常数命名约定

    VBscrīpt 的早期版本不允许创建用户自定义常数。如果要使用常数,则常数以变量的方式实现,且全部字母大写以和其他变量区分。常数名中的多个单词用下划线 (_) 分隔。例如:

     USER_LIST_MAX
    NEW_LINE

    这种标识常数的方法依旧可行,但您还可以选择其他方案,用 Const 语句创建真正的常数。这个约定使用大小写混合的格式,并以“con”作为常数名的前缀。例如:

     conYourOwnConstant

    变量命名约定

    为提高易读和一致性,请在 VBscrīpt 代码中使用以下变量命名约定:

    子类型 前缀 示例
    Boolean bln blnFound
    Byte byt bytRasterData
    Date (Time) dtm dtmStart
    Double dbl dblTolerance
    Error err errOrderNum
    Integer int intQuantity
    Long lng lngDistance
    Object obj objCurrent
    Single sng sngAverage
    String str strFirstName

    变量作用域

    变量应定义在尽量小的作用域中。VBscrīpt 变量的作用域如下所示:

    作用域 声明变量处 可见性
    过程级 事件、函数或子过程。 在声明变量的过程中可见。
    scrīpt 级 HTML 页面的 HEAD 部分,任何过程之外。 在脚本的所有过程中可见。

    变量作用域前缀

    随着脚本代码长度的增加,有必要快速区分变量的作用域。在类型前缀前面添加一个单字符前缀可以实现这一点,而不致使变量名过长。

    作用域 前缀 示例
    过程级 dblVelocity
    scrīpt 级 s sblnCalcInProgress

    描述性变量名和过程名

    变量名或过程名的主体应使用大小写混合格式,并且尽量完整地描述其目的。另外,过程名应以动词开始,例如 InitNameArray 或 CloseDialog。

    对于经常使用的或较长的名称,推荐使用标准缩写以使名称保持在适当的长度内。通常多于 32 个字符的变量名会变得难以阅读。使用缩写时,应确保在整个脚本中保持一致。例如,在一个脚本或脚本集中随意切换 Cnt 和 Count 将造成混乱。

    对象命名约定

    下表列出了 VBscrīpt 中可能用到的对象命名约定(推荐):

    对象类型 前缀 示例
    3D 面板 pnl pnlGroup
    动画按钮 ani aniMailBox
    复选框 chk chkReadOnly
    组合框、下拉列表框 cbo cboEnglish
    命令按钮 cmd cmdExit
    公共对话框 dlg dlgFileOpen
    框架 fra fraLanguage
    水平滚动条 hsb hsbVolume
    图像 img imgIcon
    标签 lbl lblHelpMessage
    直线 lin linVertical
    列表框 lst lstPolicyCodes
    旋钮 spn spnPages
    文本框 txt txtLastName
    垂直滚动条 vsb vsbRate
    滑块 sld sldScale

    代码注释约定

    所有过程的开始部分都应有描述其功能的简要注释。这些注释并不描述细节信息(如何实现功能),这是因为细节有时要频繁更改。这样就可以避免不必要的注释维护工作以及错误的注释。细节信息由代码本身及必要的内部注释来描述。

    当传递给过程的参数的用途不明显,或过程对参数的取值范围有要求时,应加以说明。如果过程改变了函数和变量的返回值(特别是通过参数引用来改变),也应在过程的开始部分描述该返回值。

    过程开始部分的注释应包含以下区段标题。相关样例,请参阅后面的“格式化代码”部分。

    区段标题 注释内容
    目的 过程的功能(不是实现功能的方法)。
    假设 其状态影响此过程的外部变量、控件或其他元素的列表。
    效果 过程对每个外部变量、控件或其他元素的影响效果的列表。
    输入 每个目的不明显的参数的解释。每个参数都应占据单独一行并有其内部注释。
    返回 返回值的解释。

    请记住以下几点:

    • 每个重要的变量声明都应有内部注释,描述变量的用途。
    • 应清楚地命名变量、控件和过程,仅在说明复杂细节时需要内部注释。
    • 应在脚本的开始部分包含描述该脚本的概述,列举对象、过程、运算法则、对话框和其他系统从属物。有时一段描述运算法则的假码是很有用的。

    格式化代码

    应尽可能多地保留屏幕空间,但仍允许用代码格式反映逻辑结构和嵌套。以下为几点提示:

    • 标准嵌套块应缩进 4 个空格。
    • 过程的概述注释应缩进 1 个空格。
    • 概述注释后的最高层语句应缩进 4 个空格,每一层嵌套块再缩进 4 个空格。例如:
    '*********************************************************
    ' Purpose: Locates the first occurrence of a specified user
    '          in the UserList array.
    ' Inputs: strUserList(): the list of users to be searched.
    '         strTargetUser: the name of the user to search for.
    ' Returns: The index of the first occurrence of the strTargetUser
    '          in the strUserList array.
    '          If the target user is not found, return -1.
    '*********************************************************
    Function intFindUser (strUserList(), strTargetUser)
       Dim i   ' Loop counter.
       Dim blnFound   ' Target found flag
       intFindUser = -1
       i = 0   ' Initialize loop counter
       Do While i <= Ubound(strUserList) and Not blnFound
          If strUserList(i) = strTargetUser Then
             blnFound = True   ' Set flag to True
             intFindUser = i   ' Set return value to loop count
          End If
          i = i + 1   ' Increment loop counter
       Loop
    End Function
    转自:http://www.51testing.com/?134114/action_viewspace_itemid_74558.html
  • 基于实际测试的功能测试点总结

    2008-12-18 16:46:54

       作者: 未知    来源: 网络转载

    1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。LinkBotPro不支持中文,中文字符显示为乱码;HTML Link Validater只能测试以Html或者htm结尾的网页链接;Xenu无需安装,支持asp、do、jsp等结尾的网页,xenu测试链接包括内部链接和外部链接,在使用的时候应该注意,同时能够生成html格式的测试报告。如果系统用QTP进行自动化测试,也可以使用QTP的页面检查点检查链接。

    2. 相关性检查:

      ?? 功能相关性:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确,常见的情况是,增加某个数据记录以后,如果该数据记录某个字段内容较长,可能会在查询的时候让数据列表变形。

      ?? 数据相关性:下来列表默认值检查,下来列表值检查,如果某个列表的数据项依赖于其他模块中的数据,同样需要检查,比如,某个数据如果被禁用了,可能在引用该数据项的列表中不可见。

    3. 检查按钮的功能是否正确:如新建、编辑、删除、关闭、返回、保存、导入,上一页,下一页,页面跳转,重置等功能是否正确。常见的错误会出现在重置按钮上,表现为功能失效。

    4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度。还要检查需求规定的字符串长度是否是正确的,有时候会出现,需求规定的字符串长度太短而无法输入业务数据。

    5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型。

    6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键。看系统处理是否正确。常见的错误是系统对空格的处理,可能添加的时候,将空格当作一个字符,而在查询的时候空格被屏蔽,导致无法查询到添加的内容。

    7.特殊字符检查:输入特殊符号,如@、#、$、%、!等,看系统处理是否正确。常见的错误是出现在% ‘ \ 这几个特殊字符

    8. 中文字符处理: 在可以输入中、英文的系统输入中文,看会否出现乱码或出错。

    9. 检查信息的完整性: 在查看信息和更新信息时,查看所填写的信息是不是全部更新,更新信息和添加信息是否一致。要注意检查的时候每个字段都应该检查,有时候,会出现部分字段更新了而个别字段没有更新的情况。

    10. 信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理。

    11. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按“delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除, 看是否正确处理。如果有多页,翻页选,看系统是否都正确删除,并且要注意,删除的时候是否有提示,让用户能够更正错误,不误删除。

    12. 检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.

    13. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.

    14. 重复提交表单:一条已经成功提交的纪录,返回后再提交,看看系统是否做了处理。对于Web系统来说,可以通过浏览器返回键或者系统提供的返回功能。

    15. 检查多次使用返回键的情况: 在有返回键的地方,返回到原来页面,重复多次,看会否出错。

    16. 搜索检查: 有搜索功能的地方输入系统存在和不存在的内容,看搜索结果是否正确.如果可以输入多个搜索条件,可以同时添加合理和不合理的条件,看系统处理是否正确,搜索的时候同样要注意特殊字符,某些系统会在输入特殊字符的时候,将系统中所有的信息都搜索到。

    17. 输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方。

    18. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。下载文件能否打开或者保存,下载的文件是否有格式要求,如需要特殊工具才可以打开等。上传文件测试同时应该测试,如果将不能上传的文件后缀名修改为可以上传文件的后缀名,看是否能够上传成功,并且,上传文件后,重新修改,看上传的文件是否存在。

    19. 必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加“*”;对必填项提示返回后,焦点是否会自动定位到必填项。

    20. 快捷键检查:是否支持常用快捷键,如Ctrl+C、 Ctrl+V、 Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。

    21. 回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错。这个地方很有可能会出现错误。

    22.刷新键检查:在Web系统中,使用浏览器的刷新键,看系统处理如何,会否报错。

    23.回退键检查:在Web系统中,使用浏览器的回退键,看系统处理如何,会否报错。对于需要用户验证的系统,在退出登录后,使用回退键,看系统处理如何;多次使用回退键,多次使用前进键,看系统如何处理。

    24.直接URL链接检查:在Web系统中,直接输入各功能页面的URL地址,看系统如何处理,对于需要用户验证的系统更为重要。如果系统安全性设计的不好,直接输入各功能页面的URL地址,很有可能会正常打开页面。

    25.空格检查:在输入信息项中,输入一个或连串空格,查看系统如何处理。如对于要求输入整型、符点型变量的项中,输入空格,既不是空值,又不是标准输入。

    26.输入法半角全角检查:在输入信息项中,输入半角或全角的信息,查看系统如何处理。如对于要求输入符点型数据的项中,输入全角的小数点(“。”或“.”,如4.5);输入全角的空格等。

    27.密码检查:一些系统的加密方法采用对字符Ascii码移位的方式,处理密码加密相对较为简单,且安全性较高,对于局域网系统来说,此种方式完全可以起到加密的作用,但同时,会造成一些问题,即大于128的Ascii对应的字符在解密时无法解析,尝试使用“uvwxyz”等一些码值较大的字符作为密码,同时,密码尽可能的长,如17位密码等,造成加密后的密码出现无法解析的字符。

    28.用户检查:任何一个系统,都有各类不同的用户,同样具有一个或多个管理员用户,检查各个管理员之间是否可以相互管理,编辑、删除管理员用户。同时,对于一般用户,尝试删除,并重建同名的用户,检查该用户其它信息是否重现。同样,提供注销功能的系统,此用户再次注册时,是否作为一个新的用户。而且还要检查该用户的有效日期,过了有效日期的用户是不能登录系统的。容易出现错误的情况是,可能有用户管理权限的非超级管理员,能够修改超级管理员的权限。

    29.系统数据检查:这是功能测试最重要的,如果系统数据计算不正确,那么功能测试肯定是通不过的。数据检查根据不同的系统,方法不同。对于业务管理平台,数据随业务过程、状态的变化保持正确,不能因为某个过程出现垃圾数据,也不能因为某个过程而丢失数据。

    30.系统可恢复性检查:以各种方式把系统搞瘫,测试系统是否可正常迅速恢复。

    31.确认提示检查:系统中的更新、删除操作,是否提示用户确认更新或删除,操作是否可以回退(即是否可以选择取消操作),提示信息是否准确。事前或事后提示,对于Update或Delete操作,要求进行事前提示。

    32.数据注入检查:数据注入主要是对数据库的注入,通过输入一些特殊的字符,如“’”,“/”,“-”等或字符组合,完成对SQL语句的破坏,造成系统查询、插入、删除操作的SQL因为这些字符而改变原来的意图。如select * from table where id = ‘ ’ and  name = ‘  ’,通过在id输入框中输入“12’-”,会造成查询语句把name条件注释掉,而只查询id=12的记录。同样,对于update和delete的操作,可能会造成误删除数据。当然还有其它一些SQL注入方法,具体可以参考《SQL应用高级SQL注入.doc》,很多程序都是基于页面对输入字符进行控制的,可以尝试跳过界面直接向数据库中插入数据,比如用Jmeter,来完成数据注入检查。

    33.刷新检查:web系统中的WebForm控件实时刷新功能,在系统应用中有利有弊,给系统的性能带来较大的影响。测试过程中检测刷新功能对系统或应用造成的影响(白屏),检查控件是否回归默认初始值,检查是否对系统的性能产生较大影响(如每次刷新都连接数据库查询等)。

    34.事务检查:对于事务性操作,断开网络或关闭程序来中断操作,事务是否回滚。

    35.时间日期检查:时间、日期验证是每个系统都必须的,如2006-2-29、2006-6-31等错误日期,同时,对于管理、财务类系统,每年的1月与前一年的12月(同理,每年的第1季度与前一年的第4季度)。另外,对于日期、时间格式的验证,如2006年2月28日、2006-2-28、 20060228等。日期检查还要检查日期范围是否符合实际的业务,对于不符合时间业务的日期,系统是否会有提示或者有限制

    36.多浏览器验证:越来越多的各类浏览器的出现,用户访问Web程序不再单单依赖于Microsoft Internet Explorer,而是有了更多的选择:Maxthon、Firefox、Tencent Traveler等,考虑使用多种浏览器访问系统,验证效果。

    37.安装测试:对于C/S架构的系统,安装程序的测试是一个重要方面,安装程序自动化程度、安装选项和设置(验证各种方案是否都能正常安装)、安装过程中断测试、安装顺序测试(分布式系统)、修复安装及卸载测试。

    38.文档测试:主要是对用户使用手册、产品手册进行测试,校验是否描述正确、完整,是否与当前系统版本对照,是否易理解,是否二义性等。

    39.测试数据检查:事实告诉我们,测试数据比代码更有可能是错的,因此,当测试结果显示有错误发生的时候,怀疑代码错误前要先对测试数据检查一遍。

    40.请让我的机器来运行:在某些项目中,出现一个病态的问题:系统没有问题呀,它在我的机器上是能够通过的。这就说明了其中存在着和环境相关的 BUG。“是否所有的一切都受到了版本控制工具的管理?”、“本机的开发环境和服务器的环境是否一样?”、“这里是否存在一个真正的BUG,只不过是在其他的机器里偶然出现?”。所有的测试必须在所有系统要求的机器上运行通过,否则的话,代码就可能存在问题。

    41.Ajax技术的应用:Ajax有很多优点,但也有很多缺点,如果利用优点、避免缺点,是我们对新的Web2.0应用的一个挑战。而Ajax的应用最直接的问题就是用户体验,用户体验的效果直接关系到是否使用Ajax技术。“会做,并不意味着应该做、必须做”,这就是对Ajax技术的很重要的注解。

    42.Ajax技术的应用:Ajax采用异步调用的机制实现页面的部分刷新功能,异步调用存在异常中断的可能,尝试各种方法异常中断异步的数据调用,查看是否出现问题。在这里遇到的一个问题就是对日期控件的操作,已经如果页面数据较多的时候的刷新。

    43.脚本错误:随着Ajax、IFrame等异步调用技术的发展,Javascrīpt技术也越来越受到开发人员的重视,但Javascrīpt存在调试困难、各浏览器存在可能不兼容等问题,因此在Web系统中,可能会出现脚本错误。同时,脚本错误造成的后果可大、可小,不能忽视。

  • QTP自动测试应掌握的DOM

    2008-12-18 16:20:31

     在使用QTP测试WEB页面时,经常需要利用测试对象中的Object属性来访问和操作DOM,因此,QTP自动化测试工程师非常有必要掌握一些常用的DOM知识。 下面就列举了一些常用的DOM属性、方法和集合:

      常用DOM 属性

      ●  className.同一样式规则的元素用相同的类名。可以通过className快速过滤出一组类似的元素。

      ●  document.用于指向包含当前元素的文档对象。

      ●  id.当前元素的标识。如果文档中包含多个相同id的元素,则返回一个数组。

      ●  innerHTML.用于指向当前元素的开始标记和结束标记之间的所有文本和HTML标签。

      ●  innerText.用于指向当前元素的开始标记和结束标记之间的所有文本和HTML标签。

      ●  offsetHeight, offsetWidth.元素的高度和宽度。

      ●  offsetLeft, offsetTop.当前元素相同对于父亲元素的左边位置和顶部位置。

      ●  outerHTML.当前元素的开始标记和结束标记之间的所有文本和HTML标签。

      ●  outerText.当前元素的开始标记和结束标记之间的所有文本,但不包括HTML标签。

      ●  parentElement.当前元素的父亲元素。

      ●  sourceIndex.元素在document.all集合中的索引(index)。

      ●  style.元素的样式表单属性。

      ●  tagName.当前元素的标签名。

      ●  title.在IE中,代表元素的tool tip文本。

      常用DOM 方法

      ●  click().模拟用户对当前元素的鼠标点击。

      ●  contains(element).用于判断当前元素是否包含指定的元素。

      ●  getAttribute(attributeName, caseSensitive).返回当前元素所包含的某个属性,参数attributeName为属性名、caseSensitive表示是否大小写敏感。

      ●  setAttribute(attributeName, value, caseSenstive). 设置当前元素的属性。

      常用DOM 集合

      ●  All[].当前元素中包含的所有HTML元素的数组。

      ●  children[].当前元素包含的孩子元素。

  • 超过 600 本的免费电脑技术书籍

    2008-11-06 17:46:07

    超过 600 本的免费电脑技术书籍

    通过 digg 找到的这个网页,收集了 600 本以上的免费电脑技术书籍网址,内容包括图像处理,黑客技术,编程知识,资格认证教程,设计,Linux,网络技术,等等,内容相当丰富。经确认,其中一些书籍,链接已经失效,不过网页上有说明:“请报告死链接至 zikri [at] ITB.ac.id。” G/l9e[x  

    非常丰富的资源
    >?/b46rG8  
    http://zikri.indoglobal.com/books.html

    转贴自:Taker2001

  • Bugzilla 的安装(在Windows 2000上)

    2008-11-06 11:57:46

    在windows 2000 professional上安装 bugzilla
     
    一、安装Perl
    1、下载ActivePerl,我下载的是ActivePerl-5.8.0.806-MSWin32-x86.msi,安装到D:\Perl(安装路径可自定,以下同)
    2、打开D:\Perl\Lib\CPAN.pm 查找并更改$CPAN: defaultsite ||= "
    ftp://ftp.perl.org/pub/CPAN";为$CPAN: efaultsite ||= "http://cpan.shellhung.org";,主要是为了提高下面安装其他perl模块时的下载安装速度。
    二、安装Mysql
    1、下载Mysql,我下载的是mysql-4.0.15-win.zip,直接安装即可。同时可以下载安装mysqlcc-0.9.3-win32.zip,这是mysql的管理软件,挺好用的。
    2、修改mysql的root用户密码
    E:\>cd mysql
    E:\mysql>cd bin
    E:\mysql\bin>mysql -u root mysql
    mysql>UPDATE user SET Password=PASSWORD(') WHERE user='root';
    mysql>FLUSH PRIVILEGES;
    其中为root用户的新密码。更改密码后,要用root用户访问mysql,必须使用mysql -u root -p,按提示敲入正确的root密码。
    3、创建bugs用户,并赋给相应的权限
    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX, ALTER,CREATE,DROP,REFERENCES,LOCK TABLES,CREATE TEMPORARY TABLES ON bugs.* TO
    bugs@localhost IDENTIFIED BY '';
    mysql> FLUSH PRIVILEGES;
    要记住bugs用户的密码,在下面的bugzilla配置文件要用。
    4、创建bugs数据库
    mysql>create database bugs;
    三、下载Bugzilla(
    www.bugzilla.org
    最好下载bugzilla-2.17.4,如果安装2.16好像要改很多perl脚本,我没有安装成功.
    解压到E:\Bugzilla
    四、配置IIS
    1、打开控制面板->管理工具->Internet Information Services, 再Default Web Site右键选择Properties-> Home Dictory-> Configuration,在App Mappings中点击Add增加如下资料
    Executable: D:\Perl\bin\perl.exe "%s" %s
    Extension: .pl
    Limit to: GET,HEAD,POST
    Executable: D:\Perl\bin\perl.exe "%s" %s
    Extension: .cgi
    Limit to: GET,HEAD,POST
    注意Perl.exe的路径
    2、Default Web Site中增加Virtual Directory: Bugzilla。Access Permission增加Execute。
    3、选择刚建立的虚拟目录Bugzilla,右键选择Properties-> Documents。Default Documents中增加index.cgi。
    五、安装Bugzilla
    bugzilla目录下有一个checksetup.pl脚本。这个脚本写的简直太好了,它既可以检查bugzilla需要的perl模块是否已安装,又可以创建数据库的表及admin用户。不过需要改几个地方才能够在windows下正常使用。在/bugzilla/docs/html/Bugzilla-Guide.html中有如下描述:
    4.3.1.3.1. Changes to checksetup.pl
    In checksetup.pl, the line reading:
    my $mysql_binaries = `which mysql`;
    to
    my $mysql_binaries = "D:\mysql\bin\mysql";
    And you'll also need to change:
    my $webservergid = getgrnam($my_webservergroup)
    to
    my $webservergid = '8'
    安装过程中还得改几个地方才能用。这在下面一步步介绍。
    现在先运行cmd到dos下,进入bugzilla目录,运行perl checksetup.pl看看有什么提示信息。
    1、安装perl模块
    到cpan.shellhung.org,点击perl module->all module,下载AppConfig-1.55、CGI.pm-3.00、DBD-mysql-2.9002、DBI-1.38、Template-Toolkit-2.10、TimeDate-1.16。perl模块有两种安装方法,一种直接解压下载模块,进入其目录,运行
    perl MakeFile.pl
    nmake
    nmake test
    nmake install
    (安装了VC就会有nmake)
    另一种是运行ppm ,DBD-mysql-2.9002、DBI-1.38最好用这种方式。
    安装完成后可以运行perl checksetup.pl检查是否bugzilla需要的perl模块都安装完毕。
    2、修改checksetup.pl
    3751~3756行注释掉:
    #$SIG = \&bailout;
    #$SIG = \&bailout;
    #$SIG = \&bailout;
    #$SIG = \&bailout;
    #system("stty","-echo"); # disable input echoing
    3759和3769这两行也要注释掉,否则它老是提示你输入admin密码。
    3、运行perl checksetup.pl,如果没有什么错误提示,会生成localconfig文件
    4、修改localconfig文件
    $index_html = 1 (生成index.html)
    $mysqlpath = "e\mysql\bin" (你的mysql\bin路径)
    $webservergroup = "8"
    $db_user = "bugs" (mysql的登陆用户名)
    $db_pass = ''(mysql bugs用户的登陆密码)
    5、再次运行perl checksetup.pl, 系统提示创建Administrator的相关邮件,Realname,密码的资料。
    最后,如果成功,最后会提示Reminder: Bugzilla now requires version 8.7 or later of sendmail
    6、修改所有的cgi文件,去掉第一行的最后一个字符T
    打开浏览器,键入
    http://localhost/bugzilla即可进入bugzilla登陆界面
    7、修改bugzilla为中文界面
    http://sourceforge.net/projects/bugzilla-cn/下载bugailla-2.17.4-cn-0.92.tar.gz,把解压后的cn目录copy到E:\bugzilla\template,然后修改E:\bugzilla\Bugzilla\template.pm文件,在76行增加my $languages = "cn"。转换成中文.
  • QTP测试流程

    2008-10-17 14:59:00

    QuickTest 测试流程包括 7 个主要阶段:

    1. 准备录制
    2. 在录制测试前,请确认应用程序和 QuickTest 已按测试要求设置。

      请确保应用程序显示要录制的元素,例如,工具栏或特殊窗口窗格;还要确保应用程序选项已按测试目标设置。

      为了确保 QuickTest 可以正确地录制和存储信息,您还应该查看“测试设置”对话框(“测试”>“设置”)和“选项”对话框(“工具”>“选项”)中的设置。例如,应该确认测试已设置为使用适当的对象库模式。

    3. 录制应用程序上的会话
    4. 浏览应用程序或网站时,QuickTest 会将您执行的每个步骤图形化显示为关键字视图中的一行。步骤是任何引起应用程序发生更改的用户操作,例如单击链接或图像,或者向表单输入数据。

    5. 增强测试
      • 通过在测试中插入检查点可以搜索页面、对象或文本字符串中的特定值,这有助于确定应用程序或网站是否正常运行。
      • 通过扩大测试范围(用参数替换固定值),可以检查应用程序如何使用多组数据来执行相同的操作。
      • 通过添加逻辑和条件语句或循环语句,可以向测试添加复杂的检查。
    6. 调试测试
    7. 调试测试,确保测试可以流畅而无中断地运行。

    8. 运行测试
    9. 运行测试,检查应用程序或网站的行为。在运行时,QuickTest 将打开应用程序,或者连接到网站,并执行测试中的每个步骤。

    10. 分析测试结果
    11. 检查测试结果以便确定应用程序中的缺陷。

    12. 报告缺陷
    13. 如果已安装了 Quality Center,则可以将发现的缺陷报告给数据库。Quality Center 是 Mercury Interactive 的软件测试管理工具。

  • C/S 与 B/S 区别

    2008-10-14 16:06:15

    B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种scrīpt语言(VBscrīpt、Javascrīpt…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。

    C/S 与 B/S 区别:
      Client/Server一般是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.
    1.硬件环境不同:
      C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
      B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
    2.对安全要求不同
      C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
      B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.
    3.对程序架构不同
      C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
      B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
    4.软件重用不同
      C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
      B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
    5.系统维护不同
    系统维护是软件生存周期中,开销大, -------重要
      C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
      B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
    6.处理问题不同
      C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
      B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.
    7.用户接口不同
      C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
      B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.
    8.信息流不同
      C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低
      B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更象交易中心  

    比如一些聊天软件,是c/s结构的因为满足这种软件的可维护和升级性,满足不同的人群的个性和喜好,自己制定自己的界面,安装自己喜欢的插件,但在b/s结构上实现这一点比较困难,并且可扩展性也不好。

    比如说很多人每天上新浪网,只要安装了浏览器就可以了,并不需要了解新浪的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统
    软件系统的改进和升级越来越频繁,B/S架构的产品明显体现的更方便的特性。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行,如果是异地只需要把服务器连接上网即可立即进行维护和升级,这对人力、时间、费用的节省是相当惊人的。
    一个稍微大一点单位来说,系统管理人员如果需要在几百甚至几千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。所以客户机越来越"瘦"而服务器越来越"胖"是将来软件的主流发展方向,这使得升级和维护越来越容易而使用越来越简单。

    link:http://www.51testing.com/?207050/action_viewspace_itemid_94773.html

361/212>
Open Toolbar