隨著移動互聯網的發展,軟體研發模型逐步完善,軟體交付質量越來越受到軟體公司的重視,軟體測驗技術特別是自動化測驗技術開始在軟體系統研發程序中發揮著越來越重要的作用,
與傳統的手工測驗技術相比,自動化測驗具備了良好的可操作性、可重復性和高效率等特點,能夠更加全面、快速地執行測驗用例,在保證產品質量的前提下實作軟體產品的快速迭代,

(圖片來自于網路)
關于自動化測驗的定義,本文不再詳細贅述,一般來說,自動化測驗是指:從區域或全部代替人工,結合測驗工具和測驗規范,自動執行測驗腳本及提高測驗效率的程序,因此,我們可以將自動化測驗理解為一個集成體系,在這一體系中包含測驗功能的函式庫、測驗資料源、測驗物件標準,以及各種可重用的模塊,
自動化測驗相對于手工測驗而言,其主要進步在于自動化測驗模型的引入,自動化測驗工具是“死”的,它不具備任何想象力,因此,自動化測驗的好壞,完全取決于測驗工程師對于測驗模型的選擇,性能更高的測驗模型,會帶來更快的測驗速度和更高的測量精確度,
自動化測驗模型都有哪些?
自動化測驗發展至今,先后產生了五種測驗模型:線性模型、模塊化驅動模型、資料驅動模型、關鍵字驅動模型和行為驅動模型,為了幫助初入自動化測驗行業的從業者快速掌握這些測驗模型的基本使用方法,葡萄城公開課特別邀請到《Python Web自動化測驗入門與實戰》的作者——楊定佳先生,為我們在線解讀“Python 自動化測驗全攻略”,通過示例代碼,詳解這五種自動化測驗模型的優缺點,歡迎各位同學點擊此處,報名參加:http://live.vhall.com/756567602,

線性模型
通過錄制或撰寫腳本,一個腳本完成一個場景(一組完整功能操作),通過對腳本的回放進行自動化測驗,

測驗腳本如下圖所示(公開課后,可下載完整代碼):

從上圖可以看出,線性測驗模型的優勢就是每一個腳本都是獨立的,任何一個腳本檔案拿出來就能單獨運行;當然,其缺點也很明顯,就是測驗用例的開發與維護成本很高,這種模式下資料和腳本是混在一起的,如果資料發生變化就需要對腳本進行修改,其用例的復用性較差,
模塊化驅動模型
將腳本中重復可復用的部分拿出來寫成一個公共的模塊,需要的時候就呼叫它,這樣可以大幅提高測驗人員撰寫腳本的效率,

測驗腳本如下圖所示(公開課后,可下載完整代碼):

如上圖所示,模塊化驅動模型是將測驗腳本中相同的部分代碼獨立出來,形成模塊或庫,這樣做有兩個好處:
- 提高了開發效率和代碼復用性,測驗人員不用重復的撰寫相同的腳本,如果提前寫好了一個測驗模塊,后續只需要進行呼叫即可,不同重復造輪子,
- 簡化了代碼的維護作業,如果測驗模塊發生了變化,只用修改login.py 檔案中相應模塊的代碼即可,所有呼叫該模塊的腳本不用做任何修改,
即便如此,模塊化驅動模型仍未能完全實作將資料和用例分離,對后期的維護作業會產生一定影響,
資料驅動模型
為了解決線性模型和模塊化驅動模型的短板,資料驅動模型就此誕生,該模型會根據資料的變化而引起測驗結果的改變,這顯然是一個非常高級的概念和想法,簡單地說,該模型是一種資料的引數化呈現,即通過輸入不同的引數來驅動程式執行,輸出不同的測驗結果,

測驗腳本如下圖所示(公開課后,可下載完整代碼):

