1. 程式人生 > 其它 >Python的五大自動化測試架構

Python的五大自動化測試架構

1.Robot Framework

做為最重要的Python檢測架構之一,Robot Framework關鍵被用在檢測推動(test-driven)種類的開發設計與工程驗收中。儘管是由Python開發設計而成,可是它還可以在根據.Net的IronPython和根據Java的Jython上運作。與此同時,做為一個Python架構,Robot還可以相容例如Windows、MacOS、及其Linux等服務平臺。

應用前提條件

在應用Robot Framework(RF)以前,您必須 先安裝Python 2.7.14及之上的版本號。推存您應用Python 3.6.4,以保證適度的註解可以被加上到字串常量中,並可以追蹤程式流程的變更。與此同時,您還必須 安裝Python包管理工具--pip。

自然,您也務必免費下載相對應的開發框架,比如:在開發人員圈子較為時興的PyCharm社群版。此外,因為其字串常量自身並不依賴於一切IDE,因而您徹底能夠沿用手頭上不僅有的IDE專用工具。

優勢

根據應用關鍵詞推動檢測(keyword-driven-test)的方式,它可以協助測試工程師輕輕鬆鬆地建立具備易讀性的功能測試,從而簡單化了全部自動化技術的全過程。

使用者可以輕輕鬆鬆地資料測試中的英語的語法。

由於是由各種各樣通用性專用工具和檢測庫所構成,因此 它不僅有著巨大的生態體系,並且能夠在獨立的新專案中應用其每個原素。

因為有著很多種類的API,因而該架構具備高寬比的擴充套件性。

