zoukankan      html  css  js  c++  java
  • SilkTest入门快打系列1录制回放

    本人使用SilkTest进行自动化测试已有一段时间,有一些经验想和初学者们分享,所以就尝试编写这个SilkTest入门快打系列教程。编写该教程有两个目的,首先,希望能够告诉初学者如何快速的上手SilkTest而不必关心很多SilkTest的细节。实际上,SilkTest是一个强大的软件测试工具,应用面很广,使用它的人很少能够面面俱到把所有SilkTest提供的功能都用到,根据28原理,绝大多数人只用到了其中20%的功能,所以我希望这个教程能够覆盖SilkTest最常被用到的那部分功能,让初学者能够尽快将SilkTest使用起来。其次,我工作中主要是用SilkTest对C/S结构的软件进行测试,一直没有机会用SilkTest来测试B/S的应用,所以希望能藉此机会,在编写该系列教程的时候同时更多地学习如何使用SilkTest。


    “天下功夫,唯快不破”,让我们赶紧开始SilkTest的快打旅程吧!


    开始之前,请确定你的机器上安装了SilkTest软件,我装的是2006试用版,如果你的版本和我的不同,那也没什么关系,因为不同版本SilkTest的脚本语法基本上没有变化。

    今天这一节,主要教你如何开始一个简单的测试。我们将要做的是测试WindowsXP自带的计算器,需要做的首先是新建一个测试项目,然后录制

    一段测试脚本并指定测试点,最后运行该测试观察测试结果。

    1. 新建测试项目
    首先打开你的SilkTest软件,然后从菜单里选择“File->New Project”,这时会弹出一个“New Project”的对话框,里面有两项“Create Project”和"Auto Generate Project",我们选择“Create Project”然后点击"OK"按钮。这时又出现了一个对话框,要求你输入Project的名字,请在"Project Name"里面输入Calculator,然后选择你要保存Project的路径,例如:“D:\Program Files\Borland\SilkTest\Projects\Calculator”,点击确定。这个时候你的新项目Calculator就建好了。

    2.录制测试脚本
    在录制脚本之前,为了让SilkTest认识我们的待测软件,也就是常说的AUT(application under testing),我们必须捕捉和建立AUT的GUI定义,这几乎是所有GUI测试的第一步。为了捕捉GUI的定义,我们首先需要建立一个Test Frame,你可以简单的理解Test Frame里面定义了将要测试的GUI上各个对象。
    由于我们要测试的是WindowsXP自带的计算器,所以请先打开该程序,你可以从"开始->程序->附件"里面找到它。打开后,你可以选择菜单"File->New",这样你就能弹出的对话框中选择"Test Frame"文件类型了,然后在"new test frame"对话框中选择"application"为计算器,其他的默认好了,点击OK按钮,SilkTest就帮你自动在Include/Frame目录下生成了frame.inc文件,这里面就是计算器GUI的定义,它的代码看起来像如下这样:
    [ ] const wMainWindow = 计算器
    [ ]
    [+] window MainWin 计算器
        [+] multitag "计算器"
            [ ] "$C:\WINDOWS\system32\calc.exe"
        [ ]
        [ ] // The working directory of the application when it is invoked
        [ ] const sDir = "C:\WINDOWS\system32"
        [ ]
        [ ] // The command line used to invoke the application
        [ ] const sCmdLine = "C:\WINDOWS\system32\calc.exe "
        [ ]
        [ ] // The first window to appear when the application is invoked
        [ ] // const wStartup = ?
        [ ]
        [ ] // The list of windows the recovery system is to leave open
        [ ] // const lwLeaveOpen = {?}
        [ ]
        [+] Menu 编辑E
            [ ] tag "编辑(E)"
            [+] MenuItem 复制C
                [+] multitag "复制(C)"
                    [ ] "$300"
            [+] MenuItem 粘贴P
                [+] multitag "粘贴(P)"
                    [ ] "$301"
        [+] Menu 查看V
            [ ] tag "查看(V)"
            [+] MenuItem 标准型T
                [+] multitag "标准型(T)"
                    [ ] "$305"
            [+] MenuItem 科学型S
                [+] multitag "科学型(S)"
                    [ ] "$304"
            [+] MenuItem 数字分组I
                [+] multitag "数字分组(I)"
                    [ ] "$303"
        [+] Menu 帮助H
            [ ] tag "帮助(H)"
            [+] MenuItem 帮助主题H
                [+] multitag "帮助主题(H)"
                    [ ] "$317"
            [+] MenuItem 关于计算器A
                [+] multitag "关于计算器(A)"
                    [ ] "$302"
        [+] TextField TextField1
            [ ] tag "$403"
        [+] PushButton MC
            [+] multitag "MC"
                [ ] "$113"
        [+] PushButton MR
            [+] multitag "MR"
                [ ] "$114"
        [+] PushButton MS
            [+] multitag "MS"
                [ ] "$115"
        [+] PushButton M
            [+] multitag "M+"
                [ ] "$116"
        [+] PushButton N7
            [+] multitag "7"
                [ ] "$131"
        [+] PushButton N4
            [+] multitag "4"
                [ ] "$128"
        [+] PushButton N1
            [+] multitag "1"
                [ ] "$125"
        [+] PushButton N0
            [+] multitag "0"
                [ ] "$124"
        [+] PushButton N8
            [+] multitag "8"
                [ ] "$132"
        [+] PushButton N51
            [+] multitag "5"
                [ ] "$129"
        [+] PushButton N2
            [+] multitag "2"
                [ ] "$126"
        [+] PushButton PushButton24
            [+] multitag "+?-"
                [ ] "$80"
        [+] PushButton N91
            [+] multitag "9"
                [ ] "$133"
        [+] PushButton N6
            [+] multitag "6"
                [ ] "$130"
        [+] PushButton N3
            [+] multitag "3"
                [ ] "$127"
        [+] PushButton N16
            [+] multitag "?[16]"
                [ ] "$85"
        [+] PushButton N52
            [+] multitag "?[5]"
                [ ] "$90"
        [+] PushButton N92
            [+] multitag "?[9]"
                [ ] "$91"
        [+] PushButton PushButton20
            [+] multitag "-"
                [ ] "$93"
        [+] PushButton PushButton26
            [+] multitag "+"
                [ ] "$92"
        [+] PushButton PushButton27
            [+] multitag "="
                [ ] "$112"
        [+] PushButton Backspace
            [+] multitag "Backspace"
                [ ] "$83"
        [+] PushButton CE
            [+] multitag "CE"
                [ ] "$82"
        [+] PushButton C
            [+] multitag "C"
                [ ] "$81"
        [+] StaticText StaticText1
            [ ] tag "$401"
        [+] PushButton N1X
            [+] multitag "1?x"
                [ ] "$107"
        [+] PushButton Sqt
            [+] multitag "sqt"
                [ ] "$103"
        [+] PushButton PushButton15
            [+] multitag "%"
                [ ] "$109"
        [+] StaticText StaticText2
            [ ] tag "$1000"
    [+] window MessageBoxClass MessageBox
        [ ] tag "~ActiveApp/[DialogBox]$MessageBox"
        [+] PushButton OK
            [ ] tag "OK"
        [+] PushButton Cancel
            [ ] tag "Cancel"
        [+] PushButton Yes
            [ ] tag "Yes"
        [+] PushButton No
            [ ] tag "No"
        [+] StaticText Message
            [ ] motif tag "#2"
            [ ] tag "#1"

    现在,你可以新建一个testcase了,选择菜单的"Record -> Testcase...",在弹出的"Record Testcase"对话框中,你可以看到默认的testcase name是Test1,初始状态是DefaultBaseState,然后你点击StartRecording按钮就可以开始录制测试用例了。当你按下该按钮时,一般右下角屏幕会出现一个Record Status的对话框,然后你在屏幕上做的任何操作都可以被记录下来。在本例中,请点击计算器的清零按"C",然后按顺序按"1","2","3","+","1","2","3","="等按钮,你就完成了123+123操作,然后将鼠标悬停在计算器的结果框上,按组合键<Ctrl-Alt>来停止记录,这时候会弹出一个新的窗口"Verify window"让你选择要verify的内容,也就是测试点。因为你最后是悬停在计算器的结果框上,SilkTest以为你会想要verify该控件的属性,它会让你选择该控件的属性,你只需要选择Text,也就是该次计算的结果,然后点击OK,再点击record Status对话框的Done。接着出现的Record Testcase对话框中点击Paste to Editor就把这次记录的脚本粘贴到一个新的脚本文件中了,保存它为Record.t。如果你得到了如下的代码,恭喜你录制已经完成。
    [-] testcase Test1 ()
        [-] recording
            [ ] 计算器.SetActive ()
            [ ] 计算器.C.Click ()
            [ ] 计算器.N1.Click ()
            [ ] 计算器.N2.Click ()
            [ ] 计算器.N3.Click ()
            [ ] 计算器.PushButton26.Click ()
            [ ] 计算器.N1.Click ()
            [ ] 计算器.N2.Click ()
            [ ] 计算器.N3.Click ()
            [ ] 计算器.PushButton27.Click ()
            [-] 计算器.TextField1.VerifyProperties ({...})
                [ ] ""
                [-] {...}
                    [ ] {"Text",                 "246. "}

    3. 执行录制的测试脚本
    脚本录制好了,从项目里面选择上你记录的Record.t文件,按F9就可以直接运行了。这个时候,SilkTest会激活计算器这个应用,然后以飞快的速度重复我们刚才做的操作,然后退出显示result文件,它的内容如下:
    [ ] Script record.t - Passed
    [ ] Machine: (local)
    [ ] Started: 04:20:45PM on 31-May-2009
    [ ] Elapsed: 0:00:02
    [ ] Passed:  1 test (100%)
    [ ] Failed:  0 tests (0%)
    [ ] Totals:  1 test, 0 errors, 0 warnings
    [ ]
    [-] Testcase Test1 - Passed
        [ ] *** DefaultBaseState is setting 计算器 active, MainWin("SilkTest入门快打.txt - 记事本|$C:\WINDOWS\notepad.exe") was active


    该result文件表示我们的测试时Passed,见第一行。然后会记录测试开始的时间和耗费的时间。如果测试中有warning或者Error,result文件的结果会用紫色或红色的文字显示,没有任何问题的话,测试结果应该是黑色文字显示。

    怎么样,使用silktest不是那么困难吧?你已经会测试简单的程序啦!

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yuetiantian/archive/2009/05/31/4228805.aspx

  • 相关阅读:
    【BZOJ4517】[SDOI2016] 排列计数(组合数)
    【BZOJ4818】[SDOI2017] 序列计数(矩乘水题)
    【BZOJ4872】[SHOI2017] 分手是祝愿(思维+动态规划)
    【BZOJ4821】[SDOI2017] 相关分析(线段树)
    【BZOJ2710】[Violet 1] 追风者(计算几何)
    【BZOJ3199】[SDOI2013] escape(半平面交+BFS)
    【BZOJ1007】[HNOI2008] 水平可见直线(几何)
    【BZOJ3689】异或之(可持久化Trie树)
    【BZOJ3261】最大异或和(可持久化Trie树水题)
    NOI Online #3 提高组 小记
  • 原文地址:https://www.cnblogs.com/chester/p/2084204.html
Copyright © 2011-2022 走看看