Python自動化測試框架,誰才是你的唯一?

2021-12-24 51Testing軟體測試網

Python得天獨厚的優勢造就了一系列測試框架,在這些測試框架面前,孰優孰劣?具體該如何選擇?

俗話說 「沒有最好的,只有最合適的」,今天我們就Python當前使用較為頻繁的4大主流自動化測試框架, 來一回比拼,從中挑選最為合適你當前項目需求的那一款。

Robot Framework

Unittest

Nose2

Pytest

Robot Framework,簡稱RF,是一個基於Python的開源自動化測試框架,以關鍵字形式來創建測試用例。

其表格樣式的用例編寫模式,豐富的庫和工具集,以及其並行測試等強大功能,使得RF 在測試人員中非常受歡迎。

RF主要應用於驗收測試和測試驅動開發(Test-driven development)這兩個場景。

此外,RF還支持在Windows、Mac OS和Linux等跨平臺上進行桌面應用、移動應用、Web應用等的自動化測試。

*** Settings ***Library SeleniumLibrary*** Variables ***${SERVER} localhost:7272${BROWSER} Firefox${DELAY} 0${VALID USER} demo${VALID PASSWORD} mode${LOGIN URL} http://${SERVER}/${WELCOME URL} http://${SERVER}/welcome.html${ERROR URL} http://${SERVER}/error.html*** Keywords ***Open Browser To Login Page Open Browser ${LOGIN URL} ${BROWSER} Maximize Browser Window Set Selenium Speed ${DELAY}Login Page Should Be Open Title Should Be Login PageGo To Login Page Go To ${LOGIN URL} Login Page Should Be OpenInput Username [Arguments] ${username} Input Text username_field ${username}Input Password [Arguments] ${password} Input Text password_field ${password}Submit Credentials Click Button login_buttonWelcome Page Should Be Open Location Should Be ${WELCOME URL} Title Should Be Welcome Page

(左右滑動查看完整代碼)

Unittest是一個基於Python的自動化單元測試框架,屬於Python標準庫中的一員,支持測試套件的復用。

只需在測試腳本中導入Unittest庫,測試人員就可以自定義測試類,創建測試用例,通過unittest.main()運行所有測試用例。

import unittestdef add(x, y): return x + yclass Test(unittest.TestCase): def test_add_001(self): self.assertEquals(add(4, 5), 9) def test_add_002(self) self.assertNotEqual(add(1,2),10)if __name__ == '__main__': unittest.main()

(左右滑動查看完整代碼)

Nose2繼承自Nose,同樣是一個基於Python的單元測試框架, 可以視為Unittest框架的拓展,因此,Nose2下可以運行Unittest編寫的測試用例。

Nose2有豐富的插件,集編寫測試用例,異常處理等多種功能。相較於上面提到的Unittest和Robot Framework而言,卻沒那麼高的普及度,但仍不失為一款好用的開源測試框架。

from mynum import *import nosedef add(x, y): return x + ydef test_add_integers(): assert add(5, 3) == 8def test_add_floats(): assert add(1.5, 2.5) == 4def test_add_strings(): nose.tools.assert_raises(AssertionError, add, 'hello', 'nose2')if __name__ == '__main__':  nose.run()

(左右滑動查看完整代碼)

Pytest是Python另一款非常熱門的開源測試框架。其語法簡單,且擁有豐富的插件,可應用於功能測試,API測試,資料庫及UI測試等多種測試類型。

import pytestdef test_demo_method1(): x = 1 y = 2 assert x+1 == y, "test pass"def test_demo_method2(): x = 6 y = 3 assert x-1 == y+2, "test failed"

(左右滑動查看完整代碼)

下面以@pytest.fixture裝飾器為例,簡單看下它的初始化功能:

(1)單獨創建一個conftest.py文件,文件中包含一個用@pytest.fixture修飾的方法,該方法返回一個列表數據。

import pytest@pytest.fixturedef supply_AA_BB_CC(): aa = 25 bb = 35 cc = 45 print("這是一個獨立的文件[conftest.py],包含了fixture標籤") return[aa,bb,cc]

(左右滑動查看完整代碼)

(2)調用conftest.py中被修飾的方法,獲取初始化測試數據。

