軟件測試工具Robot中使用腳本調用

發表于:2009-12-17來源:作者:點擊數: 標簽:
軟件測試工具 Robot中使用腳本調用 使用Rational Robot 錄制操作生成腳本是很容易的事情,但如何管理腳本,減少腳本對程序和對其他腳本的依賴卻是很值得探討的,這需要 自動化測試 人員對腳本整體結構有一個很好的計劃,同時還需要對被測軟件的功能模塊,業

軟件測試工具Robot中使用腳本調用

使用Rational Robot 錄制操作生成腳本是很容易的事情,但如何管理腳本,減少腳本對程序和對其他腳本的依賴卻是很值得探討的,這需要自動化測試人員對腳本整體結構有一個很好的計劃,同時還需要對被測軟件的功能模塊,業務重點劃分明細。

        下面舉一個簡單的例子,用Robot打開一個記事本并輸入內容保存,其中“打開”與“輸入、保存”的操作是通過腳本調用實現,Robot對窗體Caption的定位提到頭文件中作統一處理,同時對輸入、保存的內容數據使用Datapool,現來看一下腳本,之后我會對其中一些語句做簡單解釋:

        主腳本 main:

        '$include "sqautil.sbh"        '調用Datapool時必須事先聲明一下這個頭文件

        declare sub notepadinput basiclib "notepadinput"(m as string,n as string)

        '聲明這個主腳本里要call的sub(或function)名稱和所在腳本的名稱,及參數

clearcase/" target="_blank" >cccccc cellSpacing=0 cellPadding=1 width="80%" align=center bgColor=#ffffff border=1 heihgt="">

        Sub Main
            Dim Result As Integer

            'Initially Recorded: 2006-11-10  8:51:51
            'scrīpt Name: main
            Dim x as integer
            Dim m as string
            Dim n as string
            Dim dp as long
            StartApplication "C:\WINDOWS\system32\notepad.exe"
            dp=SQADatapoolopen("notepaddp")   '打開Datapool,名字為notepaddp
            for x = 1 to 5                    '循環,Datapool就像一個excel表,這個循環就是從不同行里取值
            call SQADatapoolfetch(dp)         '移動Datapool里的指針
            call SQADatapoolvalue(dp,1,m)     '從第一行第一列里取值賦給m
            call SQADatapoolvalue(dp,2,n)     '從第一行第二列里取值賦給n
            call notepadinput(m,n)            '將m,n作為參數傳遞給notepadinput,記得腳步開始處的那個delcare吧
            next                              '循環
            call SQADatapoolclose(dp)         '關閉Datapool
        End Sub

        ===========================================================================
        子腳本 notepadinput::

        '$include "notepadheader.sbh"

        '調用頭文件,頭文件中統一處理窗體Caption定位問題

           Sub notepadinput(m as string,n as string)
            Dim Result As Integer
            'Initially Recorded: 2005-7-17  20:08:01
            'scrīpt Name: notepadinput
            Window SetContext, winname, ""    '本行中的winname就是在頭文件中處理的Caption
            EditBox Click, "ObjectIndex=1", "Coords=52,17"
            InputKeys m                       '輸入m中的數值
            MenuSelect "文件(F)->另存為(A)..."
            Window SetContext, "Caption=另存為", ""
            ComboEditBox Left_Drag, "ObjectIndex=3", "Coords=85,9,-77,23"
            InputKeys n                        '保存名稱為n中的數值
            PushButton Click, "Text=保存(S)"
        End Sub

    ==================================================================================

        頭文件 notepadheader.sbh:

        const winname as string = "Caption={* - 記事本}"

        '一般頭文件中定義常量并賦值,這里Caption使用通配符,可以定位所有窗體

        ==================================================================================

        Datapool

        在TestManager中新建一個Datapool,名字為notepaddp,新建兩列五行(數值屬性為string),自己編輯數值即可

        ==================================================================================

        其實Robot中腳本調用和Datapool還是很簡單的,因為他的語句都很固定,只要設置正確運行不會有問題。

        腳本和輸入數值的分離度越高,對于腳本的維護越方便,因為當被測程序變動或你打算輸入不同測試數值時只需修改一個地方即可。上面的這個程序是很簡單的一個例子,但相信其中用到的方法對新學Robot的人還是比較有幫助的。如果有問題,歡迎大家多多討論:)

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97