qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          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操作,然后將鼠標懸停在計算器的結果框上,按組合鍵來停止記錄,這時候會彈出一個新的窗口”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不是那么困難吧?你已經會測試簡單的程序啦!

          posted on 2013-01-28 11:05 順其自然EVO 閱讀(307) 評論(0)  編輯  收藏 所屬分類: selenium and watir webdrivers 自動化測試學習

          <2013年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 林芝县| 和静县| 邻水| 平江县| 铅山县| 原平市| 云南省| 南投县| 渭源县| 古丈县| 连平县| 铁力市| 淮阳县| 博乐市| 蓬莱市| 汝南县| 浙江省| 兴仁县| 当雄县| 康乐县| 龙里县| 新密市| 五河县| 富锦市| 承德县| 洛南县| 临朐县| 昌宁县| 南漳县| 双辽市| 伊吾县| 岳池县| 西丰县| 吴堡县| 巢湖市| 洛扎县| 吐鲁番市| 沙洋县| 安岳县| 阜城县| 江安县|