自動化測試框架不難,難的是細節(總結片)

2022-03-15 13:52:50 字數 2582 閱讀 6433

一、自動化測試

1、自動化測試指令碼大致可劃分為:

|、線性指令碼:通過錄製直接產生的線性可執行的指令碼

|、結構化指令碼:具有順序、迴圈、分支等結構的指令碼

|、可共享指令碼:可以被多個用例使用,被其他指令碼呼叫的指令碼(即模組化指令碼)

|、資料驅動指令碼:測試資料跟業務流程控制分離的指令碼,通過讀入資料檔案驅動流程進行的指令碼

|、混合型指令碼:以上任意兩種及以上

|、敏捷自動化測試指令碼/框架:這一塊等我有了成功經驗再補充=。=

2、自動化測試執行:

(1)無人值守的測試:環境搭建,部署與配置;自動化測試用例與測試指令碼相互繫結;自動化測試用例執行順序排列與組合

(2)異常處理與場景恢復

3、自動化測試的難點(介面的變動性和指令碼的維護性):

①公共自動化用例的維護

②公共ui方法維護

③穩定性和效率提公升:

|、異常處理封裝

|、分層測試

|、建立共享物件庫/測試庫

|、第三方外掛程式引入

|、gui業務流程解耦拆分、盡量避免太長的端到端ui測試(例如web到移動端的業務流測試)

|、引入mock/介面測試代替部分環節的測試,從而銜接到要執行自動化測試,提高自動化測試穩定和效率

|、web處理一些不可識別第三方控制項。盡可能採用js來處理,更顯示穩定和高效

|、uiautomator監聽處理android系統不確定的系統級別彈窗

④自動化測試實施專案選取策略:

|、重複性高且有必要的測試流程

|、專案周期長,系統版本不斷,並且需求不會頻繁變更專案

⑤自動化測試框架包括:

|、測試用例分布式執行:seleniumgrid

|、指令碼模組化:分層

|、資料驅動:mysql儲存資料,testng的資料提供者

|、日誌分析:本地log4用例執行資訊

|、錯誤截圖:監聽截圖

|、報表**:測試資料儲存mysql資料庫等

|、共享物件庫/公共函式庫:ui元素資訊管理/ui元素操作方法維護

|、環境配置:chromedriver/adb/iedrver/firefoxdriver

|、用例統一設計模式:基類(測試用例beforeclass/afterclass),多用例集中於乙個需求/模組裡

|、異常處理:testnglistenter監聽,uiwater處理系統級彈窗

|、介面和mock結合介入

|、第三方工具引入:adb/shell/redis

|、用例執行方式(分布式測試seleniumgrid、device多併發測試)

自動化廣義總結:

1、自動化測試工作不複雜但也不簡單,其需要自動化測試人員既懂業務也懂技術。

2、對自動化測試看法過低以及對自動化測試要求太高,都是因為其盲目性,乙個懂產品技術和自動化測試技術的工程師,是很快能定位其自動化測試需求和開展的方法。

3、每個公司有每個公司自己的特點,調研和需求分析很重要。

4、自動化測試框架不難,難的是細節。

5、自動化平台很重要,沒有乙個平台,不方便推廣,其自動化測試只能流於形式。

補充:自動化測試框架找物件:

通常每種框架都應該支援動態跟靜態兩種找物件的方式,靜態找就涉及到物件庫,包括物件庫的讀、寫、合併、維護等一系列問題,這些都可以交給框架做;

關於動態查詢,我舉個rft的例子,你們意會一下:

先測試工具會提供動態查詢的介面或者方法,rft裡面提供的是find方法,呼叫這些介面或者方法即可實現動態查詢。

動態查詢的好處是可以採用「相對路徑」來定位物件,而相對的,物件庫則採用的是「絕對路徑」。如果一旦物件的一些屬性改變,靜態查詢的方式可能會找不到物件,當然了,現在的自動化測試越來越智慧型,已經可以做到選取匹配度最高的物件返回。動態查詢還有個好處是它找到的物件是「**」,你可以進一步在框架裡去對這些物件進行處理,而物件庫里的每乙個物件都是乙個獨立的物件,你可以使用它們,但是很難改變它們。

通常現在的自動化測試框架都是採用動靜結合的方式,即兩種找物件的方式都會兼顧,因為一般來說,靜態查詢的方式速度更快,效率更高。但是靜態查詢帶來的問題也是顯著的,主要集中在物件的維護管理以及合併上,如何共享物件,避免重複加物件等。此時,規範物件命名就顯得很重要了。以往我做的自動化測試專案中,這些都是坑。

什麼是自動化測試框架

什麼是自動化測試框架 在了解什麼是自動化測試框架之前,先了解一下什麼叫框架?框架是整個或部分系統的可重用設計,表現為一組抽象構件及構件例項間互動的方法 另一種定義認為,框架是可被應用開發者定製的應用骨架。前者是從應用方面,而後者是從目的方面給出的定義。從框架的定義可以了解,框架可以是被重用的基礎平台...

自動化測試框架

可設計為五層 一 測試用例層 主要存放用例的指令碼,分為主指令碼和子指令碼。主指令碼用來控制各個子指令碼,實現指令碼間的資料傳遞。子指令碼是實現各個功能點的指令碼,同時也會提取出一些共用的方法,一般放在提取層中。主指令碼中可使用資料驅動來控制指令碼實現各種場景的流程,如silktest的test s...

自動化測試框架 自動化測試呼喚開發

週末參加了testage 測試時代 組織的乙個專家討論會。主要討論測試自動化。說是專家討論會,我參加實在是慚愧,我對測試的理解實在是太淺薄了。只是因為在部落格上發表了一些謬論才收到邀請。想著可以幫助公司去接受一些新的思想,而自己也可以結識一些朋友,便去了。對於測試時代的會議組織,我以為定位和思路還是...