❶ QTP腳本運行很慢,要怎麼解決
QTP佔用系統資源較多,電腦配置達不到要求。
解決方案有兩個選擇:
換高配置的電腦
換輕量級的自動化測試工具
❷ 怎麼學習自動化測試
首先,想從事自動化測試,必須先了解What/Why/How,也就是常說的去了解什麼是自動化測試、為什麼要進行自動化測試、該如何進行自動化測試,這類的資料在網上有很多,這里就不做重復了; 其次,需要根據項目的特點,選擇合適的自動化測試工具,並了解工具的特性。以QTP為例,該如何去掌握它呢?對於初學者,大多數都是通過錄制的方式來生成腳本,這個階段應該掌握的基礎知識有:1) QTP是如何去識別對象的,對於新手經常會出現錄制的腳本回放的時候報錯的現象,這個時候就應該考慮為什麼呢?如果很了解QTP識別對象的原理啊,我想就能很快定位到原因了2) 去掌握一些QTP對象的方法,如GetROPreperty、GetTOPreperty、ChildObjects等等,對於相似的方法應該去搞清楚到底區別在哪?像GetROPreperty、GetTOPreperty有什麼區別等3) 什麼是Action參數、什麼又是Test參數?兩者有什麼區別,又有什麼聯系,在同一Test和不同Test間這些參數如何工作4) 什麼是環境變數?環境變數是如何建立和使用的,環境變數在參數傳遞中和action參數、test參數有什麼不同5) 了解檢查點的知識,明白什麼是內置檢查點,什麼又是自定義檢查點。並搞清楚在什麼時候該如何使用檢查點6) 掌握對象庫的操作,了解對象庫對於測試的意義,象是否啟用智能識別對測試腳本有何影響、為什麼同一對象識別起來會有_1、_2之類的後綴等都是需要去研究清楚的問題這幾個問題都搞清楚的話,那基本就能夠利用QTP生成正確的腳本了,當然以上只是部分必須掌握的內容,其實還是很多細節的設置,就需要在實際運用中去掌握了。接下來,就可以進一步提升自己的QTP運用水平了,這個階段就需要去學習vbs知識和如何運用描述性編程實現腳本了,同時在這個過程中還需要去學習html知識、DOM、XML、以及像excel、word等的API知識了,總的來說,這個階段應該掌握的內容大體上包括:1) VBscrīpt的基礎知識,熟悉常用的方法和函數,掌握文件對象的操作等2) 熟練掌握XML技術;excel、word等API對象,可以根據需要創建日誌等3) 熟練掌握DOM和HTML知識,能夠結合這些技術對Web頁面進行解析4) 掌握資料庫的基本操作語句,能夠利用ADO對象進行數據操縱5) 熟練掌握正則表達式,很多時候處理對象問題相當方便6) 掌握如何調用dll進行工作7) 能夠利用QTP的自動化對象模型創建出需要的運行模式8) 掌握WMI知識以上只是我考慮到的部分,並不全面,呵呵,供大家參考,當然這些技術主要是針對Web系統運行,因為我們的系統就是B/S的,呵呵。如果這些知識都能夠扎實的掌握的話,個人認為,基本上能夠處理自動化過程中的絕大多數問題了,這個時候你對自動化測試的技術應該是有一定積累了。接下來就需要考慮自動化測試框架問題了。當腳本規模到了一定的程度,就會面臨一些問題,如:1) 如何有效的管理並調度腳本2) 如何實現腳本運行的無人值守,測試過程中能夠自動進行錯誤處理並進行日誌記錄3) 如何生成簡介明確的測試報告4) 如何能夠更加高效的維護測試腳本5) 實現框架代碼和業務代碼的分層、業務腳本和業務數據的分離這個階段主要體現的是測試人員的測試思想,是可以脫離工具獨立存在的過程。當然各個公司項目的實際情況不同,導致設計出來的思想不同,但總體上來說一般包括數據驅動和關鍵字驅動兩種模式。後者實現的技術難度大於前者,大多數公司目前都採用的數據驅動模式。這個階段不應局限於技術運用上,而需要從測試全局考慮,進行分層設計、模塊化實現,減少代碼之間的耦合。如果以上三個方面都能夠做的很好的話,那麼恭喜你,你已經可以獨立負責項目的自動化測試建立工作了,呵呵!總之,學習自動化測試需要在實際項目中進行,這樣提高的會比較快,項目中運用了很多種技術,自動化實施過程會碰見各種各樣的問題,是很好的學習機會,關鍵要善於總結、積累經驗,只要能夠把各個細節做好,那麼你一定能夠成為一名優秀的自動化測試工程師。
❸ TC和按鍵精靈哪個執行效率高
個人覺得TC執行速度要比按鍵塊,而且內存和Cpu佔用方面,TC消耗比較少,按鍵的話,寫個腳本的都知道,隨著腳本運行時間越久,內存和cpu都是暴漲的。
大家可以按代碼測試一下,純屬個人興趣,不對任何工具有貶低的意思
int time,time2
time=輔助.獲取系統毫秒()
int i
i=0
while(i<20000)
整型 x
整型 y
滑鼠.獲取坐標(x,y)
滑鼠.移動(x,y)
i=i+1
endwhile
time2=輔助.獲取系統毫秒()
help.messagebox(轉換.整型轉字元型(time2-time))
按鍵精靈代碼:
j = 0
s = Plugin.Sys.GetTime()
While j<20000
GetCursorPos x, y
MoveTo x, y
j=j+1
EndWhile
//當循環條件成立的時候,反復執行循環體
s2 = Plugin.Sys.GetTime()
Msgbox "您的腳本從啟動到結束時間:" & s2-s & "毫秒"
我是對兩個同樣的功能 讀取坐標和移動坐標, 都是執行20000次,下面有圖對比結果
對比的結果是:
TC的運行時間是 2420毫秒
按鍵的運行時間是 4630毫秒
❹ 【關於如何解決QTP後期運行速度】
目前項目中的QTP腳本運行速度,會隨著時間的增長而腳本的速度降低,特別是跑了7,8個小時後這種情況越是明顯。腳本主要偏向描述的使用,對象庫為輔。導致了其中的原因個人分析大概有一下幾點: 1,PC機本身的問題。有時候更糟糕的是提示虛擬內存不足(2G物理內存3G虛擬內存)。大家都有這樣的感覺,就算不跑QTP,PC機在自己運行一段時間後,操作響應速度會很明顯下降,這個和機器性能有很大關系,一台伺服器與一台PC機器跑一個晚上的腳本第2天會發現PC機的程序已經跑不動了,即使有做腳本錯誤恢復處理,包括重啟IE,設置標簽等方法再跑,但還是跑不動。 2,系統龐大,如果大概有2100個不同web頁面,當腳本跑不到一半時候速度也會明顯下降,系統的臨時文件,cookies等的增多,所導致的響應速度降低,會出現IE呈現白色page不無法操作的情況。 3,腳本在編寫過程,忽略對對象的釋放操作,這個或者是非程序員的一個通病吧,因為在小的程序或者腳本中,對象釋放與否看不出什麼效果,但小數怕長計,也會導致QTP本身所佔用的系統資源增多。 4,腳本編寫思想。腳本中過度偏向遞歸使用,深度越大,函數調用與遞歸增多,對象增多等,會導致QTP到後期時候速度會有所回落,有時也會讓QTP出現假死狀態,有可能是內存溢出的情況發生。 5,過分依賴錯誤處理與智能對象識別。或者很多人說,智能識別不推薦使用,但是,當一個腳本和滾雪球一樣,遞歸也多了,程序的可控性就降低,跟蹤難度增大,腳本的維護成本就增多,所以選擇維護與開啟智能識別時候,後者有更大的優勢。由於依靠了智能識別,有時候一些結果報告中會看到很多對象識別不到而懶得去找原因。積累多了問題也會慢慢浮現出來。 6,網頁訪問殘留,比如說你的表單提交後再回退時,表單里填寫的數據還在,這些就是殘留在內存里的數據,但一般來說殘留量是非常少的。 所以如何在QTP的運行過程中,及時的釋放系統資源有著很重大和深遠的意義。引用:原帖由lantianwei於 2008-9-11 14:38 發表寫的非常不錯,支持一下!好像沒提到解決辦法啊標題是討論,嘿嘿。目前解決的方法:1,重啟伺服器IIS,但是這個過程會讓測試停止。2,清理本機的IE文件3,利用外部程序實現間斷清理(我記得超級兔子有個可以做到內存清理的工具)1.為什麼要重啟IIS呢?想不明白重啟IIS和本機QTP執行腳本速度慢有什麼直接的聯系啊;2.清理本機的IE文件有啥用呢?本機的IE文件只不過佔用的磁碟空間,貌似也和QTP執行腳本速度沒有直接聯系吧;3.利用外部程序實現間斷清理:這個覺得的確會對提高運行速度有一定幫助,但問題是QTP這么嬌嫩的軟體,誰敢在它跑的時候頻繁清理內存?誰又能保證不出錯呢?呵呵引用:原帖由xiaoyaoke於 2008-9-11 17:35 發表1.為什麼要重啟IIS呢?想不明白重啟IIS和本機QTP執行腳本速度慢有什麼直接的聯系啊;2.清理本機的IE文件有啥用呢?本機的IE文件只不過佔用的磁碟空間,貌似也和QTP執行腳本速度沒有直接聯系吧;3.利用外部程序實 ... 1,同個IE做的2000多次的頁面跳轉,如果IE沒關閉,哪么IIS里的一些連接沒有斷開就資源沒釋放,導致了伺服器響應時間增長。這個或者是程序寫的不完善也有關系,應用程序很多資源沒有釋放導致。2,占磁碟控制項確實是,但也不大,也就哪么幾M,但同個IE經過2000次的頁面跳轉,到了後期頁面變白,我能想到的就只有這點了,或者這個會和第三點有關系。3,使用外部程序,這個對QTP是否有影響,還是要以後日子慢慢驗證。引用:原帖由假裝不在於 2008-9-12 10:13 發表1,同個IE做的2000多次的頁面跳轉,如果IE沒關閉,哪么IIS里的一些連接沒有斷開就資源沒釋放,導致了伺服器響應時間增長。這個或者是程序寫的不完善也有關系,應用程序很多資源沒有釋放導致。2,占磁碟控制項確實 ... 這方面,應該與你自己編寫的腳本有關吧,你可以把一個Test割成多個Test來做啊。腳本問題不大。早期運行速度相當的快,時間越長,腳本的速度越下降。在找原因了,現在個人基本確定2個問題,1,瀏覽器占內存問題,這個下午2點後就有結果。2,伺服器IIS問題。我只有一個TEST,理論上這個如果最快的速度跑完,也要10個小時。中午測試時候發現,腳本在開跑,IE占的內存是:41004,跑了2個小時後,內存占的是143728 使用內存整理工具無效。刷新頁面後讓內存減少到38147
❺ 測試腳本的工作
1.腳本語言的特點,通過下面tcl/tk與C++和java的比較就可見一斑。
2.C++,Tcl/Tk 和 Java 的性能比較高
3.C++
4.Tcl/Tk
5.Java
6.運行程序速度
7.快
8.與 C++ 可比
9.慢
10.調試難易程度
11.復雜 每次修改完代碼需重新編譯
12.簡單 修改完代碼可直接運行
13.比較簡單 修改完代碼需重新編譯成 ByteCode, 而且編譯速度很慢
14.程序代碼復雜程度
15.復雜
16.簡明
17.比較簡單
18.系統資源佔用情況
9.1200MB HD 32MB Memory
20.3MB HD 4MB Memory
21.20MB HD 4MB Memory
22.代碼可維護性
有一定難度,需要有面向對象程序設計的概念 腳本解釋器是腳本語言工作的核心,所有具體指令或是函數的執行都由它來完成,擴展項實現了與其它語言的介面,使腳本語言運行C/C++,java等函數成為可能;同時在用戶具體應用中可以定義命令和函數,應用更加靈活;作為解釋器它也提供了基本的內建指令或是函數,不同廠商、版本的解釋器提供的內建命令(函數)可能不同。
❻ 測試主板性能的軟體有哪些
WinBench 99測試的是系統中各個子系統的性能,測試是針對CPU、磁碟和圖形子系統等項目的。CPUmark 99反映了處理器、內部高速緩存的運行速度,而FPU WinMark則反映了處理器子系統的浮點運算能力。通過CPUmark 99和FPU WinMark的得分,可以衡量所測系統能否較好地發揮處理器的能力。商用Disk WinMark 99反映的是磁碟子系統(包括硬碟、硬碟控制器、硬碟驅動程序和硬碟高速緩存)的性能。它由不同應用程序中的磁碟操作組成測試腳本。該測試項目所反映的磁碟性能包括以下幾個方面:Disk WinMark 99、尋道時間、傳輸速率和CPU佔用率。高端Disk WinMark 99測試以高端Winstone 99套件中所使用的磁碟讀寫操作為依據,反映的是磁碟子系統的性能。測試的結果以千位元組/秒錶示。商用Graphics WinMark 99通過執行資料庫、瀏覽器和任務切換等一系列應用程序,來考察圖形子系統(包括晶元組、顯存、驅動程序,以及系統內存和匯流排結構)的性能。它的得分以商用Winstone 99測試中所使用的大量GDI操作為基礎,並為該得分進行標准化處理,以便能夠反映用於商用Winstone 99測試的基本系統特性。高端Graphics WinMark 99以套件中所使用GDI操作記錄為依據,反映的是圖形子系統的性能。高端Winstone 99所調用的應用軟體包括:Adobe Photoshop 4.01、Adobe Premiere 4.2、AVS/Express 3.4、Microsoft FrontPage 98、Microsoft Visual C++ 5.0、MicroStation SE和Sound Forge 4.0。 Winstone 99的測試項目包括了商用Winstone 99和高端Winstone 99,我們主要進行了商用Winstone 99的測試。Winstone 99反映了系統在實際商業設置下的整機性能。該套件對系統運行應用程序腳本所需要的時間進行測定,並產生一個綜合值,然後再轉換為一個相對得分。商用Winstone 99中使用了當今市場上最流行的辦公軟體,包括Corel WordPerfect 8、Lotus SmartSuite 97和Microsoft Office 97。Content Creation Winstone 2000考察的是系統在進行網頁製作和其他多媒體應用時的整體性能。該測試套件包含6種應用程序腳本:Adobe Photoshop 5.0、Adobe Premiers 5.1、Macromedia Director 7.0、Macromedia Dream Weaver 2.0、Netscape Navigator 4.6和Sonic Foundry Sound Forge 4.5。在測試中Content Creation Winstone 2000會同時打開多個應用程序,並不斷地在各個程序之間切換。3DMark2000是針對系統運行游戲能力的測試,包含了游戲場景和3D加速能力的測試。Quake 3 Arena是一款典型的游戲測試軟體,我們分別用它們來衡量系統運行OpenGL游戲的性能。在Quake 3 Arena下,我們測試了Fastest、Fast、Normal和High Quality模式下各主板的性能。通過上面這些軟體的測試,可以看出不同的測試軟體測試時的側重點是不一樣的,但是如果你測試的時候已經將上面的測試軟體全部運行了的話,相信你已經可以正確地了解你的主板的性能了!</FONT>
❼ 如何用loadrunner長時間運行腳本
通過軟體測試工具LoadRunner 運行時設置,可以模擬各種真實用戶活動和行為。例如,您可以模擬一個對伺服器輸出立即做出響應的用戶,也可以模擬一個先停下來思考,再做出響應的用戶。另外還可以配置運行時設置來指定 Vuser 應該重復一系列操作的次數和頻率。 有一般運行時設置和專門針對某些 Vuser 類型的設置。例如,對於 Web 模擬,可以指示 Vuser 在 Netscape 而不是 Internet Explorer 中回放腳本。 1.打開運行時設置對話框。 確保「任務」窗格出現(如果未出現,請單擊任務按鈕)。單擊任務窗格中的驗證回放。在說明窗格內的標題運行時設置下單擊打開運行時設置超鏈接。 也可以按 F4 鍵或單擊工具欄中的運行時設置按鈕。這時將打開「運行時設置」對話框。 2.設置「運行邏輯」設置。 在左窗格中選擇運行邏輯節點。 在此節點中設置迭代次數或連續重復活動的次數。將迭代次數設置為 2。 3.配置步設置。 在左窗格中選擇步節點。 此節點用於控制迭代時間間隔。可以指定一個隨機時間。這樣可以准確模擬用戶在操作之間等待的實際時間,但使用隨機時間間隔時,很難看到真實用戶在重復之間恰好等待 60 秒的情況。 選擇第三個單選按鈕並選擇下列設置:時間隨機,間隔 60,000 到 90,000 秒。 4.配置日誌設置。 在左窗格中選擇日誌節點。 日誌設置指出要在運行測試期間記錄的信息量。開發期間,您可以選擇啟用日誌記錄來調試腳本,但在確認腳本運行正常後,只能用於記錄錯誤或者禁用日誌功能。 選擇擴展日誌並啟用參數替換。後面的課程將對此選項展開進一步討論。 5.查看「思考時間」設置。 在左窗格中選擇思考時間節點。 請勿進行任何更改。您可以在 Controller 中設置思考時間。注意,在 VuGen 中運行腳本時速度很快,因為它不包含思考時間。 6.單擊確定關閉「運行時設置」對話框。
❽ selenium2.0下的WebDrivert在IE上通過xpath定位元素時如何提高測試腳本的速度
首先,selenium webdriver識別元素是個大難題,甚至有時候為了元素能夠正確識別,甚至會延長等待時間,腳本執行的正確性比速度重要些。
然後再說IE Driver,如果用IE執行測試,不建議用xpath selecter定位,因為IE對xpath的支持不是很好,建議盡可能用id、name等定位方法,或者使用Css selecter。
當然,如果腳本很簡單,純追求速度的話,可以使用HtmlUnitDriver,不用打開瀏覽器運行測試,速度很快,但是限制也比較多,還要你自己實踐研究了。
❾ 如何提高自動化測試的執行效率 selenium java
1. 環境准備
1.1 Java環境
安裝, 配置jdk
1.2 Java IDE
因為Selenium支持Java/C#/Ruby/Python/Perl等,這里選擇用Java。到Eclipse官方網站下載Eclipse, 解壓
1.3 Selenium
到Selenium官方網站http://seleniumhq.org/download/下載Selenium IDE,Selenium Server, Selenium Client Driver
以上三者之間的關系是:
Selenium IDE可以錄制腳本,執行腳本,修改腳本,將錄制的腳本導出成其他語言(比如Java)---本篇不討論
Selenium Server是和Selenium Client結合使用的,Server用來啟動瀏覽器,接受Client端的請求,執行test;
Client端則是向Server端發送請求。
2. 在Eclipse中編輯並運行test
2.1 新建一個Java project: File-New-Java Project
2.2 在上一步建好的項目名稱上點滑鼠右鍵, 點擊Build Path-Add External Archives...,將下載的selenium-java-2.21.0.jar(client)和selenium-server-standalone- 2.21.0.jar(server)加進來
2.3 啟動selenium server.進入cmd,運行 "java -jar selenium-server-standalone-2.21.0.jar" --保證能找到改jar包。信息如下:
[java] view plain
信息: Launching a standalone server
22:16:21.484 INFO - Java: Sun Microsystems Inc. 17.1-b03
22:16:21.500 INFO - OS: Windows XP 5.1 x86
22:16:21.515 INFO - v2.21.0, with Core v2.21.0. Built from revision 16552
22:16:21.859 INFO - RemoteWebDriver instances should connect to: http://127.0.0.
1:4444/wd/hub
22:16:21.875 INFO - Version Jetty/5.1.x
22:16:21.875 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
/driver]
22:16:21.875 INFO - Started HttpContext[/selenium-server,/selenium-server]
22:16:21.875 INFO - Started HttpContext[/,/]
22:16:22.062 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@5d173
22:16:22.062 INFO - Started HttpContext[/wd,/wd]
22:16:22.093 INFO - Started SocketListener on 0.0.0.0:4444
22:16:22.093 INFO - Started org.openqa.jetty.jetty.Server@32fb4f
[java] view plain
信息: Launching a standalone server
22:16:21.484 INFO - Java: Sun Microsystems Inc. 17.1-b03
22:16:21.500 INFO - OS: Windows XP 5.1 x86
22:16:21.515 INFO - v2.21.0, with Core v2.21.0. Built from revision 16552
22:16:21.859 INFO - RemoteWebDriver instances should connect to: http://127.0.0.
1:4444/wd/hub
22:16:21.875 INFO - Version Jetty/5.1.x
22:16:21.875 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
/driver]
22:16:21.875 INFO - Started HttpContext[/selenium-server,/selenium-server]
22:16:21.875 INFO - Started HttpContext[/,/]
22:16:22.062 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@5d173
22:16:22.062 INFO - Started HttpContext[/wd,/wd]
22:16:22.093 INFO - Started SocketListener on 0.0.0.0:4444
22:16:22.093 INFO - Started org.openqa.jetty.jetty.Server@32fb4f
2.4 代碼測試
[java] view plainprint?
import com.thoughtworks.selenium.DefaultSelenium;
public class SeleniumDemo01
{
public static void main(String[] args)
{
String host = "localhost";
int port = 4444;
String url = "http://www..com/";
String browserType = "*firefox";
String keyWordsLocator = "document.getElementById('kw')";
String search = "document.getElementById('su')";
DefaultSelenium selenium = new DefaultSelenium(host,port,browserType,url);
selenium.start();
selenium.open(url);
selenium.type(keyWordsLocator,"java selenium");
selenium.click(search);
selenium.waitForPageToLoad("50000");
selenium.stop();
}
}
運行結果:
1.firefox瀏覽器期待
2.打開網路主頁
3.在搜索框中鍵入了"java selenium"
4.點擊"網路一下"按鈕
5.等等頁面載入50s
6.關閉瀏覽器
❿ selenium webdriver 執行測試常見問題
selenium中如何保證操作元素的成功率?
如何提高selenium腳本的執行速度?
用例在運行過程中經常會出現不穩定的情況,也就是說這次可以通過,下次就沒辦法通過了,如何去提升用例的穩定性?
你的自動化用例的執行策略是什麼?