軟件測試工具Winrunner中的腳本和函數調用

發表于:2010-01-19來源:作者:點擊數: 標簽:軟件測試工具腳本winrunnerWinrunner
軟件測試工具Winrunner中的腳本和函數調用 Winrunner與 Robot 不同,它的每一個腳本并不是以函數(Function)或子程序(Sub)來圈定的,就是說腳本從頭到尾都是錄制操作生成的語句,沒有頭和尾的具體劃分,對于腳本和函數的調用方式與Robot有很大不同。 Robo

軟件測試工具Winrunner中的腳本和函數調用

Winrunner與Robot不同,它的每一個腳本并不是以函數(Function)或子程序(Sub)來圈定的,就是說腳本從頭到尾都是錄制操作生成的語句,沒有頭和尾的具體劃分,對于腳本和函數的調用方式與Robot有很大不同。

        Robot對腳本的調用或者使用Callscrīpt,或者使用Call,一個是不需要傳遞參數的調用,純粹是腳本調腳本,另一個則是對腳本中函數(Function)或子程序(Sub)的調用,可以傳遞參數(具體見我寫的關于Robot函數調用的文章)。那么Winrunner中腳本和函數是又怎樣調用的呢?下面我就WR8.2版本中調用的方法詳細的說明一下。

        腳本的模塊化是應該始終堅持的一個方向,在WR8.2中我同樣希望建立一個main腳本和若干個子腳本。但其中我們會涉及到如下幾個不同的調用方式:

        1.只是調用另一個腳本,不傳遞參數,需要一個腳本的返回值

        2.調用另一個腳本,傳遞參數并需要多個腳本的返回值

        3.調用另一個腳本中的函數,需要多個函數中的返回值

        4.調用另一個腳本,給這個腳本傳遞參數,并根據參數判斷執行腳本中的函數,需要函數的返回值

        舉一個最簡單的例子,演示不同的情況。

        第一種情況:只是調用另一個腳本,不傳遞參數。

        新建一個主腳本:main,里面做GUI文件加載和開啟記事本程序:

        #############################################################################

clearcase/" target="_blank" >cccccc cellSpacing=0 cellPadding=1 width="80%" align=center bgColor=#ffffff border=1 heihgt="">
         GUI_close_all();
        if (GUI_load(".\\notepad.gui")!=0)
        {
         report_msg("gui load error");
        }
        else
        {
         report_msg("gui load ok");
        }
         if (invoke_application("c:\\windows\\system32\\notepad.exe","","",SW_SHOW)!=0)
         {
          report_msg("notepad error");
         }
         else
         {
          report_msg("notepad ok");
         }
        re1 = call ".\\notepadinput"();

        記住call函數的使用句式,給出相對路徑下的子腳本名稱,括號中不需要傳遞參數,re1將得到腳本notepadinput的返回值,如果不想取得返回值的話則只用call即可。

        ############################################################################

        新建一個子腳本:notepadinput,錄制對記事本的輸入:

          set_window ("無標題 - 記事本", 1);
         edit_set_insert_pos ("Edit", 0, 0);
         obj_type ("Edit","123");
         obj_type ("Edit","<kReturn>");
         edit_get_text("Edit",text);
         treturn text;

        #腳本的返回語句是treturn

        可以看到上面的這個例子是最簡單的一個種調用,子腳本中都是錄制生成的語句(沒有開頭和結尾的圈定,請與Robot對比),最后一個treturn語句是腳本的返回值。

        第二種情況:調用另一個腳本,傳遞參數并需要多個腳本的返回值

        對腳本進行參數的傳遞和返回需要在腳本屬性中進行設置,具體操作是新建一個子腳本notepadinput在File-〉Test properties 在彈出的提示框中選擇Parameters頁簽,這里可以設置這個腳本中的傳入參數和傳出參數。我們在“input parameters”中新建兩個參數:notepadinput1,notepadinput2(最好給出描述),在“output parameters”中新建兩個參數:result1,result2。保存設置并推出,接下來開始對主腳本main和子腳本notepadinput進行編輯。

        主腳本:main

        ###########################################################################

        GUI_close_all();
        if (GUI_load(".\\notepad.gui")!=0)
        {
         report_msg("gui load error");
        }
        else
        {
         report_msg("gui load ok");
        }

         if (invoke_application("c:\\windows\\system32\\notepad.exe","","",SW_SHOW)!=0)
         {
          report_msg("notepad error");
         }
         else
         {
          report_msg("notepad ok");
         }

        re1 = call ".\\notepadinputscrīpt"(1,2,result1,result2);    #這里一定要寫上result1,result2

        pause (result1);
        pause (result2);

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

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