今日は僕のスペースが始まるところで、ちょうど彼女と知合った日です、去年の今日。 皆様と一緒に頑張りたいと思っております。それでは,行くぞ!

发布新日志

  • QTP中几个截取字符串的函数

    2008-02-20 13:13:14

    Left 函数(Right函数就是从右边开始算起)
    T%Y\w x+JW!xhg128649返回指定数目的从字符串的左边算起的字符。Left(string, length)
    ~U\o8^rG128649参数软件测试专业网站:51Testing软件测试网.c B+? Tp|Cr
    string:字符串表达式,其最左边的字符被返回。如果 string 参数中包含 Null,则返回 Null。
    .?N6u-tB&h{1`128649Length:数值表达式,指明要返回的字符数目。如果是 0,返回零长度字符串 ("");如果大于或等于 string 参数中的字符总数,则返回整个字符串。
    +n5N,Z$t1S2c3\128649例子:软件测试专业网站:51Testing软件测试网 FtBk#m9o5A
    Dim MyString, LeftString软件测试专业网站:51Testing软件测试网7w]g0E}:] ^0u/T8M/k@
    MyString = "VBscrīpt"软件测试专业网站:51Testing软件测试网7C)s9~ _0A'\ tn
    LeftString = Left(MyString, 3) ' LeftString contains "VBS".软件测试专业网站:51Testing软件测试网6ow s9Kzd
    ***********************************
    A6T?m G,y128649Mid 函数软件测试专业网站:51Testing软件测试网/qO2R.JY6}"? J$\J-q
    从字符串中返回指定数目的字符。软件测试专业网站:51Testing软件测试网+M!vYM4w(NT
    Mid(string, start[, length])
    B:dYa4]:I4j&Lq/K128649参数:软件测试专业网站:51Testing软件测试网 rb ~ b+pzby
    string:字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null。软件测试专业网站:51Testing软件测试网4WU#Wx)X-b
    Start:string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。软件测试专业网站:51Testing软件测试网{yn'[XG-bH
    Length:要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。软件测试专业网站:51Testing软件测试网 t9M Hm3@ O
    例子
    &G.gid _;](K128649Dim MyVar软件测试专业网站:51Testing软件测试网hY+d kx#W1g?%h
    MyVar = Mid("VB scrīpt is fun!", 4, 6) ' MyVar contains "scrīpt".
    q!H7h1?qk |6F128649********************软件测试专业网站:51Testing软件测试网6ra&\^6\0n%o+p
    InStr函数(InStrRev函数相反从最后向前起)软件测试专业网站:51Testing软件测试网2j hz9F x|
    返回指定的字符串在另一字符串中最先出现的位置。
    l0X\a`"QD%{U'd128649InStr([start, ]string1, string2[, compare])软件测试专业网站:51Testing软件测试网:[To`l9cs l
    参数:软件测试专业网站:51Testing软件测试网 ]r2KrQv
    start:起始位置,默认从第一位软件测试专业网站:51Testing软件测试网 cTX"S["fO:\ F+y
    string1:主体字符串,从左向右查找。如果string1为 Null,则返回 Null。软件测试专业网站:51Testing软件测试网(h3ZNo)]dO
    string2:查找的字符串,如果string2为 Null,则返回 Null。找不到就返回0。
    R$Y1}^ A128649compare:0是二进制比较,1是文本比较。0为缺省值。个人感觉区别就是在大小写。软件测试专业网站:51Testing软件测试网]3fSw?
    例子
    #G}5xhKczh6P128649Dim SearchString, SearchChar, MyPos
    (ps6TX"|,A$m0P128649SearchString ="XXpXXpXXPXXP"   ' String to search in.软件测试专业网站:51Testing软件测试网_%@(F ?J
    SearchChar = "P"   ' Search for "P".软件测试专业网站:51Testing软件测试网:\w*Y\Z?1l
    MyPos = Instr(4, SearchString, SearchChar, 1)   ' A textual comparison starting at position 4. Returns 6.软件测试专业网站:51Testing软件测试网 O0D$IP:^ ^}%f t"z
    MyPos = Instr(1, SearchString, SearchChar, 0)   ' A binary comparison starting at position 1. Returns 9.   
    .}(k Y)N!yOr128649MyPos = Instr(SearchString, SearchChar)   ' Comparison is binary by default (last argument is omitted). Returns 9.软件测试专业网站:51Testing软件测试网?"y1_:R;~I
    MyPos = Instr(1, SearchString, "W")   ' A binary comparison starting at position 1. Returns 0 ("W" is not found).软件测试专业网站:51Testing软件测试网Q;fn2BR/J _?
    ******************
    0B0a-V2Z[b128649Split 函数
    ET,b&k Me+Tp128649
    在指定的 delimiter 参数出现的所有位置断开 String 对象,将其拆分为子字符串,然后以数组形式返回子字符串。软件测试专业网站:51Testing软件测试网,w$F^Ba;A
    Split(expression[, delimiter[, count[, compare]]])
    0z?(XY5sq#z7Ht3E128649参数
    dh^n%a0g;his128649expression:主体字符串,也就是要被拆分处的字符或字符串。软件测试专业网站:51Testing软件测试网~8KEZ9C3d
    delimiter:拆分元素,默认是(" ") 软件测试专业网站:51Testing软件测试网C1x R,o^|V
    count:Number [可选] 要放入数组中的项目数。
    #TK9sK u3D+m ]128649compare:0是二进制比较,1是文本比较。0为缺省值。软件测试专业网站:51Testing软件测试网a9R|9|c4v/nN
    例子
    m:b~?3|/ORUx128649Dim MyString, MyArray, Msg软件测试专业网站:51Testing软件测试网L8x+U6Mt9P$Z}/Z
    MyString = "VBscrīptXisXfun!"软件测试专业网站:51Testing软件测试网:h/n uM'p-@2G
    MyArray = Split(MyString, "x", -1, 1)
    'SW|8fH128649' MyArray(0) contains "VBscrīpt".软件测试专业网站:51Testing软件测试网Ji uw4NJ H*B
    ' MyArray(1) contains "is".软件测试专业网站:51Testing软件测试网p"LwW6R
    ' MyArray(2) contains "fun!".软件测试专业网站:51Testing软件测试网[jdp'Q1b5[6s
    Msg = MyArray(0) & " " & MyArray(1)软件测试专业网站:51Testing软件测试网z;rr;w!FQd S
    Msg = Msg   & " " & MyArray(2)软件测试专业网站:51Testing软件测试网yP{d%CM
    MsgBox Msg软件测试专业网站:51Testing软件测试网1s%o2ChJ9Jf3l c
  • QTP脚本例子汇总(二)

    2008-02-20 13:10:04

    例三:(来自MSN 秀)

    [功能]
    `+e+y)o:N1W0I~Y@(z128649    1.启动一个VB的windows application。设置好Excel文件和QTP的安装路径。软件测试专业网站:51Testing软件测试网)S?}]S0Rtq X7[
        2.启动脚本进行测试,测试代码是QTP自带的订票系统。

    [脚本的参数设定]
    1qr @wc2MOM128649    脚本中有2个参数-EXCEL文件和QTP安装路径从VBS文件传入。在QTP中设定如下:
    *cA!a!HoT m `128649    1.在KeyWord view界面。在Action1上点击右键,选Action properties,弹出 Action properties对话框。在其中添加2个入参。如下图所示:软件测试专业网站:51Testing软件测试网Qo \!u&q


    Q&FL/F"I3SQ2y2F128649
    sO;_;Wbe1286492.设置测试参数
    a:[9d:z|&q } V128649    Test->Test Settings->Parameters.设置2个入参。如下图所示:软件测试专业网站:51Testing软件测试网p#JT(BG;C+i

    3.将Action参数和Test参数关联起来
    ~bGYU,}1x1^H s128649     1.在KeyWord view界面。在Action1上点击右键,选择Action Call properties
    }$FU'Om-}$\,},C%u S128649软件测试专业网站:51Testing软件测试网:o+Br)m/vt9L+v

    #s:an;i6vx*B128649

    软件测试专业网站:51Testing软件测试网#`V!@7ps
    软件测试专业网站:51Testing软件测试网8`9ve"BEU,v9oO
    点Vaiue
    Hc/Z*|)K^.Q5C128649

    在脚本中使用以下语句可以取得2个入参:
    ;T e,{UM+[D M ~128649    filename= Parameter("InAction1")
    i9I(P3I)qcc8e"{ `.C128649    QtpPath= Parameter("InAction2")软件测试专业网站:51Testing软件测试网9R MX5iDq)D6BP$pb.x
    [脚本部分]
    /W$Ee6r}~128649Dim conn,rst,filename,coboname
    :la-K D;g128649Dim user,passwd软件测试专业网站:51Testing软件测试网-q `y~] _
    'filename="C:\DATA.xls"
    :DH F$g{n/a gV128649filename= Parameter("InAction1")
    *Z%L5gt j:H#r5K+x|128649QtpPath= Parameter("InAction2")软件测试专业网站:51Testing软件测试网2c"\"J_*x Q!S
    'datatale.import(filename)软件测试专业网站:51Testing软件测试网5?&N)}!U?(o7yLa9y
    Set conn= createobject("ADODB.Connection")软件测试专业网站:51Testing软件测试网5KrH8L5Q3Z ^
    'msgbox filename
    V:VsW^}-O128649conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="&filename&";Extended Properties='Excel 8.0;hdr=yes'"
    bM K1B9J(`W eB128649Set rst= createobject("ADODB.Recordset")

    '  Excelファイルのデータを読み込む软件测试专业网站:51Testing软件测试网:N)ON3TB
    rst.Open "select  *   from [sheet1$] " ,conn,1,1

    ' table WHCT0717のデータをセットする软件测试专业网站:51Testing软件测试网^Y7mk7PL-N,i
     While Not rst.EOF 
    4N6Ge_(\128649   systemutil.run  QtpPath&"\samples\flight\app\flight4a.exe",""软件测试专业网站:51Testing软件测试网s2V7xV8MakM(F
        user = rst.fields("user")软件测试专业网站:51Testing软件测试网f@N9Z@
     passwd = rst.fields("password")软件测试专业网站:51Testing软件测试网8hL#T#X,Z8d/H
     Dialog("ログイン").WinEdit("代理店名:").Set  (user)
    `+j9dYtQ128649   ' Dialog("ログイン").WinEdit("代理店名:").Type  micTab
    4AFQO uN128649 Dialog("ログイン").WinEdit("パスワード:").set(passwd)
    :V"o8g4H+K^128649 Dialog("ログイン").WinButton("OK").Click
    0XWa+R@B)F+z-I4O,Xa128649 reporter.filter=0
    B y xwQ'],hQ;Y128649 If ( Dialog("ログイン").Dialog("フライト予約").WinButton("OK").Exist(2) )  Then
    b5km-A\X? {128649    text = Dialog("ログイン").Dialog("フライト予約").GetVisibleText软件测试专业网站:51Testing软件测试网i;hlV8B(A!K \hO"v
     reporter.ReportEvent micFail ,"Load Error",text软件测试专业网站:51Testing软件测试网 K8`^)Fi,n$w"X
      Dialog("ログイン").Dialog("フライト予約").WinButton("OK").Click软件测试专业网站:51Testing软件测试网k;^)J T*g b H
      Dialog("ログイン").WinButton("キャンセル").Click
    y W:aIk1u)]128649 else
    Wp B6pe~128649   Window("フライト予約").close
    M?.LvJ0?Z'E5O128649 end if软件测试专业网站:51Testing软件测试网"v0FR1Mrqp
         rst.MoveNext 软件测试专业网站:51Testing软件测试网)~Y4|!LbmI
       Wend
    Ew U,xW+amom128649 rst.close
    PJhH9a*@'H128649软件测试专业网站:51Testing软件测试网2uX D%B6ia9b)o6] G L
       脚本部分最主要的是注意QTP对象的选择和使用。(Tools-->object Repository 对象的添加和删除)

    [VB application]软件测试专业网站:51Testing软件测试网;tlK})w%]u
         以下是Button1单击的触发事件软件测试专业网站:51Testing软件测试网9G.\#}t Li0x
         Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click软件测试专业网站:51Testing软件测试网kDX6f#{!L
            Dim qtApp
    Pj/P!vO%z;k%N128649        Dim qtTest 
    *{-it$~Mv Vk5\128649        Dim qtResultsOpt
    c%{ cH!k-p f128649        Dim pDefColl, pDef, rtParams, rtParam1, rtParam2
    .F%E#YcU5KGT128649        Dim QtpTestPath
    b|#b+J3lKJ%n/D$g128649        qtApp = CreateObject("QuickTest.Application") 
    8G/^ r0KVsJ&paGL128649        qtApp.Launch()软件测试专业网站:51Testing软件测试网;\-E,vre:E'J
            qtApp.Visible = True '使得QTP的程序可见

    软件测试专业网站:51Testing软件测试网H.xr M,]x'OX2k
            ' 设置运行属性
    "RbuuY128649        QtpTestPath = QtpPath.Text & "\Tests\Test3" '设置脚本路径
    .JII8x*SXhZ9q128649        qtApp.Options.Run.RunMode = "Fast"
    'x+G$Gy R(Lvq128649        qtApp.Open(QtpTestPath, True) ' Open the test in read-only mode

            ' set run settings for the test
    ;}0Bq$sdn128649        qtTest = qtApp.Test
    7@ S!j [w/R128649        qtTest.Settings.Run.OnError = "NextStep" 软件测试专业网站:51Testing软件测试网-hZ"IOl @)?X
            qtResultsOpt = CreateObject("QuickTest.RunResultsOptions") 软件测试专业网站:51Testing软件测试网+]O%qdV3M
            qtResultsOpt.ResultsLocation = "D:\program files\Mercury Interactive\QuickTest Professional\Tests\Test3" ' 设置放结果的地方

            pDefColl = qtApp.Test.ParameterDefinitions软件测试专业网站:51Testing软件测试网} j&^IT6x;|2h4^q
            Dim cnt = pDefColl.Count软件测试专业网站:51Testing软件测试网 A$VC l7wPJ
            Dim Indx = 1软件测试专业网站:51Testing软件测试网,P*M*Xlc'b9N
            While Indx <= cnt软件测试专业网站:51Testing软件测试网U{&|?!Z/qv ?
                pDef = pDefColl.Item(Indx)
    g-vD9[-U;NrU:D128649            Indx = Indx + 1软件测试专业网站:51Testing软件测试网$T iPf0h*l(})K
            End While
    ,UjQA-VW128649        rtParams = pDefColl.GetParameters()
    k&Z UM3RPk ]128649        rtParam1 = rtParams.Item("InParameter1")
    e!x*c.z&N7i128649        rtParam1.Value = DataFileName.Text软件测试专业网站:51Testing软件测试网 MlUCfS5d u.~5B0n(y
            ' MsgBox(TextBox1.Text)
    {2p)CV,l| k Y128649        rtParam2 = rtParams.Item("InParameter2")
    -y L ?+@kF)L128649        rtParam2.Value = QtpPath.Text

            qtTest.Run(, True, rtParams) ' Run the test
    3Z.bp2{ ^a:Xz128649        'MsgBox(rtParams.Item("OutParameter1").Value)

            'qtTest.Close ' Close the test 软件测试专业网站:51Testing软件测试网8@,Y$O$I-itS-J\-U
            qtResultsOpt = Nothing     ' Release the Run Results Options object 软件测试专业网站:51Testing软件测试网 F&Ev_ QA.c~
            qtTest = Nothing     ' Release the Test object 软件测试专业网站:51Testing软件测试网 t Ch+Y4o-J ?!Qa*ij`
            qtApp = Nothing     ' Release the Application object 软件测试专业网站:51Testing软件测试网-u"o5J4m[d,l
            qtTest.quit()

        End Sub软件测试专业网站:51Testing软件测试网l(GC8s+J

  • QTP脚本例子汇总(一)

    2008-02-20 13:09:00

    例一:(来自测试者家园)

    以下语句指示 QuickTest 选中 Itinerary 网页上的所有复选框:

    Set MyDescrīption = Descrīption.Create()

    MyDescrīption("html tag").Value = "INPUT"

    MyDescrīption("type").Value = "checkbox"

    Set Checkboxes = Browser("Itinerary").Page("Itinerary").ChildObjects(MyDescrīption)

    NoOfChildObjs = Checkboxes.Count

    For Counter=0 to NoOfChildObjs-1

    Checkboxes(Counter).Set "ON"

    Next

    例二:(来自51testing)

    目标如下:
    3C m,X2PR1286491.    脚本需要处理成功和失败的用户的登陆
    u-d+P;K? H$}1286492.   数据驱动

    设计开发脚本如下:

    软件测试专业网站:51Testing软件测试网5Zfe.w@Gy
    第一步录制脚本如下软件测试专业网站:51Testing软件测试网]b;Cq+A6ZW1Ij
    Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebEdit("txtLoginName").Set "吕巍" 软件测试专业网站:51Testing软件测试网6Nu6pe RMB5G
    Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登 录").set "" 软件测试专业网站:51Testing软件测试网"o"g2{2IO%UN
    Browser("智能变电巡检仪系统 4.0").Page("Page").Syn 软件测试专业网站:51Testing软件测试网 ` KT(?6g+xR|
    Browser("智能变电巡检仪系统 4.0").Close

    以上为录制的正确的用户名,下边录制错误的用户名软件测试专业网站:51Testing软件测试网4r_UJ$n2J@"Q
    Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebEdit("txtLoginName").Set "xx"
    6g&C(I4KU"H7Eyt128649Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登 录").set ""
    H2L.mCZ'p/lr128649出现错误提示“该用户不存在”

    第二步 增强脚本

    现在需要设计的是一套脚本驱动所有的测试数据,这样可以驱动所有的用例数据,qtp中提供了datatable。软件测试专业网站:51Testing软件测试网cWp*^2|
    但是有数据驱动也要做一个事情就是如何处理错误的用户名和正确的用户名,如何结合起来呢?软件测试专业网站:51Testing软件测试网` v3xIz1K&U
    这里我把datatable看作存放测试用例的地方,里面放入测试数据,还放入测试的预期结果。这样我的设计已经出现雏形了。
    [ D^#_6b'G_]128649我把datatable设计为三列

    username  password status
    &V TOgiJg9J128649吕x                软件测试专业网站:51Testing软件测试网k;p8xr(U"f)`\5Gx
    xxx       xxxx     该用户不存在

    第三列放入最后执行的结果,我设计的是空为成功登陆,如果有信息就用实际运行的结果和这一列对比.好了万事俱备只欠东风了

    修改脚本如下:
    l'wN@U!GsE128649Dim iStatus

    Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebEdit("txtLoginName").Set DataTable("username", dtLocalSheet)软件测试专业网站:51Testing软件测试网*l.} B!dyzb g#Z
    Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登 录").set DataTable("password", dtLocalSheet)软件测试专业网站:51Testing软件测试网@u/QC;P!j \
    iStatus = DataTable("status", dtLocalSheet)

    If   iStatus=""  Then软件测试专业网站:51Testing软件测试网hy:P1S%R2? @8Qt)m d&Q%^
      Browser("智能变电巡检仪系统 4.0").Close软件测试专业网站:51Testing软件测试网m.S}9b0B
    End If


    o/M7p}\)_~E8[128649If   iStatus="该用户不存在"    Then软件测试专业网站:51Testing软件测试网M-? ~_sJ,v
         Reporter.ReportEvent micFail, "登陆", "登陆失败." 软件测试专业网站:51Testing软件测试网6](Lg v3C'r
    End If

    Browser("智能变电巡检仪系统 4.0").Close

    第三步,设置脚本运行过程

    打开 tests-〉settings软件测试专业网站:51Testing软件测试网 M4F2Qn-r3k ]3R
    设置RUN TAB页面下 Datatable iterations中 Run On all rows

    这样就完成了整个脚本的设计工作,以上通过一个简单例子吧脚本的设计和软件的功能结合起来,达成脚本的设计效果。

  • QTP的登陆脚本设计

    2008-02-20 13:06:42

        由于一直以来事情都比较多,最近上课还有其它的事情,所以本来答应一个朋友把脚本帮他写一些,但是耽误了3-4天了,实在不好意思。这里把脚本简单说一下,我们分析一下。
    t_&WG7HtH128649    当时问题是这样的,“我的错误的用户名就没办法登陆”,其实含义就是脚本最好能处理成功的用户名错误的用户名,那么这里涉及到脚本的设计。

    目标如下:
    ~sC4z+}%X,F1286491.    脚本需要处理成功和失败的用户的登陆 软件测试专业网站:51Testing软件测试网7fE(a Iy,y7T4k
    2.   数据驱动

    设计开发脚本如下:

    软件测试专业网站:51Testing软件测试网M3A _%n R
    第一步录制脚本如下
    {eI-T~C128649Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebEdit("txtLoginName").Set "吕巍"
    2vLWV"@tj9y2[128649Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登 录").set ""
    Z2_O6rZ*I128649Browser("智能变电巡检仪系统 4.0").Page("Page").Syn
    x]1u D Z%M6h"q128649Browser("智能变电巡检仪系统 4.0").Close

    以上为录制的正确的用户名,下边录制错误的用户名
    M9R$[Vr.F Y0oN128649Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebEdit("txtLoginName").Set "xx" 软件测试专业网站:51Testing软件测试网_MwF(M*mq
    Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登 录").set "" 软件测试专业网站:51Testing软件测试网PmWm%X\ Bi
    出现错误提示“该用户不存在”

    第二步 增强脚本

    现在需要设计的是一套脚本驱动所有的测试数据,这样可以驱动所有的用例数据,qtp中提供了datatable。软件测试专业网站:51Testing软件测试网`y@/M9z(d U C
    但是有数据驱动也要做一个事情就是如何处理错误的用户名和正确的用户名,如何结合起来呢?
    Pq$CB$j;v!D128649这里我把datatable看作存放测试用例的地方,里面放入测试数据,还放入测试的预期结果。这样我的设计已经出现雏形了。软件测试专业网站:51Testing软件测试网!v@ey&n0q
    我把datatable设计为三列

    username  password status
    %L9` i4J4@l128649吕x                软件测试专业网站:51Testing软件测试网r6_-W/` y.rP6dF:zA#x
    xxx       xxxx     该用户不存在

    第三列放入最后执行的结果,我设计的是空为成功登陆,如果有信息就用实际运行的结果和这一列对比.好了万事俱备只欠东风了

    修改脚本如下:
    *i@aeC0t*^_128649Dim iStatus

    Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebEdit("txtLoginName").Set DataTable("username", dtLocalSheet)软件测试专业网站:51Testing软件测试网ZUz [K0g+ey
    Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登 录").set DataTable("password", dtLocalSheet)软件测试专业网站:51Testing软件测试网qmP~hVT5U.Q
    iStatus = DataTable("status", dtLocalSheet)

    If   iStatus=""  Then软件测试专业网站:51Testing软件测试网t r4Z,{o3j L
      Browser("智能变电巡检仪系统 4.0").Close软件测试专业网站:51Testing软件测试网 |wU3|2S WHR
    End If


    \;h6OKd4_128649If   iStatus="该用户不存在"    Then
    !e0A;g3^pHEc!@128649     Reporter.ReportEvent micFail, "登陆", "登陆失败." 软件测试专业网站:51Testing软件测试网 `)_f L `u|~z
    End If

    Browser("智能变电巡检仪系统 4.0").Close

    第三步,设置脚本运行过程

    打开 tests-〉settings软件测试专业网站:51Testing软件测试网d AkRL4meB
    设置RUN TAB页面下 Datatable iterations中 Run On all rows

    这样就完成了整个脚本的设计工作,以上通过一个简单例子吧脚本的设计和软件的功能结合起来,达成脚本的设计效果。

  • QTP的录制及回放过程

    2008-02-20 12:58:15

    QTP录制过程

       1.确定用于描述当前操作对象的测试对象类,并创建测试对象

       2.读取当前操作对象属性的当前值,并存储一组属性和属性值到测试对象中

       3.为测试对象创建独特的有别于其他对象的名称,通常使用一个突出属性的值

       4.记录在对象上执行的操作

    录制过程中可能出现的问题:

       1.无法识别对象

       解决方案:如果是没有相应程序的插件,而导致的对象不能识别,请填加相应的插件.如果是少量的几个控件不能识别的话,可以用合适类型的虚拟对象来代替.当然还有两个万能的办法,就是更改录制模式使用LOW-LEVEL Recording 和 Analog Recording来录制.软件测试专业网站:51Testing软件测试网k?[A0Ir+d
    软件测试专业网站:51Testing软件测试网0Ok2P'Z3|)I@ M
       2.无法生成脚本,但对象可以识别

       解决方案:把对象手工添加到对象库中去,然后手工来生成需要的脚本

     

    QTP回放过程

       1.根据对象的名称到对象存储库中查找相应的对象

       2.读取对象的描述,既对象的属性和属性值

       3.基于对象的描述,QTP在应用程序中查找相应的对象

       4.执行相关的操作

     

    回放过程中可能出现的问题:  

       1.找不到测试对象 

       解决方案:把该对象填加到对象库中去

       2.测试对象与运行时对象不匹配

      解决方案:如果是因为脚本的上下文依赖而导致的对象不能识别,请加相应的延时.如果是由于对象属性发生了变化而导致的对象不能识别,请修改相应的属性.

       3.无法执行脚本操作

       解决方案:请检查脚本程序

  • QTP与回归测试

    2008-01-09 10:31:22

        最近有不少朋友在论坛里问到"QTP如何做回归测试?"的问题,这里我们有必要来探讨一下.首先这个问题中存在一个误区,事实上回归测试怎么做,跟自动化工具没有必然的联系.所以这里的如何做回归测试并不是一个QTP的问题,而是一个回归测试的策略的问题.

         我们先来了解一下回归测试的概念和策略以及一般大致会采用的流程.

         那么什么是回归测试呢?简单的说,回归测试是贯穿在整个测试的各个阶段的一个测试活动.它的目的是检验已经被发现的缺陷有没有被正确的修改和修改过程中有没有引发新的缺陷.软件在测试或者其他活动中发现的缺陷经过修改后,都要进行回归测试的验证.

        我们在做回归测试的时候可以采用不同的策略.

    策略(1) 可以选择完全重复测试.把所有的测试用例,全部再完全的执行一边,以确认问题修改的正确性和修改后周边是否受到影响.缺点是由于要把用例全部执行,所以会增加项目成本,也会影响项目进度.所以很难来完全执行,所以引出了回归测试策略(2) 选择性重复测试.

    策略(2) 可以选择性重复测试.可以选择一部分进行执行,以确认问题修改的正确性和修改后周边是否受到影响.那么我们怎样去选择用例呢?这里有三个方法:1.覆盖修改法 针对发生错误的模块,选取这个模块的全部用例进行测试.这样只能验证本模块是否还存在缺陷,但不能保证周边与它有联系的模块不会因为这次改动而引发缺陷.所以引出第2个方法,即2.周边影响法.除了把出错模块的用例执行之外,把周边和它有联系的模块的用例也执行一边,保证回归测试的质量.当然我们还可以用量化的角度去分析模块的质量,比如:经过上面的一系列回归测试后,看看遗留的缺陷率是否已经在允许的范围之内了,那么我们以此为标准可以结束本次回归测试.也就是我要提到的第三个方法 3.指标达成法.

       回归测试的流程

    1.在测试策略制定阶段,制定回归测试策略

    2.确定回归测试版本

    3.回归测试版本发布,按照回归测试策略执行回归测试

    4.回归测试通过,关闭缺陷跟踪单

    5.回归测试不通过,缺陷单返回开发人员.等重新修改,再次做回归测试.

    那么我们为什么会把工具和回归测试联系起来呢?原因是在回归测试中我们会去做大量的重复的执行测试用例的操作.为了让测试员能够从这种重复的工作中解放出来,去测试更多新的用例,我们所以可以选用一些自动化测试工具,来录制脚本,代替一部分手工操作.但事实上并不是这些工具只能用在回归测试中,在其他操作上也可以应用.但有一点是工具不能完全代替手工测试,它只是手工测试的一种补助.所以QTP作为一款功能测试工具,可以运用到回归测试中.51Testing软件测试网5DR$T"B`e'Le

  • QTP中的数据库检查点

    2008-01-09 10:24:51

    要创建数据库检查点或输出值,请执行下列操作:

    1. 选择“插入”>“检查点”>“数据库检查点”或“插入”>“输出值”>“数据库输出值”。将打开“数据库查询向导”。51Testing软件测试网;W%qU'o+t&TT
      51Testing软件测试网pS#Y"j,XS]mX%P

      HiO6Wa)O"Yp12864951Testing软件测试网'W }:Q:Ns tA
    2. 选择数据库选择首选项,然后单击“下一步”。可从下列选项中进行选择:
      • 使用 Microsoft Query 创建查询 - 打开 Microsoft Query,使您可以新建查询。完成定义查询的工作之后,返回到 QuickTest。只有在您的计算机上安装 Microsoft Query 之后,该选项才可用。
      • 手动指定 SQL 语句 - 在向导中打开“指定 SQL 语句”屏幕,使您可以指定连接字符串和 SQL 语句。有关详细信息,请参阅步骤 3
      • 最大行数 - 如果要限制行数,请选中该复选框,并输入要检查或输出的最大数据库行数。最多可以指定 32,000 行。
      • 显示如何使用 Microsoft Query - 单击“下一步”时,将在打开 Microsoft Query 之前显示一个说明屏幕。(只有在选中“使用 Microsoft Query 创建查询”时才启用)。
    3. 如果在上一步骤中选择了“使用 Microsoft Query 创建查询”,将打开 Microsoft Query。选择数据源并定义查询。
    4. 如果在上一步骤中选择了“指定 SQL 语句”,将打开“指定 SQL 语句”屏幕。指定连接字符串和 SQL 语句,然后单击“完成”。

    5. 将打开“检查点属性”或“输出值属性”对话框。
    6. 单击“确定”关闭该对话框。在关键字视图和专家视图中,将为所选对象添加一条检查点或输出值语句。

     

         

     

    了解“表/数据库检查点属性”对话框

    通过“表/数据库检查点属性”对话框,可以指定要检查表或数据库的哪些单元格内容以及要使用哪些验证方法和类型。还可以对检查中所含单元格的预期数据进行编辑或参数化。

    注意: ActiveX 表的“表检查点属性”对话框看上去与下面显示的对话框稍有不同。对于 ActiveX 表,除了检查表内容(使用“表内容”选项卡)以外,还可以选择是否要检查表对象的属性(使用“属性”选项卡)。根据要检查信息的类型,选中位于“表检查点属性”对话框相关选项卡顶部的“选择表内容”复选框和/或“选择属性”复选框。

    有关“表内容”选项卡中的选项的信息,请参阅下列部分。
    8tW(]|#|"l12864951Testing软件测试网.l"`-_ Dw+mar7w
    51Testing软件测试网qBj4\:~9NsS
    51Testing软件测试网Q1| `"F \aK

    “表/数据库检查点属性”对话框的顶部将显示为检查点捕获的数据。使用该区域可指定要检查的单元格。

    在预期数据下,“表/数据库检查点”对话框包含下列三个选项卡:

    • 预期数据 - 使您可以将每个已检查的单元格设置为常量值或参数化值。例如,可以指示 QuickTest 使用数据表中的值作为特定单元格的预期值。
    • 设置 - 使您可以设置预期值与实际值之间成功匹配的条件。例如,可以指示 QuickTest 将值视为数字(因此 45 和 45.00 将被视为同一个值),或者,可以指示 QuickTest 在比较值时忽略空格。
    • 单元格标识 - 使您可以指示 QuickTest 如何查找要检查的单元格。例如,假设您要检查显示在“表/数据库检查点属性”对话框中第一行和第二列中的数据。但是,您知道每次运行测试或组件时,这些行的顺序可能会有所不同,具体取决于在上一步中执行的排序。因此,您可能希望 QuickTest 根据列名和在关键字列中包含已知值的行来标识单元格,而不是根据行号和列号来查找数据。
    • 提示: 值匹配设置和单元格识别条件将应用于检查点中所有选定的单元格。如果要对表或数据库中的不同单元格使用不同的值匹配或单元格标识条件,请分别创建检查点,并为每个检查点指定相关的单元格。

    “表/数据库检查点属性”对话框的底部包含下列选项:

    • 检查点超时 - 指定 QuickTest 试图成功执行检查点的时间间隔(以秒为单位)。QuickTest 将继续执行检查点,直到顺利通过或发生超时。如果在发生超时之前检查点尚未顺利通过,则检查点将失败。
    • 例如,假设将数据加载到表中需要花费一些时间。在这种情况下,增加检查点超时值可确保有足够的时间来加载数据,从而使检查点在到达超时结尾之前可以顺利通过。

      可以在“测试结果”窗口中查看有关检查点超时的信息,包括 QuickTest 用于执行检查点的时间间隔。

      注意:只有在创建表检查点时,“检查点超时”选项才可用。创建数据库检查点时,该选项不可用。

    • 插入语句 - 指定在测试或组件中执行检查点的时间。如果要在执行突出显示的步骤之前检查表或数据库内容,请选择“当前步骤之前”。如果要在执行突出显示的步骤之后检查表或数据库内容,请选择“当前步骤之后”。
    • 注意:在录制期间添加检查点时或在修改现有检查点时,“插入语句”选项不可用。向现有测试或组件添加检查点时,该选项可用。

  • QuickTest Professional 自动化对象模型

    2008-01-09 10:21:05

      正如使用 QuickTest 实现应用程序测试自动化一样,也可以使用 QuickTest Professional 自动化对象模型实现 QuickTest 操作自动化。 可以使用由 QuickTest 自动化对象模型公开的对象、方法和属性来编写程序,用以配置 QuickTest 选项和运行测试或业务组件,而不必使用 QuickTest 界面手动执行这些操作。

       自动化程序在以下情形特别有用:多次执行相同任务或就多个测试或组件执行相同任务;根据特定环境或应用程序的需要快速配置QuickTest。

       其实要自动化运行QuickTest 相当简单,只需自己在电脑上建个vbs文件,完成后双击运行就可以实现了.下面给个最简单的配置QuickTest自动化启动,打开测试脚本,然后保存测试结果,然后自己关闭QuickTest程序的例子脚本.

    dim qtApp  

    dim qttest

    set qtApp = Createobject("QuickTest.Application")   '创建 Application 对象

    qtApp.launch   ' 启动

    qtApp.Options.Run.ViewResults = true

    qtApp.Visible = True  '可见

    qtApp.open "E:\Test1",true   '用只读的方法打开测试脚本

    Set qtTest = qtApp.Test   '创建 Test 对象

    Set qtResultsOpt = CreateObject("QuickTest.RunResultsOptions") ' 创建 Run Results Options 对象

    qtResultsOpt.ResultsLocation = "E:\Test1\Res1" ' 设置测试结果保存位置

    qtTest.run qtResultsOpt   '   执行测试

    qtTest.close   ' 关闭测试

    qtApp.quit    '关闭QTP

    Set qtTest = Nothing ' 释放 Test 对象

    set qtApp =nothing   '释放

    有兴趣的可以自己再研究更深层次的配置运行,QTP中基本上大多数的配置都可以通过它提供的对象及其方法和属性来通过代码实现51Testing软件测试网"AV7HsY4ra;W6Z

我的栏目

数据统计

  • 访问量: 9518
  • 日志数: 10
  • 建立时间: 2008-01-07
  • 更新时间: 2008-02-20

RSS订阅

Open Toolbar