輕量級自動化測試框架解析

2021-08-26 16:04:03 字數 3309 閱讀 7124

輕量級自動化測試框架解析

2023年06月22日

因為工作的關係,轉而對qtp自動化測試進行一些調研。

在此過程中,得到乙份流傳甚廣的輕量級自動化測試框架(qtp),花了乙個禮拜時間斷斷續續看一下,受益匪淺。

因為同樣理由得到這份自動化測試框架的同仁應該也有不少,節省大家時間,也避免自己以後回過頭來看又一頭霧水,大概做一下記錄吧。

此輕量級自動化測試框架的特點主要有以下幾點

1.使用vbs的function代替qtp指令碼中的action。直接減少qtp指令碼的數量

2.使用單一qtp指令碼入口,冗餘檔案很少

3.所有用例需要用到的測試資料都儲存在乙個或多個excel中,方便更改維護

4.每乙個單獨的業務流程即是乙個class,方便指令碼的維護和公升級

5.因為相關的測試用例都使用function代替,所以這個框架在一定程度上是通用的。

相關指令碼可以自行在網上搜尋"輕量級自動化框架"

指令碼結構

指令碼主要使用數個類進行層級架構,從規格來看,每個類都包括2個方法:

1.init*方法:讀取指定的excel檔案,從其中提取合乎規格的資料,生成乙個陣列物件

2.start*方法:生成乙個陣列物件,使其等於init方法中生成的陣列物件,再建立乙個下級類的物件,分別以得到的陣列物件中的各個項為引數呼叫下級類中的start方法

以testproject類舉例來說:inittestproject方法讀取指定的excel檔案,該檔案格式如下

則inittestproject生成了乙個陣列物件,陣列物件的格式為(大意)

然後,start方法生成乙個陣列物件,並使其與inittestproject生成的物件相等。然後再生成下級類tesset的物件,反覆呼叫其start*方法,每次都將陣列中的一行以引數傳遞。

為方便理解,再全面解析一下:

testsets檔案:該檔案儲存各個測試用例的名稱及其所在excel檔名,以及對應測試用例所在的sheet名

(圖1)

189test.xls檔案:該檔案儲存指定測試用例及其測試資料,結合上圖,即第3行的測試用例

另外該檔案中的sheet=logindata中儲存了對應的測試用例

(圖2)

(圖3)

結合指令碼的具體使用,在執行過程中是如下情況

第一步:建立testproject類物件,執行starttestproject方法,內部過程為

(1)利用inittestproject方法根據圖1生成陣列物件,內容為

------------------------------

189test 189test.xls 189test

189test_2 189test_2.xls 189test_2

------------------------------

(2)建立tesset類的物件,將建立的陣列物件的值依次傳入,以呼叫starttestset方法

在第一次迴圈中,即是以189test/189test.xls/189test傳入呼叫starttestset方法

第二步:執行starttestset方法。傳入資料為189test/189test.xls/189test,此資料指定了目標用例的路徑和資料路徑,內部過程為:

(1)用inittestset方法根據圖2生成陣列物件,內容為 ------------------------------ 登入189 5 6 ------------------------------ 此次的陣列物件似乎在excel中無法看到,但實際上,它是指示了乙個業務流程的範圍。上行的意思為:登入189業務,具體的用例在第5行開始,第6行結束

(2)建立testcase類的物件,將建立的陣列依次傳入,以呼叫starttestcase方法

第三步:執行starttestcase方法,傳入資料為登入189/5/6,此資料定義了用例的具體行數。內部過程為:

(1)用starttestcase方法根據圖2生成陣列物件,內容為 ------------------------------ maillogin login logindata demo login sheet ------------------------------ (2)建立testtask類的物件,將建立的陣列依次傳入,以呼叫starttesttask方法

在第一次迴圈中,即是以maillogin/login/logindata傳入呼叫starttesttask方法

第四步:執行starttesttask方法,傳入資料為maillogin/login/logindata,此資料定義了用例對應的指令碼檔名稱,方法名稱,測試資料所在sheet。具體來說各個資料

maillogin:測試用例的具體vbs指令碼名稱,該vbs檔案下含有乙個同名類

login:用例方法,該值表示在maillogin.vbs檔案下有乙個login方法

logindata:資料所在sheet 該值表示測試資料存在於sheet:logindata(圖3)中

第五步:建立第四部所指定用例的物件,並將指定資料檔案的生成乙個陣列,再依次將至

因為用例指定檔案為maillogin.vbs檔案,因此建立了同名maillogin類的物件

執行方法login,該方法為登入189郵箱,執行的次數為logindata的行數,即第一次執行時,以kongxm/121212為引數執行login方法

--------

作者的框架只是提供了乙個思路,從結構和內容上來看,似乎還有許多地方沒有完成

框架作者有意在其中匯入更多的資料控制,但我在實際使用中,又有了新的想法和理解

第一:這個輕量級框架的測試結果輸出,是以xml格式輸出,說的簡單些,就好比每執行乙個用例,將指定結果列印到某個檔案裡。我想,既然是基於excel的框架,或許也可以更好的利用excel的一些特性。例如excel中包含了用例的輸入資訊,或許也可以將用例結果的輸出資訊提取出來,再輸入到excel檔案中,結合excel本身,就是乙份完整的測試報告

例:用例為 x+x=?

excel包含的測試資料為 1 2

則最後輸出 1 2 3 (判斷) 至excel檔案或是乙個新檔案 :判斷格對前3格進行判斷,若格1+格2=格3則顯示pass

第二:該框架似乎只是單向性的設計,雖然可以將每個用例都選擇性執行,但似乎缺乏乙個迴圈。比如說我現在嘗試使用的郵箱系統,覆蓋面較全的用例固然可以做出,但因為測試的時候,要在好幾個伺服器上重複測試。要實現這種效果,這個框架目前的結構似乎沒有辦法。在我現在看來,要實現該功能大概有2種方式,1是簡單的在excel格式中複製用例,2是在當前的基礎上,再新增乙個最頂層的類和對應的excel檔案,該類專門用於測試的初始化迴圈。

不過,也可能作者本身就有考慮這個問題,也有對應的使用方式,只是我目前還沒看到而已

簡單分享乙個輕量級自動化測試框架目錄結構設計

很多人在做自動化測試的過程中會遇到乙個瓶頸,就是能夠寫指令碼,但是不知道怎麼去組織 怎麼搭建測試框架,今天博主就放點乾貨,分享乙個輕量級的自動化測試框架的目錄結構,如下圖 分層如下 config層,放配置檔案,把所有的專案相關的配置均放到這裡,用python支援較好的配置檔案格式如ini或yaml等...

自動化運維 Spug 輕量級自動化運維平台

對於中小型企業而言,進行主機和應用的管理是比較麻煩的,應用部署往往需要直接連線伺服器,再進行手動的環境配置 拉取 應用構建和部署發布等工作,容易出錯,且耗時費力。乙個好的自動化運維平台,往往能大大節省人力物力,提高開發部署效率。spug,正是乙個面向中小型企業設計的輕量級自動化運維平台。spug,是...

自動化測試框架

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