該模型的最大優點,就是實作了測驗資料和測驗腳本分離,不管我們讀取的是陣列、字典、函式,還是csv、txt 等檔案,我們都可以通過傳遞引數,驅動腳本執行,回傳不同的測驗結果,
關鍵字驅動模型
這是一種通過關鍵字的改變而引起測驗結果改變的功能自動化測驗模型,QTP、robot framework 等都是以關鍵字驅動為主的自動化測驗工具,這類工具典型的特征就是具備一套易用的可視化界面,測驗人員需要做的就是將測驗腳本按照“填表格”的方式填入,并考慮三個問題就可以了:我要做什么? 對誰做?怎么做?

本文所使用的Selenium IDE 就是一種關鍵字驅動的自動化工具,Selenium IDE 的腳本通常包含:命令(command)、物件(target)和值(value)三部分,測驗腳本可直接在瀏覽器中運行,就像真正的用戶在操作一樣,

通過上圖的格式去描述不同的測驗物件,就可以達到不同的測驗結果,關鍵字驅動模型以物件為出發點,降低了自動化測驗用例的撰寫難度,對于不懂代碼的同學非常直觀,可視化界面,帶來了更高的作業效率和更低的維護門檻,
行為驅動模型
最后,本文將介紹一種在國外非常流行的測驗模型——行為驅動模型,這套模型源自于敏捷開發方法:行為驅動開發(Behave Driven Development,簡稱BDD),即從用戶的需求出發強調系統行為,
通過將BDD借鑒到自動化測驗中,便產生了行為驅動測驗模型,這種模型通過使用自然描述語言確定自動化測驗腳本,其優點是可使用自然語言撰寫測驗用例,

測驗腳本如下圖所示(公開課后,可下載完整代碼):


如上圖所示,用例的寫法基本和功能測驗用例的寫法類似,這樣具有良好協作的益處,行為驅動測驗模型使每個人都可以參與到開發測驗中,不僅僅是程式員,該模型下每個測驗場景都是一個獨立的行為,且已有的行為可以被重復使用,
測驗報告如下圖所示:

擴展知識
- 目前在Python中最流行的 BDD 框架是Behave,它與其他基于 Gherkin 的 Cucumber 框架非常相似,當然還有其他BDD框架,比如pytest-bdd和radish等,
-
在使用Selenium執行自動化測驗時,需要注意以下幾點:
- 查找網頁元素的時候,注意網頁中使用frame的情況,首先要使用browser.switch_to.frame("contentFrame")命令進入frame中,才能選中所需的元素,使用之后要記得回傳上一級frame,browser.switch_to.parent_frame(),Webmtc主要使用id選擇和xpath獲取元素,webmtc網頁中class使用的比較少,
- 注意頁面重繪之后代碼也會找不到frame,比如呼叫建立之后頁面會重繪,多點會議創建之后頁面會重繪,點擊設定界面和呼叫界面頁面也會重繪,
以上,就是這五種自動化測驗模型的基本介紹,在本期公開課上,講師除了會依次演示每一種模型的測驗代碼,還會針對Web自動化測驗的相關技術(包括從自動化測驗的基礎到提升、從理論到實踐、從單個知識點到專案運用等)進行詳細的解讀,可以幫助自動化測驗零基礎的初學者和希望進入自動化測驗行業的開發者快速掌握自動化測驗的基本知識,并且具備一定的Web自動化測驗開發能力,
下面有我近幾年的收集和整理,整體是圍繞著【軟體測驗】來進行整理的,主體內容包含:python自動化測驗專屬視頻、Python自動化詳細資料、全套面試題等知識內容,

對于軟體測驗的的朋友來說應該是最全面最完整的面試備戰倉庫,為了更好地整理每個模塊,我也參考了很多網上的優質博文和專案,力求不漏掉每一個知識點,很多朋友靠著這些內容進行復習,拿到了BATJ等大廠的offer,這個倉庫也已經幫助了很多的軟體測驗的學習者,希望也能幫助到你
關注微信公眾號【程式員二黑】即可領取Python自動化測驗超硬核資源啦
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286504.html
標籤:其他