儘管並不是內嵌作用,可是Robot能夠根據Selenium Grid(請參照https://www.lambdatest.com/blog/lambdatest-now-live-with-an-online-selenium-grid-for-automated-cross-browser-testing/),來協助使用者運作各種各樣並行處理檢測。

缺陷

儘管擁有以上各種各樣便捷,可是Robot Framework在建立自定的HTML彙報層面較為繁雜。您頂多能用它來轉化成xUnit檔案格式的簡潔明瞭彙報。

此外,Robot Framework在並行處理檢測層面也並不漸長。

 

2.Pytest

適用多種多樣自動化測試的Pytest,是另一個Python種類的功能測試架構。憑著其開源系統和易懂的特性,該專用工具常常被QA(質量檢查)精英團隊、開發設計精英團隊、本人精英團隊、及其各種各樣開源軟體所應用。由於Pytest具備“肯定呼叫(assert rewriting)”這類的基本功能,很多大中型網際網路技術運用,如Dropbox和Mozilla,都早已從下邊即將提及的unittest(Pyunit)轉換到Pytest以上。

應用前提條件

除開基本上的Python專業知識,使用者並不一定大量的技術實力。此外,使用者只必須 有一臺含有命令列介面的檢測裝置,而且安裝好啦Python包管理工具、及其可用以開發設計的IDE專用工具。

優勢

以往,開發者務必將她們的檢測包括在各種各樣大中型的類中。現如今,Pytest能夠讓使用者寫下更加緊密的檢測模組。

別的的檢測工具會規定開發設計或測試工程師應用程式除錯,或以日誌查驗的方法檢驗某一特殊值的來源於。而使用者在使用Pytest來撰寫功能測試時,徹底能夠將全部的值都儲存在功能測試當中,直至***再獲知有什麼值失敗了、及其什麼非常值得到肯定。

因為牽涉到的樣版編碼(boilerplate code)並不是很多,因而使用者可以非常容易地撰寫和了解各種各樣檢測。

檢測工裝夾具(Fixture)涵數常被用於向測試函式加上某一主要引數,並回到不一樣的值。在Pytest中,您能夠根據應用一個工裝夾具來模組化設計此外一個。與此同時,使用者能夠應用好幾個工裝夾具,在不用呼叫功能測試的狀況下,將檢測遮蓋到全部主要引數的組成。

Pytest開發者根據公佈各種各樣好用軟體,來維持架構的擴充套件性。比如:pytest-xdist能夠在沒有應用別的測試工具的狀況下,被用以實行並行處理檢測。與此同時,單元測試卷還可以在不用拷貝一切編碼的狀況下,完成引數化設計。

根據為開發者給予各種各樣獨特的方法,它可以促使功能測試的撰寫更加簡易、更不容易錯誤,與此同時編碼也會越來越更短、更加容易被瞭解。

缺陷

以上談及的獨特方法,也代表著使用者務必捨棄一定的相容模式。儘管便捷了使用者撰寫功能測試,可是這種測試用例卻沒法與一切別的的檢測架構一起被應用。

 

3.UnitTest/PyUnit

遭受了JUnit啟迪的UnitTest/PyUnit,也是一種規範化的對於單元測試卷的Python類功能測試架構。它的基類TestCase給予了各種各樣肯定方式、及其全部清除和設定的方法。因而,TestCase派生類中的每一種方式全是以“test”做為專有名詞作為字首,以標誌他們可以被做為功能測試所運作。使用者能夠應用load方式和TestSuite類來排序、並載入各種各樣檢測。自然,您還可以根據協同應用,來搭建自定的穩定性測試器。如同大家應用Junit去檢測Selenium那般,UnitTest也會採用UnitTest-sml-reporting、並能轉化成各種各樣XML種類的彙報。

應用前提條件

因為UnitTest預設設定應用了Python,因而大家並不一定哪些前提條件。除開必須 具有Python架構的基礎知識,您還可以附加地安裝pip、及其用以開發設計的IDE專用工具。

優勢

開發者並不一定安裝一切別的的控制模組。

UnitTest是xUnit的衍生品,其原理與別的xUnit架構十分相近。因而針對這些沒有紮實Python情況的人而言,也可以迅速地面上手。

使用者可以以更加簡易的方法運作單獨功能測試。您只需在終端裝置上預訂好名稱,該架構便可靈便地實行各種各樣測試用例的檢測,並造成精練的輸出。

它可以在幾ms內轉化成各種各樣檢測報告。

缺陷

儘管該架構常見snake_case來取名各種各樣Python編碼,可是因為它源於Junit,因而仍儲存了一些傳統式的camelCase命名方法。這通常會令人造成搞混。

因為它太多地適用了抽象方法,因而導致了測試程式的目地有時候不足清楚。

必須 很多的樣版編碼。

 

 

4.Behave

大家都瞭解:個人行為驅動開發(behavior-driven development,BDD),是一種根據靈巧開發軟體的***方式。它可以激勵開發者、業務流程參加者和QA工作人員,三者中間的合作。做為另一種Python檢測架構,Behave容許精英團隊繞開各種各樣繁雜的狀況,去實行BDD檢測。從實質上說,該架構與SpecFlow和Cucumber十分類似,常被用以實行功能測試。使用者能夠根據簡易最易讀的語言表達來撰寫功能測試,並可以在其實行期內黏貼到編碼當中。並且,這些被設定的行為準則與流程,還可以被器重到別的的測試方法中。

應用前提條件

一切具有Python基本知識的人都能夠應用Behave。別的前提條件還包含:

您務必先安裝Python 2.7.14及之上的版本號。

必須 根據Python包管理工具或pip來與Behave合作。

大部分開發者會挑選Pycharm做為開發工具,自然您還可以採用別的的IDE專用工具。

優勢

因為系統軟體個人行為應用了半宣佈(semi-formal)語言表達、及其域詞彙(domain vocabulary),因而Behave有利於在機構中維持一致性的個人行為。

讓這些工作中在不一樣控制模組上的開發設計精英團隊,根據融洽解決來具備相近的特點。

其搭建的每個功能塊可以實行各種各樣功能測試。

因為具備大量非常值得使用者邏輯推理和思索的關鍵點,因而總體目標商品會具備更強的規範化。

依據相近的標準檔案格式,它可以讓工程專案經理和相關者,對開發設計精英團隊和QA精英團隊的輸出具備更清晰地掌握。

缺陷

只適用黑盒測試方法。

 

5.Lettuce

Lettuce是另一種根據Cucumber和Python的個人行為推動類自動化技術專用工具。Lettuce關鍵致力於這些具備個人行為驅動開發特點的一般每日任務。它不僅簡易實用,並且可以促使全部檢測全過程更順暢、乃至更有意思。

應用前提條件

您必須 安裝含有IDE的Python 2.7.14、及之上的版本號。自然,您還可以應用Pycharm或一切別的IDE專用工具。與此同時,您還必須 安裝Python包管理工具。

優勢

和別的BDD檢測架構相近,Lettuce可以讓開發者建立好幾個情景,並且用簡易的自然語言理解去敘述不一樣的作用。

依據相近的標準檔案格式,開發設計與QA精英團隊可以融洽相處。

針對黑盒測試方法來講,Lettuce特別適合於這些個人行為推動的功能測試。

缺陷

為了更好地取得成功地完成個人行為推動檢測,開發設計精英團隊、QA工作人員及其相關者中間必須 不斷開展溝通交流。假若欠缺該類溝通交流,則會造成步驟模模糊糊,並讓精英團隊碰到難題。

Python的五大自動化測試架構bj.qa.tedu.cn/news/445373.html