① QTP 腳本錄制完之後運行,哪裡設置可以增加腳本的運行次數就是自動化的拚命運行
可以寫個for循環來解決
Dim n
n = 4 '如要運行4次
for i = 1 to n
xxxxxxxxxxxxxxxxxxxxxx '你要循環的代碼
next
② 如何提高自動化測試的執行效率 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.關閉瀏覽器
③ 如何提高自動化測試腳本的健壯性
多考慮異常情況,腳本前後呼應,回到初始界面
④ 怎麼加強自動化測試腳本的穩定性
IBM® Rational® Functional Tester 是用於功能性和回歸線測試的高級測試自動化工具,它可以在一個基於圖形化用戶界面(GUI)的程序上錄制測試場景,並回放測試場景以實現測試自動化。在錄制期間,您可以插入確認點,這些確認點可以從您正在測試的程序中獲取特定的數據或者屬性。然後在回放期間,這些確認點用來將錄制的信息,與現場信息進行比較以確保穩定性。工具會搜索映射的對象,並在測試期間對其執行一系列的操作。 但是,由於對象不存在或者不適當的狀態,Playback 特性通常會遇到一些失敗情況,在回放期間,如果 GUI 響應時間或者 GUI 到達預期狀態所花費的時間,要遠遠高於錄制時間,那麼工具所執行的操作就不能在適當的位置找到適當的對象或者它們的狀態或屬性了,這樣腳本回放就會失敗。通過按照本文中所介紹的步驟進行操作,您將會學到怎樣利用 Rational Functional Tester 程序編程界面(API),來改進腳本以實現基於 Eclipse 程序地可靠測試自動化。 前提條件 如果您擁有下述的知識,那麼您就能從本文中學到更多的信息: 熟悉 Eclipse 環境以及為測試下程序配置 Rational Functional Tester 熟悉錄制和回放測試腳本,並理解測試腳本的內容 場景 注意: 對於這些範例,IBM® Rational® Software Architect(一種基於 Eclipse 的程序)用作測試下的程序。 本文將會涉及到測試自動化中以下的失敗場景,並解釋在 Eclipse 工作區中遇到它們時的方案。 場景 1:不匹配的 GUI 響應時間 在回放期間,如果 GUI 響應時間要比錄制期間的時間長,那麼自動化工具將不會找到需要執行操作的對象,而測試腳本也將會失敗。 場景 2:未預期的活動窗口 如果在自動化測試的回放期間,出現了一個未預期的活動窗口,那麼在錄制期間該窗口將不會出現,自動化腳本將會失敗。自動化會因為未處理的窗口而停止。 場景 3:不適當的對象狀態 當您在創建確認點時,如果對象沒有處於它所預期的狀態,那麼它會獲取所有需要的具體內容。同樣,在回放期間,如果並不能確保相同的對象狀態,那麼確認點將會失敗。 圖 1 中的圖表描述了處理這些場景的基本方法。 圖 1. 方案的基本方法 方案方法基本上可以改進使用 Rational Functional Tester API 的腳本。作出的選擇能夠處理描述的場景,該場景可能發生在測試自動化場景之中。 創建 Eclipse:准備 Rational Functional Tester 以測試基於 Eclipse 的程序 為了對基於 Eclipse 的程序使用 Rational Functional Tester 自動化測試特性,您必須首先按照下面的方法來創建測試的環境: 點擊 Configure > Enable environment for testing 以打開 Enable Environments 窗口(參見圖 2)。 選擇 Eclipse 實例,並點擊 Enable。如果 Eclipse 環境尚沒有列出,那您您可以點擊 Search。 點擊 Finish 以保存您所做的修改。 圖 2. 激活環境窗口 修改代碼:根據用例來更改自動生成的代碼 在這一步中,會獲得對自動生成代碼所做的更改,以處理前面所描述的一個或者多個失敗。每一個失敗場景的解決方案,都與下述描述的子部分不同。 場景 1:不匹配的 GUI 響應時間 對於該場景有兩個可能的解決方案: 方案 1a. 檢查進度條的狀態 當您在基於 Eclipse 的程序中創建一個項目時,項目構建和確認會在項目向導完成之後才啟動,其中基於 Eclipse 的程序例如 Rational Software Architect 或者 IBM® Rational® Application Developer。有時所花費的時間要比預期的長,腳本回放會失敗,因為項目構建沒有完成,但是腳本會試著進一步地操作。為了避免這種失敗情況的發生,您可以在 Eclipse 工作區右下角查看進度條的狀態 修改代碼:根據用例來更改自動生成的代碼 在這一步中,會獲得對自動生成代碼所做的更改,以處理前面所描述的一個或者多個失敗。每一個失敗場景的解決方案,都與下述描述的子部分不同。 場景 1:不匹配的 GUI 響應時間 對於該場景有兩個可能的解決方案: 方案 1a. 檢查進度條的狀態 當您在基於 Eclipse 的程序中創建一個項目時,項目構建和確認會在項目向導完成之後才啟動,其中基於 Eclipse 的程序例如 Rational Software Architect 或者 IBM® Rational® Application Developer。有時所花費的時間要比預期的長,腳本回放會失敗,因為項目構建沒有完成,但是腳本會試著進一步地操作。為了避免這種失敗情況的發生,您可以在 Eclipse 工作區右下角查看進度條的狀態
⑤ 如何提高知識圖譜自動化構建的准確性
構建流程的自動化依賴於簡單的重復性任務。第一步是編寫構建腳本。構建腳本可以是任何形式:批處理文件/shell腳本、基於xml的任務集合、自己寫的可配置程序、或是他們中的任意組合。在.NET世界中,MSBuild是由微軟提供的命令行功能,它使用基於xml的項目文件構建Visual Studio解決方案。NAnt是另一個常見.NET構建腳本工具,類似於流行的Java工具Ant。其他的包含開源社區中常見的Make,Ruby中的Rake等。
無論你選擇如何編寫構建腳本,你應該尋找適合你的方法並堅持下去。例如,你一旦找到構建web程序項目的最佳方式,為新的web應用程序創建構建腳本應該就很簡單了,只要從其他項目中拷貝腳本、修改部分名稱和路徑即可。
⑥ 怎樣才能學會自動化測試,並編寫自動化測試腳本
1.需要明確用什麼自動化工具。比如QTP 那就要學VB腳本語言。
2.需要學習基礎的編程基礎。最起碼要學會一門語言,有一定的編程思想。
⑦ 如何提高 GUI 測試的穩定性
GUI自動化測試穩定性,最典型的表現形式就是,同樣的測試用例在同樣的環境上,時而測試通過,時而測試失敗。
造成GUI測試不穩定的五種因素:
非預計的彈出對話框
頁面控制項屬性的細微變化
被測系統的A/B測試
隨記的頁面延遲造成控制項識別失敗
測試數據問題
對於這幾種因素的解決思路:
非預計的彈出對話框
非預計的彈出對話框一般包含兩種情況:
GUi自動化測試用例執行過程中,操作系統彈出的飛魚級對話框。
被測軟體本身也有可能在非預期的時間彈出預計的對話框。
解決方法:
當自動化腳本發現控制項無法正常定位,或者無法操作時,GUI自動化框架自動進入「異常場景恢復模式」。在「異常場景恢復模式」下,GUI自動化框架依次檢查各種可能出現的對話框,一旦確認了對話框的類型,立即執行定義的操作,比如單機「確認」按鈕關閉這個對話框,接著重試剛才失敗的步驟。
這種方式只能處理已知可能出現的對話框。而對於新類型的對話框,只能通過自動化的方式嘗試點擊上面的按鈕進行處理。每當發現一種潛在會彈出的對話框,我們就把它的詳細信息(包括對象定位信息等)更行到「異常場景恢復」庫中,下次再遇到相同類型的對話框時,系統就可以自動關閉了。
頁面控制項屬性的細微變化
解決方法:採用「組合屬性」定位控制項會更精準,而且成功率會更高,如果能在此基礎上加入「模糊匹配」技術,可能以進一步提高控制項的識別率。
「模糊匹配」是指,通過特定的相似度演算法,控制項屬性發生細微變化是,這個控制項依舊可以被准確定位。(通常需要二次開發)
北柵系統的A/B測試
A/B測試,是互聯網產品常用的一種測試方法。它為Web和App的界面或流程提供兩個不同的版本,然後讓用戶隨記訪問其中一個版本,並收集兩個版本的用戶體驗數據和業務數據,最後分析出最好的版本用於正式發布。
A/B測試通常會發布到實際生產環境,所以就會造成生產環境中GUI自動化測試不穩定。
解決方法:在測試腳本內部對不同的被測版本做分支處理,腳本需要能夠區分A和B兩個的不同版本,並作出相應的處理。
隨記的頁面延遲造成控制項識別失敗
解決方法:加入重試(retry)機制,重試機制是指,當某一步GUI操作失敗時,框架會自動發起重試,重試可以是步驟級別的,也可以是頁面級別的,甚至是業務流程級別的。需要自己二次開發來實現。
⑧ 如何利用自動化測試提高軟體測試效率
測試自動化實施前期 需要考慮很多因素,人力、物力、財力都是需要認真考慮與規劃的。自動化測試在整個測試周期中何時開展,哪些測試工作可以由自動化測
試替代,這些都需要在開始部署自動化測試前,認真的思考。影響自動化測試效率的因素,不單單是大家看到可量化的測試工作,還有許多無形的因素影響著自動化
測試,如測試組織的部署等。因此,在真正實施前一定要認真規劃和考慮自動化測試實施方案。
自動化測試的實施過程,完全不同於手動測試。自動化測試用例與手工測試用例也大不相同。自動化測試實施過程中,需要不斷的開發與維護腳本,因此對測試人員能力有很高的要求。
⑨ 如何提高python自動化
隨著移動互聯網的普及,伺服器運維所面臨的挑戰也隨之越來越大。當規模增長到一定程度,手動管理方式已經無法應對,自動化運維成為解決問題的銀彈。Python憑借其靈活性,在自動化運維方面已經被廣泛使用,能夠大大提高運維效率,伺服器集群的規模越大,優勢越明顯。現在不論是Linux運維工程師還是Unix運維工程師都需要掌握Python,以提高運維效率。
第一個階段:初級,掌握Python的語法和一些常用庫的使用
掌握一門語言最好的方法就是用它,所以我覺得邊學語法邊刷Leetcode是掌握Python最快的方式之一。