但是我最喜歡的是Python。為什么?為什么是Python ?
Al Sweigart,《自動化那些無聊的東西》的作者,Python一直是他的首選語言,因為:它有一個溫和的學習曲線。它適用于Windows、Linux和MAC。它仍然是專業開發人員使用的一種嚴肅的編程語言。它在一行中說" Hello world ",不像Java,你只需要記住public, static, void, string, ban,方括號等等。
容易記住語法,它并不強迫您學習面向對象編程。Python代碼非常簡潔。有點像Perl,但不像Perl是可讀的。
那么,您可以使用哪些最好的Python庫來幫助您進行測試和自動化工作呢?
以下是我過去的受訪者最喜歡的一些Python自動化庫,以及一些我個人認為有用的庫。
但是首先,如果您正在尋找一種快速學習如何開始使用Python的方法,那么您應該查看Andrew Knight在自動化協會的會議,了解如何開始使用Python進行測試。在檢查以下python測試庫之前,這將是一個很好的開始。
用于功能Python測試自動化 selenium
當然,您有用于瀏覽器UI自動化的Selenium-Python綁定。
這個Selenium包用于從Python自動化web瀏覽器交互。
Selenium是基于瀏覽器的自動化的行業標準。
如果您的團隊主要由具有開發技能或SDET的測試工程師組成,這是一個完美的選擇。
Splinter
Python中用于Selenium的一個很酷的包裝器類型庫是Splinter。
Splinter是一個使用Python測試web應用程序的開源工具。它允許您自動化瀏覽器操作,例如訪問url并與它們的項進行交互。
它使得編寫python Selenium測試更容易,因為它有一個高級API,可以讓您更容易地為瀏覽器應用程序開發自動化腳本。
Robot Framework
如果您想使用Python進行測試自動化,那么使用Robot框架是不會出錯的。這個成熟的產品是為測試人員創建的,它使用關鍵字驅動的方法使測試具有可讀性和易于創建。
它還包括一組測試庫和其他工具。Robot框架是基于python的,但是您也可以使用Jython (Java)或IronPython (. net)。
雖然Selenium WebDriver庫可能是最常用的外部測試庫,但Robot Framework也可以測試其他東西,比如:
FTP
MongoDB
安卓
Appium
api
大型機
如果您的團隊主要是由測試人員組成的,那么Robot框架是您的自動化框架的一個很好的選擇。
behave
那么行為驅動的開發庫呢?
Python有一堆類似BDD的框架可供選擇。最受歡迎的可能是行為。它和cucumber幾乎一模一樣,但它是用Python做的。
requests
需要做REST API測試或任何類型的HTTP活動?
請求是一個Apache2授權的HTTP庫,用Python編寫。這個庫是我認為下載次數最多的python庫之一。這對您的自動化工作是必不可少的。
Tavern
說到測試Andrew Knight推薦給我的另一個庫的API,自動化熊貓是Tavern。它使您的REST API測試更具有聲明性
Tavern將自己描述為一個命令行工具、Python庫和Pytest插件,用于對RESTful api進行自動化測試,它具有簡單、簡潔和靈活的基于yaml的語法
Hypothesis
我經常聽到的一個流行的測試主題是基于屬性的測試。如果你一直想自己嘗試一下,而且你對python很感興趣,那就看看假設吧。
假設基于屬性的測試你可以在一定的范圍內測試整數假設我們會自動為你處理各種變化。因此,它有助于在您的代碼中找到您可能想不到要查找的邊緣情況。
Pywinauto
對于非基于瀏覽器的功能自動化,請嘗試使用pywinauto。
pywinauto是一組Python模塊,可以用來自動化Microsoft窗口gui。
您可以使用它來發送鍵盤和鼠標動作到Windows對話框和控件。它還支持更復雜的操作,比如獲取文本數據。
Automagica
Automagica是一個基于Python語言的開源智能機器人過程自動化(SRPA)平臺。Automagica的最酷之處在于,你可以快速自動化一系列不同的跨平臺流程,比如:
瀏覽器自動化
PDF操縱
文件和文件夾操作
電子郵件業務
Word和Excel自動化
如何自動化與功能測試無關的其他活動?
當我說“自動化”時,我指的不僅僅是功能測試自動化,而是任何能夠幫助您加速軟件開發過程的活動。
Beautiful Soup
我用來從HTML和XML文件中提取數據的Python庫之一是Beautiful Soup。
雖然我使用的主要框架是基于java的,但是在我的框架中有一個目錄,其中包含各種Python幫助器腳本—其中大多數都利用了Beautiful Soup。
例如,我有一些腳本可以幫助我快速解析Serenity自動化框架報告。
幫助我快速解析我的Serenity自動化框架報告。
這也是偉大的網絡廢棄。如果您有一個簡單的靜態頁面,需要在其中查找隱藏在HTML中的一些信息,那么Beautiful Soup是您的首選庫。
您可以使用請求庫來幫助下載網頁本身,Beautiful Soup將幫助您解析它。
NumPy
在我采訪Python播客Test & Code的主持人Brain Okken時,他將NumPy作為他在諸如電氣工程測試等方面的Python庫的選擇。
NumPy是Python用于科學計算的基本包。
PyTest
Andrew Knight認為pytest是任何語言中最好的測試自動化框架之一。
原因之一是,它非常簡潔,并且專注于測試。在pytest測試中,編寫測試函數—不是測試類—而是測試函數。如果你想做set和cleanup,你可以寫一些其他的函數,它們被標記為fixture,你可以用依賴注入的方式來聲明它們。
因此,fixture將根據它們的作用域自動調用,它們返回的內容將被注入到測試函數中。這使得設置和清理更加可伸縮,更加可重用。
Brian還提到,雖然您可能需要一段時間才能理解pytest fixture,但是這非常值得,因為它們非常強大。如果您是Python測試的新手,pytest是一個必須學習的庫。
*一定要看看Brian的書《Python測試與pytest:簡單、快速、有效、可擴展》,以了解它的所有內容。
TensorFlow
如果你最近幾年一直關注自動化領域的最新消息,你就會知道人工智能是一個多么熱門的話題。
TensorFlow是一個由谷歌創建和發布的用于快速數值計算的Python庫。它是一個基礎庫,可以用于直接創建深度學習模型,也可以通過使用包裝器庫簡化構建在TensorFlow之上的過程。
TensorFlow實際上是Tariq King用來創建Ultimate Software基于python的開源AI生成和探索性測試工具Agent和AgentX的庫之一。
PDFMiner
有多少次您發現自己需要測試PDF的內容?
實際上,我驚訝地發現有多少Python模塊用于與許多不同的技術交互,比如Excel文件或解析PDF文件。
如果您需要測試或驗證PDF文本內容,您可能會發現PDFMiner非常有用。這個庫基本上是一個PDF文檔的文本提取工具。
Pyjest
您聽說過稱為Jest的單元級自動測試框架嗎?
它是由Facebook創建的,它的一些特性使測試驅動開發更容易執行;例如,它的交互式監視模式,您可以使用它來改進工作流。
它還足夠智能,可以知道運行哪些測試與上次提交代碼存儲庫后更改的文件相關。
如果有數百個(甚至數千個)測試需要很長時間才能運行,那么這個特性非常有用,因為它只運行與您的更改相關的測試。
Kent C. Dodds向我介紹了一個基于python的Jest實現pyjest。盡管它仍處于試驗階段,但它擁有所有Kent喜歡的觀看模式功能。
Locust
想要在Python腳本中添加一些性能測試嗎?
Locust是一個簡單易用的,基于python的負載測試工具。
Locust還可以幫助您確定一個系統可以處理多少并發用戶。
Locust的一些很酷的功能是:
能夠使用直接的Python創建測試場景
快速擴展您需要模擬的用戶數量的能力
一個友好的、基于web的可擴展UI
用于測試api
PyBuilder
PyBuilder是一個用Python編寫的軟件構建自動化工具,主要針對Python程序。
它的網站上說,它是基于基于依賴的編程的概念,但它也提供了一個強大的插件機制,允許構建生命周期,類似于Apache Maven之類的構建工具。
panda
panda是一個開源的、bsd許可的庫,為Python編程語言提供高性能、易于使用的數據結構和數據分析工具。
Ravi Salunkhe是我在LinkedIn上的一位測試架構師,他極力推薦我使用它。
panda基于其網站上的信息解決的問題是“Python長期以來在數據轉換和準備方面一直很出色,但在數據分析和建模方面就不那么出色了。panda有助于填補這一空白,使您能夠在Python中執行整個數據分析工作流,而不必切換到更特定于領域的語言,如r!
Coverage.py
py是一個度量Python程序代碼覆蓋率的工具。
Kyle Tice在評論中推薦了這個庫:“coverage .py是Python最流行的代碼覆蓋工具之一。它使用Python標準庫中提供的代碼分析工具和跟蹤鉤子來度量覆蓋率。它運行在CPython、PyPy、Jython和IronPython的主要版本上。您可以將Coverage.py與單元測試和Pytest一起使用。
他們的網站提到,它會監控你的程序,注意代碼的哪些部分已經執行,然后分析源代碼,以識別可能已經執行但沒有執行的代碼。覆蓋率度量是評估測試有效性的好方法。這個工具將顯示您的代碼的哪些部分被測試所執行,更重要的是,哪些部分沒有被測試所執行。
PyUnit
Francesco Piscani在LinkedIn上提到,如果您來自Java世界并且習慣于使用camel大小寫,那么您可能會發現UnitTest (PyUnit)是向Python生態系統的一個簡單過渡。
PyUnit是用Python創建單元測試程序和單元測試的簡單方法。
PyCharm
好吧,我也不知道為什么我沒有把我最喜歡的ide添加到這個列表中,但是Daryl Flowers在LinkedIn上提醒我添加它是很好的。
如果您習慣于使用Java進行自動化測試,那么您可能熟悉JetBrain的IntelliJ。對于Python,它們還為專業開發人員提供了一個非常棒的特定于Python的IDE,稱為PyCharm。
我錯過了什么Python自動化工具
這些只是我使用過或推薦給我的基于Python的庫中的一部分。我錯過了什么?讓我知道,我會把它/他們列入名單。
本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系博為峰小編(021-64471599-8017),我們將立即處理