QTP中Wait與同步點的區別

2021-06-18 09:13:42 字數 1432 閱讀 8893

先說wait函式,當指令碼走到wait函式時,就開始執行這個函式.如:wait(10),就等待10秒種後再繼續執行下面的語句.wait函式的這個等待的時間,那相對來說是比較固定的.如上例子,一定要等待完10秒後再執行.所以寫指令碼的時候要自己估算一下時間.不然可能造成時間的浪費,或者等待時間的不足.

那同步點呢.等待時間就比較靈活了,它的等待時間是不固定的.設定同步點後,當指令碼執行到這句話後,指令碼就開始執行等待.指令碼會在規定時間內不斷的去檢查,所同步的物件有沒有出現,一但出現,指令碼就繼續往下執行.不需要等完所有規定時間.如果在規定的時間內,所要同步物件還沒有出現,那就提示超時的錯誤資訊.

window("flight reservation").activex("threed panel control").waitproperty "text", "insert done...", 10000

當指令碼執行到這句話時,就開始執行同步等待時間.這裡設定超時時間為10000毫秒(10秒).在這個時間內,指令碼會不斷去檢視該物件的text屬性的屬性值insert done...,有沒有出現.一但同步到這個屬性值,就開始執行下面的指令碼了.而不需要再繼續等待,直到1000秒結束為止.那這樣的話,這個等待時間不用自己去控制,設定好後由程式自己去判斷,就比較靈活,也不會出現浪費時間的情況.能提高指令碼的執行率.

舉例:

sub waitproperty_example()

'the following example uses the waitproperty method to make the

'test wait until the activex "calendar" object is enabled, or for

'5 seconds (5000 milliseconds) to pass. if the object is enabled before

'4 seconds pass, quicktest clicks the object.

with window("date").activex("calendar")

if .waitproperty("enabled", true, 5000) = false

then

reporter.reportevent 1, "calendar", "object disabled"

else

.click 95, 100

endif

end

with

end

sub

Java 中sleep與wait的區別

1 這兩個方法來自不同的類分別是thread和object 2 最主要是sleep方法沒有釋放鎖,而 wait 方法釋放了鎖,使得其他執行緒可以使用同步控制塊或者方法。3 wait,notify和notifyall只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在任何地方使用 使用範圍 s...

Java中sleep 與wait 區別

1 每個物件都有乙個鎖來控制同步訪問,synchronized關鍵字可以和物件的鎖互動,來實現同步方法或同步塊。sleep 方法正在執行的執行緒主動讓出cpu 然後cpu就可以去執行其他任務 在sleep指定時間後cpu再回到該執行緒繼續往下執行 注意 sleep方法只讓出了cpu,而並不會釋放同步...

java sleep與wait的區別

最近被問到這個問題,查詢資料後寫個例子,可看出其中差別。1 首先wait是object的方法,sleep是thread的方法。2 object.wait被某執行緒呼叫,要確保該執行緒能監控該物件,否則丟擲illegalmonitorstateexception。之後該執行緒放棄對次object的sy...