VU腳本是類C語言,區分大小寫。所以在獲取識別方法和屬性值時最好的方法就是使用Inspector。
自己編寫腳本時,還有一個要注意的問題是窗口上下文,窗口上下文不正確會導致回放時找不到對象。上面的腳本中Window SetContext, "Caption=計算器", ""下面的操作都是在這個窗口上進行的。編寫腳本時一定注意看一下窗口上下文是否正確。
也可以在識別方法中指定窗口上下文,如Result = SQAGetProperty ("Type=Label;ObjectIndex=1", "Text", sum)可以改成Result = SQAGetProperty ("\;Type=Window;Caption=計算器;\;Type=Label;ObjectIndex=1", "Text", sum),第一個“\”代表桌面,“Type=Window;Caption=計算器”是計算器窗口,第二個“\”代表“Type=Window;Caption=計算器”和“Type=Label;ObjectIndex=1”是父子關系。這兩個命令的效果完全一樣。
SQABasic頭文件包含一系列的聲明,頭文件可以應用到
一.聲明共有或則全局常量,變量和用戶定義類型
二.聲明自定義sub,procedures和function
頭文件中的聲明可以應用到任何模塊(腳本或者類庫文件)。用’$include關鍵字,放在模塊開始的地方-例如:
’$include “global.sbh”
SQABasic頭文件類型
Sqabasic支持兩種頭文件類型:
一.頭文件保存在sqabasic路徑。不用指定任何路徑信息就可以在本工程或者其他工程中應用他們
二.工程頭文件可以保存在TMS_Script文件夾中。不用指定任何路徑信息就可以在同一個工程中處理。
這兩種SQABasic頭文件都有同樣的擴展名- .sbh
庫文件
庫文件包含一個或者更多供procedure從其它文件調用的sub,procedure和function。
一.SQABasic庫文件(擴展名為.sbl或則.rec)
注意,.rec文件可以作為腳本文件或者庫文件,但是.sbl只能被用作庫文件。
二.動態連接庫文件(擴展名.dll)
下邊的表格這幾種類庫文件不同的總結:
.sbl
.rec
.dll
位置
SQABasic路徑
當前工程文件中Datastore(文件夾 TMS_Script)
TMS_Script/dll文家夾或則其他位置
范圍
在SQABasic路徑中,對所有工程文件都可用
對同一個工程所有腳本可用
依靠位置
驗證點
不支持
支持標準的robot驗證點
支持自定義驗證點
任何.rec文件都能作為庫文件。不管怎樣,如果一個.rec文件作為腳本(可以從robot中直接運行或者用callscript命令),他必須有一個main過程。
在SQABasic庫文件中聲明過程
如果在SQABasic過程中有一個自定義的過程,你聲明類文件的方法同樣適用聲明過程。
下邊的例子是在sqabasic庫文件中(mylib.sbl)聲明一個自定義過程(mysub):
Declare Sub MySub Basiclib “MyLib”( arg1 as string,arg2 as integer)
一.關鍵字basiclib,表示過程mysub在一個sqabasic庫文件中
二.庫文件的名字“mylib”,這里不需要寫擴展名(.sbl或者.rec)
備注:basiclib關鍵字特指.sbx庫文件的聲明(和.dll庫文件相對),這里不需要也不推薦帶有.sbx擴展名的聲明。
什么地方聲明SQABasic庫文件
可以在任何位置聲明SQABasic庫文件
一.在腳本或者其他庫文件,僅在模塊中應用過程
二.頭文件中,用道的模塊
庫文件包含不需要指定的例程或者’include頭文件
在dll文件聲明過程文件
如果在dll文件的自定義過程,聲明過程同樣可以聲明dll文件。
下邊是dll文件中(mydll.dll)聲明自定義過程(mysub)的例子:
declare sub mysub lib “mydll”(byval arg1 as string,Byval arg2 as integer)
一.聲明中加入Lib關鍵字,表示聲明的過程在dll文件中(相對于.sbl或者.rec sqabasic庫文件)
二.庫文件名字(mydll),跟隨庫指定的名稱
三.參數聲明通常包括關鍵字byval(參數聲明包括任何關鍵字)
如果編譯位置在sqabas32路徑或在系統路徑的庫文件(.dll),你不用特別聲明路徑。如果庫文件不再sqabas32或者在系統路徑,你需要制定路徑,比如
Declare Sub MySub Lib “E:MyDll” (byval arg1 as string,Byval arg2 as integer)
在什么地方聲明dll文件
你可以聲在任何為指聲明dll文件:
1.腳本或者sqabasic庫文件,要用過程的模塊
2.頭文件,任何模塊指定的頭文件
SQABasic路徑
Sqabasic路徑是robot保存和尋找sbl庫文件和頭文件的地方,用戶在robot中也可以定義。
一旦你在robot中指定sqabasic路徑,這個路徑是固定的。不管怎樣,robot自動設置sqabasic路徑,當下列條件是真的時候:
i.仍沒有明確在robot中定義sqabasic
ii.已經在rational Aministrator建立新的工程和數據倉庫
iii.打開最近創建的工程和數據倉庫
當上邊所有條件為真的時候,robot自動在新工程和數據倉庫中設置sqabasic路徑到下列位置:
[NewProject][NewDatastore]DefaultTestScriptDatastoreTMS_ScriptSQABas32
設置步驟:
1)點Tools->General Options
2)點Preferences頁面
3)在SQABasic路徑中輸入路徑
Rational test早期版本沒有提供菜單選項來設置sqabasic路徑 – 參閱sqa common directory片斷
指導使用頭文件和庫文件
推薦下邊使用庫文件方法:
a)自定義函數或者過程應該使用有同樣文件名字的頭文件(.sbh)和庫文件(.sbl),比如DataFunctions.sbh和DataFunctions.sbl。這個過程和函數在頭文件中定義(指定聲明頭文件)和在庫文件中定義?聪逻叺睦
b)分離頭文件(參閱常量頭文件)用于包含常量,變量和用戶定義類型用于腳本或者庫文件調用。頭文件用同樣的文件名字后邊附加_x或則_C(附加是早期命名規定)。注意包含常量和變量的頭文件必須加入到聲明頭文件和庫文件之前。(DataFunctions.sbh和DataFunctions.sbl),比如’include “DateFunctions_c.sbh”。這樣做很容易維護。
c)通過分類或者程序把相關的函數放在同一個庫里,例如,把所有日期相關的函數放到DataFunctions.sbh/sbl,或者把所有的函數加入為特定程序開發的函數庫中(比如AppName.SBH/SBL)
d)函數是在庫文件中子程序的的首選方式,處分過程的結果對于調用腳本是不相關的。函數應該返回一個值,或者適當的,數據可以通過變量或者數組返回。在后邊的例子中,函數返回的結果表示成果或者失敗。
e)庫文件中的所有得函數和子程序必須有“注釋“,包含這個過程的目的和用途::
請看下邊的例子。
f)庫文件的注釋有合理的解釋,通過讀注釋可以知道過程的邏輯
g)如果開發和維護robot庫文件是集中管理的方式,那么你可以加入到’$include 所有庫文件到global.sbh頭文件中,這樣做對所有頭文件都有用。這可以加入缺省的腳本模板。作為選擇,測試人員在每個腳本中可以選擇或者包含需要的庫文件。
文章來源于領測軟件測試網 http://www.kjueaiud.com/