導致QTP執行緩慢的常見原因

2021-06-06 15:35:03 字數 2508 閱讀 3634

1. 指令碼中有太多的wait語句

分析:wait語句的意思是一直等到超時時間後才繼續執行指令碼,等待的時間是固定的,這樣就會造成時間浪費,導致指令碼執行緩慢。

解決方法:使用exist,sync,waitproperty方法來代替wait

2. 開啟了智慧型識別

分析:qtp在識別物件的過程中如果物件的強制屬性和輔助屬性還不能唯一匹配到物件的話,會啟用智慧型識別模式,由於智慧型識別的演算法複雜,會消耗一定的資源開銷,所以導致指令碼執行緩慢。

解決方法:全域性關閉(file-->settings-->run)或者部分關閉智慧型識別(tools-->object identification根據物件型別)

3. 預設同步時間設定過長

分析:在qtp的執行設定中預設物件同步的超時時間是20秒,如果是測web程式的話還有60秒導航超時時間。

解決方法:在file-->settings選項中調低預設的超時時間

4. 由於錯誤頁面而找不到物件導致的物件同步超時

分析:由於操作步驟錯誤或者環境原因,開啟了乙個錯誤的頁面,使得後續的物件都無法找到。比如我需要在同乙個頁面操作10個物件,而恰巧由於網路問題網頁發生錯誤,如果每個物件的預設超時時間是20秒的話,那麼10個物件就是200秒,也就是說一旦頁面跳轉錯誤,是非常容易導致指令碼執行緩慢的!

解決方法:確保業務流程正確、儘量減少環境因素對自動化測試的影響、使用恢復場景來處理錯誤頁面

5. qtp的執行模式沒有設定成fast

分析:qtp的執行模式分為normal和fast,nomal模式允許在每一步執行完後都有延遲時間,而fast模式則沒有延遲時間。

解決方法:在tools-->options-->run中設定執行模式為fast

6. 指令碼中childobjects 方法過多使用

分析:childobjects方法一般都是採用迴圈遍歷,無疑會加重系統資源開銷,如果再加上網頁的元素很複雜的話,那麼勢必會影響指令碼的效能。

解決方法:盡量避免使用子物件的方法去操作物件,可以用dom的方式代替

7.恢復場景的啟用方式設定為"on every step"

分析:恢復場景的觸發方式有三種:on every step,on error和never,on every step的意思在每一步執行完後啟用恢復場景,去探測場景設定中的trigger有沒有觸發,這桌做法同樣也會降低指令碼的效能。

解決方法:啟用方式選用on error(可能會miss一些場景)、手工啟用恢復場景(recovery物件)

8. 指令碼的迴圈體中有過多冗餘迴圈

分析:有時我們會在乙個迴圈體中再增加一些條件分支語句,用於滿足特定的測試需求,如果迴圈次數少的話那還好,但要是迴圈次數非常多的話就會大大降低指令碼效能。

解決方法:在迴圈體的選擇分支語句中根據測試需求適當增加exit for,exit function之類的語句

9. 開啟了自動截圖功能

分析:自動截圖功能對於指令碼的出錯除錯提供了很大的方便,能使我們以更直觀的方式去分析和定位錯誤,但同時在一定程度上也會使我們的指令碼執行緩慢。

解決方法:在tools-->options-->run選項中禁用自動截圖功能,如果確實需要此功能那麼可以選擇"for errors"或者"for errors and warnings"

11. 開啟了系統實時監控

分析:系統實時監控是為了在執行自動化測試的同時,獲取一些系統的效能資料,比如記憶體佔用率,cpu佔用率,硬碟讀寫速度等等,通常是用來滿足效能測試的需要。如果設定的監控時間太頻繁的話,也會對指令碼的效能造成一定影響。

解決方法:在file-->settings-->local system monitor選項中禁用系統實時監控,或者將監控的間隔時間設定得長一些。

[注]以上所說的各種影響指令碼執行緩慢的設定問題都是基於qtp10.0版本的,如果版本不同,可能該設定所在的選單位置不同,甚至有些功能也沒有。如果遇到這種情況的,請自動忽略該條。

複製的虛擬機器執行及其緩慢,是什麼原因

這個問題我搜了好多都沒有,我複製了乙個redhat的虛擬機器,第乙個沒有什麼問題,複製的這個啟動很慢,是什麼原因呢?我關閉了sendmail服務之後就解決了,究竟是什麼原因還不清楚,sendmail服務很佔系統資源嗎?關閉sendmail服務 root使用者登入 1.service sendmail...

導致等待事件的常見原因及解決方案

如果你只能選擇兩個oracle實用程式來發現和監控oracle9i資料庫系統中的效能問題,你就應當選擇oralce enterprise manager oracle企業管理器,現在可用的版本為4.0 和statspack。從oracle8i 8.1.6版開始,statspack應用程式代替了ora...

DNS服務導致的SQLPLUS登陸緩慢

接使用者 某行核心系統 業務反應緩慢,超時。到達現場後檢查資料庫狀態,sqlplus登陸慢,命令敲下去基本上需要15秒以後登陸 檢查等待事件,一切正常,檢查log日誌正常,系統無任何壓力,vmstat 輸出正常,使用者反映root登陸時也很慢。申請停機,重啟了兩台550,重啟後未啟動ha,最簡單環境...