import pytestdef test_withAA(supply_AA_BB_CC): zz = 35 assert supply_AA_BB_CC[0]== zz, "校驗失敗,兩者不相等"def test_withBB(supply_AA_BB_CC): zz = 35 assert supply_AA_BB_CC[1]== zz, "校驗失敗,兩者不相等"def test_withCC(supply_AA_BB_CC): zz = 35 assert supply_AA_BB_CC[2]== zz, "校驗失敗,兩者不相等"

(左右滑動查看完整代碼)

這是一個獨立的文件[conftest.py],包含了fixture標籤FAILED test_basic_fixture1.py::test_withAA - AssertionError: 校驗失敗,兩者不...FAILED test_basic_fixture1.py::test_withCC - AssertionError: 校驗失敗,兩者不...

(左右滑動查看完整代碼)

在對Python四類主流自動化測試框架有了基本了解後,如何選擇適合當前項目的那一款框架呢?

要想做到有的放矢,了解每款框架的優點及局限性是選擇最佳Python測試框架的首選方案,下面就讓我們一探究竟。

在對比測試框架的優勢及局限性的同時,需要結合測試類型進行考慮:

通過上述分析對比,結合實際項目的自動化測試需求,綜合考慮後才能得出一個最佳選項,這樣才更有助於自動化項目的進展,達到事半功倍的效果,真正將自動化框架有效進行落實,找到那個屬於你的唯一。

