在我們開發腳本的時候,發現有些腳本總是重復的出現在各個腳本中。那么我們是不是可以把這些腳本寫成一個共享的function,放到一個共享的文件中?然后再給各個腳本調用呢?答案當然是肯定中。其實我在《QTP的一些小知識》中也提到了一個方法,就是利用ExecuteFile函數來調用.vbs文件。如:一個名為test.vbs的文件,我們只要在腳本中寫上這么一句代碼ExecuteFile("F:\test.vbs") ,就可以來直接執行這個.vbs文件了。
現在我再來介紹另一種方法,這種方法也是QTP本身所提供的。就是設置菜單選項“setting”中的"resource"選項來做到調用共享文件的效果。在"resource"選項中,有三種文件格式是可以被調用的,分別是*.sql;*.vbs;*.txt三種后綴文件。這里我用一個*.txt文件為例。
新建一個名為test.txt的文本文件,其保存內容如下:(注:保存的內容也必須合法)
Function writeorderno(orderno)
Dim fso, myfile
Set fso=CreateObject("scrīpting.FileSystemObject")
Set myfile=fso.openTextFile("C:\result1.txt",8,false)
myfile.writeline orderno
myfile.close
End Function
一個名為writeorderno的Function,其作用是把傳進來的值寫到C盤名為result1.txt的結果文件中去。(注:結果文件也是事先要準備好的)。共享文件準備完畢,那么就開始設置"resource"選項。打開“setting”窗口,找到"resource"選項。點擊“+”的button。選擇前面我們建好的文件。如下:
確定關閉窗口。我們就來試驗一下,是不是這個共享文件里的Function能夠被調用了。在QTP專家視圖里寫上這么幾句代碼:
Dim order
order=1
writeorderno order
接下去就按run執行試驗,結果測試通過。雖然在腳本中根本沒對writeorderno函數做說明,但是當QTP運行到這句代碼的時候,在本腳本里沒說明的情況下,自己會到"resource"選項里去找。結果QTP能正確識別這個writeorderno 函數。打開c盤里的 result1.txt的結果文件,發現傳進函數的值1,被正確的寫了進去。預示著整個調用共享文件的成功。
原文轉自:http://www.anti-gravitydesign.com