1. 程式人生 > 實用技巧 >Python 自動化測試全攻略:五種自動化測試模型實戰詳解

Python 自動化測試全攻略:五種自動化測試模型實戰詳解

隨著移動網際網路的發展,軟體研發模型逐步完善,軟體交付質量越來越受到軟體公司的重視,軟體測試技術特別是自動化測試技術開始在軟體系統研發過程中發揮著越來越重要的作用。

與傳統的手工測試技術相比,自動化測試具備了良好的可操作性、可重複性和高效率等特點,能夠更加全面、快速地執行測試用例,在保證產品質量的前提下實現軟體產品的快速迭代。

在這裡插入圖片描述
關於自動化測試的定義,本文不再詳細贅述。一般來說,自動化測試是指:從區域性或全部代替人工,結合測試工具和測試規範,自動執行測試指令碼及提高測試效率的過程。因此,我們可以將自動化測試理解為一個整合體系,在這一體系中包含測試功能的函式庫、測試資料來源、測試物件標準,以及各種可重用的模組。

自動化測試相對於手工測試而言,其主要進步在於自動化測試模型的引入,自動化測試工具是“死”的,它不具備任何想象力。因此,自動化測試的好壞,完全取決於測試工程師對於測試模型的選擇,效能更高的測試模型,會帶來更快的測試速度和更高的測量精確度。

自動化測試模型都有哪些?

自動化測試發展至今,先後產生了五種測試模型:線性模型、模組化驅動模型、資料驅動模型、關鍵字驅動模型和行為驅動模型。

在這裡插入圖片描述
線性模型

通過錄制或編寫指令碼,一個指令碼完成一個場景(一組完整功能操作),通過對指令碼的回放進行自動化測試。

在這裡插入圖片描述
測試指令碼如下圖所示(公開課後,可下載完整程式碼):

在這裡插入圖片描述
從上圖可以看出,線性測試模型的優勢就是每一個指令碼都是獨立的,任何一個指令碼檔案拿出來就能單獨執行;當然,其缺點也很明顯,就是測試用例的開發與維護成本很高,這種模式下資料和指令碼是混在一起的,如果資料發生變化就需要對指令碼進行修改,其用例的複用性較差。

模組化驅動模型

將指令碼中重複可複用的部分拿出來寫成一個公共的模組,需要的時候就呼叫它,這樣可以大幅提高測試人員編寫指令碼的效率。

在這裡插入圖片描述
測試指令碼如下圖所示(公開課後,可下載完整程式碼):

在這裡插入圖片描述
如上圖所示,模組化驅動模型是將測試指令碼中相同的部分程式碼獨立出來,形成模組或庫,這樣做有兩個好處:

1、提高了開發效率和程式碼複用性,測試人員不用重複的編寫相同的指令碼,如果提前寫好了一個測試模組,後續只需要進行呼叫即可,不同重複造輪子。

2、簡化了程式碼的維護工作,如果測試模組發生了變化,只用修改login.py 檔案中相應模組的程式碼即可,所有呼叫該模組的指令碼不用做任何修改。

即便如此,模組化驅動模型仍未能完全實現將資料和用例分離,對後期的維護工作會產生一定影響。

資料驅動模型

為了解決線性模型和模組化驅動模型的短板,資料驅動模型就此誕生。該模型會根據資料的變化而引起測試結果的改變,這顯然是一個非常高階的概念和想法。簡單地說,該模型是一種資料的引數化呈現,即通過輸入不同的引數來驅動程式執行,輸出不同的測試結果。

在這裡插入圖片描述
測試指令碼如下圖所示:

在這裡插入圖片描述
該模型的最大優點,就是實現了測試資料和測試指令碼分離,不管我們讀取的是陣列、字典、函式,還是csv、txt 等檔案,我們都可以通過傳遞引數,驅動指令碼執行,返回不同的測試結果。

關鍵字驅動模型

這是一種通過關鍵字的改變而引起測試結果改變的功能自動化測試模型。QTP、robot framework 等都是以關鍵字驅動為主的自動化測試工具,這類工具典型的特徵就是具備一套易用的視覺化介面,測試人員需要做的就是將測試指令碼按照“填表格”的方式填入,並考慮三個問題就可以了:我要做什麼? 對誰做?怎麼做?

在這裡插入圖片描述
本文所使用的Selenium IDE 就是一種關鍵字驅動的自動化工具,Selenium IDE 的指令碼通常包含:命令(command)、物件(target)和值(value)三部分,測試指令碼可直接在瀏覽器中執行,就像真正的使用者在操作一樣。

在這裡插入圖片描述
通過上圖的格式去描述不同的測試物件,就可以達到不同的測試結果。關鍵字驅動模型以物件為出發點,降低了自動化測試用例的編寫難度,對於不懂程式碼的同學非常直觀,視覺化介面,帶來了更高的工作效率和更低的維護門檻。

行為驅動模型

最後,本文將介紹一種在國外非常流行的測試模型——行為驅動模型,這套模型源自於敏捷開發方法:行為驅動開發(Behave Driven Development,簡稱BDD),即從使用者的需求出發強調系統行為。

通過將BDD借鑑到自動化測試中,便產生了行為驅動測試模型,這種模型通過使用自然描述語言確定自動化測試指令碼,其優點是可使用自然語言編寫測試用例。

在這裡插入圖片描述
測試指令碼如下圖所示:

在這裡插入圖片描述
在這裡插入圖片描述
如上圖所示,用例的寫法基本和功能測試用例的寫法類似,這樣具有良好協作的益處。行為驅動測試模型使每個人都可以參與到開發測試中,不僅僅是程式設計師。該模型下每個測試場景都是一個獨立的行為,且已有的行為可以被重複使用。

測試報告如下圖所示:

在這裡插入圖片描述
擴充套件知識

1、目前在Python中最流行的 BDD 框架是Behave,它與其他基於 Gherkin 的 Cucumber 框架非常相似,當然還有其他BDD框架,比如pytest-bdd和radish等。

2、在使用Selenium執行自動化測試時,需要注意以下幾點:

  • 查詢網頁元素的時候,注意網頁中使用frame的情況,首先要使用browser.switchto.frame(“contentFrame”)命令進入frame中,才能選中所需的元素。使用之後要記得返回上一級frame,browser.switchto.parent_frame()。Webmtc主要使用id選擇和xpath獲取元素,webmtc網頁中class使用的比較少。

注意頁面重新整理之後程式碼也會找不到frame,比如呼叫建立之後頁面會重新整理,多點會議建立之後頁面會重新整理,點選設定介面和呼叫介面頁面也會重新整理。
以上,就是這五種自動化測試模型的基本介紹

最後,小編想說:我是一名python自動化工程師,整理了一套最新的python系統學習教程,

想要這些資料的可以關注加群回覆“csdn”即可(免費分享哦)希望能對你有所幫助。

在這裡插入圖片描述
上面是我收集的一些視訊資源,在這個過程中幫到了我很多。如果你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以加入我們扣扣群【313782132 】,裡面有各種軟體測試資源和技術討論。

軟體測試是IT相關行業中最容易入門的學科~不需要開發人員燒腦的邏輯思維、不需要運維人員24小時的隨時待命,需要的是細心認真的態度和IT相關知識點廣度的瞭解,每個測試人員從入行到成為專業大牛的成長路線可劃分為:軟體測試、自動化測試、測試開發工程師 3個階段。

如果你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以加我們的軟體測試交流群,裡面有各種軟體測試資料和技術交流。