相關焦點

  • 從小白變高手,這7個超實用的Python自動化測試框架請收好!
    隨著技術的進步和自動化技術的出現,市面上出現了一些自動化測試框架。只需要進行一些適用性和效率參數的調整,這些自動化測試框架就能夠開箱即用,大大節省了開發時間。而且由於這些框架被廣泛使用,他們具有很好的健壯性,並且具有廣泛多樣的用例集和技術來輕易發現微小的缺陷。今天,我們將看一看常見的 Python 自動化測試框架。
  • Android APP自動化測試框架實戰
    1、為什麼需要使用框架實現自動化測試  作為測試工程師,可能在代碼能力上相比開發工程師要弱一點
  • 學會Python+Selenium,分分鐘搭建Web自動化框架!
    用python+selenium實現UI自動化測試,要有一些HTML和xpth的基礎,當然python基礎一定是必須要會的。筆者建議花點時間了解下相關基礎知識,不至於後面發懵。一、什麼是selenium?selenium是個強大的工具集。
  • 用於全棧自動化測試的最佳Python工具!
    Splinter是一個使用Python測試web應用程式的開源工具。它允許您自動化瀏覽器操作,例如訪問url並與它們的項進行交互。它使得編寫python Selenium測試更容易,因為它有一個高級API,可以讓您更容易地為瀏覽器應用程式開發自動化腳本。  如果您想使用Python進行測試自動化,那麼使用Robot框架是不會出錯的。
  • Python+requests接口自動化測試框架實例詳解教程
    ,由原來的web頁面功能測試轉變成接口測試,之前大多都是手工進行,利用postman和jmeter進行的接口測試,後來,組內有人講原先web自動化的測試框架移駕成接口的自動化框架,使用的是java語言,但對於一個學java,卻在學python的我來說,覺得python比起java更簡單些。
  • Python自動化之unittest框架
    在金字塔模型的測試理論體系中,單元測試是最底層的測試,而且是測試覆蓋最多的層面。在自動化所有的測試體系中,不管是單元測試,還是接口測試以及基於UI的自動化測試,都需要單元測試框架,在Python語言中,最常用的單元測試框架是unittest和pytest,今晚主要來介紹unittest單元測試框架,後期逐步的介紹pytest測試框架在自動化測試中的應用。
  • Python 測試框架unittest和pytest的優劣
    這篇文章主要介紹了Python 測試框架unittest和pytest的優劣,幫助大家更好的進行python程序的測試,感興趣的朋友可以了解下
  • Appium+Python做移動端自動化測試
    第一章 導言  1.1 編制目的  該文檔為選用Appium作為行動裝置原生(Native)、混合(Hybrid)、移動Web(Mobile Web)應用UI自動化測試的相關自動化測試人員、開發人員等提供參考。
  • Python unittest單元測試框架的使用
    二、unittest框架用Python搭建自動化測試框架,需要組織用例以及測試執行,大部分推薦的是unittest。現在用的也是這個,隨著了解,也有其他的框架,有時間再多去學習,保持持續學習哦~附上官方文檔地址:連結描述https://docs.python.org/2.7/library/unittest.html#unittest是Python自帶的單元測試框,可以用來作自動化測試框架的用例組織執行框架。
  • Python unittest單元測試框架的使用
    二、unittest框架用Python搭建自動化測試框架,需要組織用例以及測試執行,大部分推薦的是unittest。現在用的也是這個,隨著了解,也有其他的框架,有時間再多去學習,保持持續學習哦~附上官方文檔地址:連結描述https://docs.python.org/2.7/library/unittest.html#unittest是Python自帶的單元測試框,可以用來作自動化測試框架的用例組織執行框架。
  • Windows-UI自動化:如何選擇合適的測試框架
    因此,本篇文章,小編帶領大家認識幾種基於windows系統的UI自動化框架(appium/AirTest/pywinauto),並分析其各自的優劣。相信只要了解過一點UI自動化測試的朋友,一定不會對Appium感到陌生。作為移動端UI自動化界的元老和王者,appium幾乎是所有UI自動化測試和UI自動化框架嵌套的首選。
  • 自動化測試常用的Python框架有哪些?
    自動化測試常用的Python框架有哪些?常用的框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。二、Pytest適用於多種軟體測試的Pytest,是另一個Python類型的自動化測試框架。憑藉著其開源和易學的特點,該工具經常被QA(質量分析)團隊、開發團隊、個人團隊、以及各種開源項目所使用。
  • Android常用6種自動化測試框架對比?
    App的回歸測試用例數量也越來越多,全量回歸也越來越消耗時間。為了擺脫這些,需要引進一些自動化測試來協助我們。趁現在有空我來總結下,Android常用的幾種自動化測試框架的異同,使測試人員在選擇自動化框架時有所參考!
  • Python測試框架:pytest學習筆記
    這篇文章主要介紹了Python測試框架:pytest的相關資料,幫助大家更好的利用python進行單元測試,感興趣的朋友可以了解下
  • APP UI自動化測試思路總結
    ,畢竟誰也不會跟錢過不去。相對於其他語言,Python做自動化測試有以下優點:二,UI測試框架選擇選擇編開發語言之後,我們需要選擇UI測試框架。目前較為主流或者使用較多的APP UI自動化測試框架有Appium、Airtest等。
  • ZenTaoATF 1.0 發布,禪道自動化測試框架
    大家好,我們非常自豪的向大家推出我們禪道開發團隊開發的自動化測試框架——ZenTaoATF(zentao auto
  • 接口自動化測試與Tesla自動化測試平臺
    【使用代碼來進行接口測試】簡單來說,代碼對測試用例的組織和抽象能力更強,並且執行和驗證的能力更強,所以接口測試進階的形態是使用代碼來進行描述。但同時需要注意的是,代碼和自動化不是萬能的,也不是唯一決定測試水平的要素。【流水線技術】流水線的使用標誌著測試真正進入了自動化。
  • APP UI自動化測試,思路全總結在這裡了
    首先想要說明一下,APP自動化測試可能很多公司不用,但也是大部分自動化測試工程師、高級測試工程師崗位招聘信息上要求的,所以為了更好的待遇,我們還是需要花時間去掌握的,畢竟誰也不會跟錢過不去。接下來,一起總結一下APP UI自動化測試的思路吧。通常用於自動化測試的程式語言有:Python、Java、Javascript、Ruby、C#、PHP等。
  • 自動化測試框架結構圖
    1、接口自動化測試框架設計圖2、接口自動化執行設計圖3、API自動化平臺框架設計圖4、UI自動化測試框架設計圖5、接口+UI自動化測試框架設計圖6、Appium移動端自動化測試框架圖7、JMeter接口自動化測試框架圖8、JMeter
  • 自動化測試基礎篇:Selenium 框架設計(POM)
    自動化測試框架1.什麼是自動化測試框架簡單來說,自動化測試框架就是由一些標準,協議,規則組成,提供腳本運行的環境。自動化測試框架能夠提供很多便利給用戶高效完成一些事情。持續集成,git,svn,ant,maven,jenkins,我們會把這整合到jenkins,達到持續集成,一鍵執行測試腳本。根據以上的特點介紹,我大致用以下圖來描述一下,一個簡單的自動化測試框架,可能包含哪些組成部分。unittest是一個單元測試框架,是Python編程的單元測試框架。