AutoRunner 功能自動化測試專案實訓之自動化測試原理(一)

small but strong發表於2020-12-04

前言

隨著自動化測試的飛速發展,在日常的學習生活中我們經常會聽到自動化測試相關的話題,今天起我們就開始來了解除了 QTP以外的自動化測試工具AutoRunner,我在這個系列文章裡會以實際案例的形式給大家介紹工具的操作和實際的測試過程希望對大家有所幫助。

一、自動化測試是什麼?

自動化測試模擬人手工對計算機和計算機上軟體的操作過程和操作行為,採用類似於編譯系統對程式程式碼進行檢查。自動化測試的原理:直接對程式碼進行靜態和動態分析、測試過程的捕獲和回放、測試指令碼技術和虛擬使用者技術。所以自動化測試是一個廣義的名詞,我們在接下來的文章裡給大家分享的是功能自動化測.

二、功能自動化測試原理

1.錄製回放

錄製回放是黑盒測試的自動化方法,通過捕獲使用者每一步操作,如使用者介面的畫素座標或程式顯示物件(視窗、按鈕、滾動條等)的位置,以及相應操作、狀態變化或屬性變化,用一種指令碼語言記錄描述,模擬使用者操作。回放時,將指令碼語言轉換為螢幕操作,比較被測系統的輸出記錄與預先給定的標準結果。目前的自動化負載測試解決方案几乎都是採用“錄製回放”的技術。所謂“錄製回放”技術,就是先由手工完成一遍測試流程,由自動化測試工具AutoRunner記錄下這個流程期間客戶端和伺服器端之間的通訊資訊,這些資訊通常是一些步驟和資料,並形成特定的指令碼程式,並執行該指令碼,檢測系統的功能是否正常。

2.指令碼技術

(1)指令碼介紹
指令碼是一組測試工具執行的指令集合,也是計算機程式的另一種表現形式。指令碼語言至少具有如下功能:
1)支援多種常用的變數和資料型別
2)支援各種條件邏輯、迴圈結構。
3)支援函式的建立和呼叫
指令碼有兩種,一種是手動編寫或嵌入原始碼;另一種是通過測試工具提供的錄製功能,執行程式自動錄製生成指令碼。由於錄製生成指令碼簡單且智慧化,容易操作,但僅靠自動錄製指令碼,無法滿足使用者的複雜要求,需要手工新增函式進行引數設定,增強指令碼的實用性。
手工編寫指令碼具有如下優點:
1)可讀性好,流程清晰,檢查點擷取含義明確。
業務級的程式碼比協議級程式碼容易理解,也更容易維護,而錄製生成的程式碼大多沒有維護的價值
2)手寫指令碼比錄製指令碼更真實地模擬應用。
錄製指令碼截獲了網路包,生成協議級的程式碼,卻往往忽略客戶端的處理邏輯,不能真實模擬應用程式的執行。
3)手寫指令碼比錄製指令碼更能提高測試人員的技術水平
測試工具提供如Java、VB、C等高階程式設計語言的指令碼,允許使用者根據不同測試要求定義開發各種語言型別的測試指令碼。
總之,使用哪種方式生成指令碼,應以指令碼模擬程式的真實有效為準。例如,有些程式只需要執行迭代多次操作,沒有特殊要求,選擇自動生成的指令碼就可以。但有些程式需要引數設定,則應使用手工指令碼
(2)指令碼分類
指令碼技術分為以下幾種型別
1)線性指令碼。錄製手工執行的測試用例得到的線性指令碼,包含使用者鍵盤和滑鼠輸入,檢查某個視窗是否彈出等操作線性指令碼具有如下優點:不需要深入的工作或計劃,對實際執行操作可以審計跟蹤。線性指令碼適用於演示、培訓或執行較少且環境變化小的測試、資料轉換的操作功能。但是,線性指令碼具有以下缺點:過程較煩瑣,過多依賴於每次捕獲內容,測試輸入和比較是“捆綁在指令碼中,不能共享或重用指令碼,容易受軟體變化的影響。另外,線性指令碼修改代價大,維護成本高,容易受意外事件影響,導致整個測試失敗。
2)結構化指令碼。結構化指令碼類似於結構化程式設計,包含控制指令碼執行指令,具有順序、
迴圈和分支等結構。結構化指令碼的優點是健壯性好,通過迴圈和呼叫減少工作量:但結構化指令碼較複雜,而且測試資料仍然與指令碼“捆綁”在一起。
3)共享指令碼。共享指令碼側重描述指令碼中共享的特性,指令碼可以被多個測試用例使用一個指令碼可以被另一個指令碼呼叫。當重複任務發生變化時,只需修改一個指令碼,便可達到指令碼共享的目的
共享指令碼具有如下優點:
以較少的開銷實現類似的測試,維護共享指令碼的開銷低於線性指令碼。但是,共享指令碼需要跟蹤更多的指令碼,給配置管理帶來一定困難,並且對於每個測試用例仍然需要特定的測試指令碼。
4)資料驅動指令碼。資料驅動指令碼將測試輸入到獨立的資料檔案(資料庫)中,而不是繫結在指令碼中。執行時是從資料檔案中讀資料,使得同一個指令碼執行不同的測試,只需對資料進行修改,不必修改執行指令碼。通過一個測試指令碼指定不同的測試資料檔案,實現較多的測試用例,將資料檔案單獨列出,選擇合適的資料格式和形式,達到簡化資料、減少出錯的目的資料驅動指令碼具有如下優點:快速增加類似的測試用例,新增加的測試也不必掌握工具指令碼技術,對以後類似的測試無需額外的維護,有利於測試指令碼和輸入資料分離,減少程式設計和維護的工作量,有利於測試用例擴充和完善。但是,資料驅動指令碼初始建立開銷較大、需要專業人員支援。
5)關鍵字驅動指令碼。關鍵字驅動作為比較複雜的資料驅動技術的邏輯擴充套件,是將資料檔案變成測試用例的描述,用一系列關鍵字指定要執行的任務。關鍵字驅動技術假設測試者具有被測系統知識和技術,不必告之如何進行詳細動作,以及測試用例如何執行,只說明測試用例即可。關鍵字驅動指令碼多使用說明性方法和描述性方法。
6)虛擬使用者技術。虛擬使用者技術通過模擬真實使用者行為對被測程式施加負載,測量被測程式的效能指標值,如事務的響應時間、伺服器吞吐量等。虛擬使用者技術以真實使用者的“商務處理”(使用者為完成一個商業業務而執行的一系列操作)作為負載的基本組成單位,用“虛擬使用者”(模擬使用者行為的測試指令碼)模擬真實使用者負載需求(例如併發虛擬使用者數、處理的執行頻率等)通過人工收集和分析系統使用資訊來獲得,負載測試工具模擬成千上萬個虛擬使用者同時訪問被測程式,來自不同IP地址、不同測覽器型別以及不同網路連線方式的請求,並實時監視系統效能,幫助測試人員分析測試結果。虛擬使用者技術具有成熟測試工具支援,但確定負載的資訊要依靠人工收集,準確性不高。

總結

以上就是今天要講的內容,本文僅僅簡單介紹了自動化測試的原理,包括錄製回放功能和指令碼技術的介紹。

相關文章