【軟件測試基礎】自動化測試框架設計核心理念——關鍵字驅動

寫在前面

很多人在接觸自動化測試時,都會聽到關鍵字驅動這樣的一個概念,但是在研究時卻有些不太清楚這種驅動模式的設計及實現到底該如何着手去做。

關鍵字驅動,作爲一種自動化測試框架的設計形式,在很早的時候就已經有提及過了。它的基本原理或者說構思就是將原本的自動化代碼進行代碼與數據的分離,再將分離出來的代碼二次分離,形成所謂行爲代碼與測試代碼,而後再經由數據內容驅動行爲代碼,生成測試代碼。從而更加便捷地進行自動化測試代碼的管理,以及提高自動化的複用性,讓使用者更加容易理解和使用自動化(畢竟還是有很多很多測試人員對代碼一竅不通。


可能這個解釋聽起來有點複雜,那麼我舉個很簡單的例子讓大家瞭解一下關鍵字驅動的形式:

1. 我在吃飯。

2. 你在吃飯。

3. 他在吃飯。

這一組內容可以看到,不論是誰,都在做着吃飯這樣的一個行爲,而其中重點的是角色,也就是所謂的「你我他」,那麼我們可以將「吃飯」這個行爲提取出來,作爲一個公共的內容,這樣就只需要提供一個角色數據,就可以實現任何一個人吃飯的這樣一件事情了。而這個提取行爲作爲公共內容的過程,就是所謂的關鍵字封裝,通過角色數據去驅動這樣的一個行爲,形成這一件事情,這就是所謂的「關鍵字驅動+數據驅動」的自動化測試設計模式了。


那麼在自動化測試中我們要實現關鍵字驅動的話,該如何去做呢?

首先是環境的準備:

1. Selenium+WebDriver常規組建的生成:(有關這部分可以參照我之前寫的的Selenium環境搭建)

在Pycharm中導入Selenium模塊

在Python安裝根路徑下添加driver文件

2. 如果想要結合數據驅動,則依據數據文件格式選擇對應的組件安裝:

Excel可以通過xlrd

yaml可以通過pyyaml

還有很多其他不一一例舉了。

3. 如果想要整個框架做的更加完善,可以添加很多其他的內容,比如說logging日誌記錄,Requests接口自動化,Appium/uiautomator2移動端UI自動化等等等等,這裏依據個人喜好和需要進行添加即可。

準備好環境後,就是重點的關鍵字封裝提取,在這裏以Selenium爲例:

先看基本的工程結構:

定義一個最基本的關鍵字結構,創建一個包,專門用於管理各類關鍵字類對象,可以是WebUI,AppUI,接口的關鍵字對象。作爲一個關鍵字庫,用於存放和被調用。再定義一個包,專門用於調用關鍵字庫的內容,實現自動化的執行,當然,也可以用其他形式,這裏很多方法可以應用。

接着再來看看關鍵字類如何實現:

關鍵字類中,將常規的元素操作行爲從Selenium對象中提取出來,然後進行二次封裝,生成自己的關鍵字庫,這個庫可以理解爲是工具庫,當實際測試過程中需要應用到任何的方法時,直接通過實例化這個庫,然後在庫中進行調用即可。這個類中,在執行過程中是有可能會出現異常的,比如元素查找失敗,超時等等,所以最好在關鍵字封裝時,添加異常處理機制,避免在運行時出現異常而導致無法捕捉具體原因。

關鍵字類的調試:

因爲沒做數據驅動類,所以直接在Pycharm中編寫測試代碼中對已生成的關鍵字類進行調試,通過運行可以發現,整個過程已經可以正常實現,也就意味着,這個關鍵字對象庫沒有太大問題,而我們後續需要做的,就只是在這個對象庫中不停添加需要的關鍵字即可。而結合到數據驅動,像是Excel、yaml等之後,也可以通過這些數據文件來驅動我們的對象庫。

SO.

通過關鍵字驅動的實現,可以很好地將常規的自動化代碼進行操作行爲與測試代碼的分離,生成複用性較高的自動化測試模式。而且結合到數據驅動,可以應用到多種不同類型的業務系統,來實現自動化測試工作。從而提升我們的工作效率以及個人的自動化測試能力。來這裏一起討論交流吧點擊暗號【CSDN】

點關注,不迷路!如果本文對你有幫助的話不要忘記點贊支持哦!