Python的測試框架
Unit frameworks單元測試框架
- Framework
- unittest - python自帶的單元測試庫,開箱即用
- unittest2 - 加強版的單元測試框架,適用於Python 2.7以及後續版本
- pytest - 成熟且功能強大的單元測試框架
- plugincompat - pytest的執行及兼容性插件
- nosetests - 讓python測試更容易一點
- slash - python實現的單元測試框架
- Extension
- proboscis - 仿TestNG擴展了unittest模塊以及Nose的功能
- grail -可以讓你一步一步編寫測試用例的庫
- Testify - 單元測試框架,提供了加強型夾具,用例切割並行運行,testrunner高亮及詳盡的日誌和報告功能
- trial - unittest模塊的擴展,提供了命令行的testrunner工具以及代碼覆蓋率的整合,跟鼻差不多
- subunit - 提供了unittest在另一個進程執行用例並彙總測試數據的能力
- testresources - 提供了多用例間管理測試數據的機制,兼容unittest
- testtools - 為Twisted和Bazaar提供的unittest擴展
- Sancho - 運行用例,並為失敗的用例提供報告,但僅限於此
- zope.testing - testrunner,提供了不錯的debuge能力,並且集成了代碼覆蓋率。可以跟zope項目使用,也可以用在非zope項目上
- pythoscope - 自動或半自動為遺留的python系統創建測試用例的工具
- testlib - 更強大的unittest,更多的斷言,支持模塊級的設置/拆解,跳過測試等...
- dutest - 面向對象的接口,用於從doctests中檢索unittest測試用例。通過允許每個交互式示例的setUp和tearDown來隱藏doctests的初始化。允許控制doctest提供的所有選項。專用類允許跨包層次結構進行選擇性測試發現。
- green - 綠色是一個簡潔多彩的testrunner,跟鼻很像
- ddt - 讓unittest支持數據驅動
- pytractor Selenium python bindings的擴展。目的是讓角項目的測試更簡單
TDD ATDD BDD測試框架
- BDD
- behave - BDD框架
- Lettuce - 又一個BDD框架
- lettuce-tools - 一整套生菜擴展,讓BDD更加簡單
- contexts - Python的描述性測試工具
- mamba - python的權威測試工具
- pyvows - 異步的行為驅動開發測試工具
- pytest-bdd - py.test runner的BDD庫
- robotframework - 最有名的驗收測試驅動開發(ATDD)測試框架
- awesome-robotframework - 各種rf的擴展庫
- radish-bdd - BDD框架,支持gherkin語言
Assertion
Discipline
- pyshould - 基於pyhamcrest的風格斷言
- pyhamcrest - python版的Hamcrest matchers
- sure -python實現的測試庫,提供了強大靈活的斷言
- assertpy - 巨簡單的python單元測試斷言庫,提供了優雅流利的API。支持Python 2和3。
Discipline
- mock - python實現的Mocking和Patching庫
- Ludibrio - 用python實現的優雅的測試雙幀框架(模擬,存根,間諜和假人)。
- 回复 - mock請求的Python測試工具庫
- doublex - 強大的test double frame框架
- freezegun - 通過mocking datetime模塊實現時光穿梭
- httpretty - HTTP請求的模擬工具
- httmock - 要求的模擬工具,支持Python 2.6+和3.2+。
- 偽裝者 - 測試用的假服務器
- mock-server - 簡單的mock sever,支持REST和XML-RPC API,還有基於tornado的管理界面
- VCR.py - 自動模擬HTTP交互讓測試更簡單快速
Python的測試數據生成及代碼掃描工具
測試數據操作測試數據的操作和處理
- faker - 生成假數據的python庫
- fake2db - 創建假數據庫
- ForgeryPy - 使用起來很簡單的假數據生成庫。
- radar - 隨機生成時間
- robotframework-faker - faker的機器人框架封裝
- hypothesis - 基於Haskell庫Quickcheck的基於屬性的Python測試庫。
- factory_boy - factory_girl的python版本
- fauxfactory - 隨機數據生成器
代碼分析代碼掃描及分析
- pysonar2 - 類型推斷
- coverage - 覆蓋率
- pycallgraph - 流程可視化
- Flake8 - 模塊化源代碼檢查器:pep8,pyflakes和co。
- pylama - Python和JavaScript的代碼審查工具
- pylint的 -源代碼分析器
- hacking - OpenStack黑客風格檢查(flake8插件)。
- prospector2 - 代碼分析工具,可以輸出錯誤信息,潛在問題,不規範的代碼以及代碼複雜度
Python的自動化測試工具
Web UI測試自動化Web UI自動化
- 函式庫
- selenium webdriver - 瀏覽器自動化工具
- splinter - 簡單的web自動化工具,讓元素定位,表單提交等更加容易
- mechanize - 有狀態可編程的瀏覽器
- 框架和包裝框架和封裝
- py.saunter - 有主見的自動化測試框架,使用了selenium RC和webdriver api
- moz-web-qa - py.test的插件,為Mozilla的WebQA項目提供了額外功能
- testutils sst - 一個Web測試框架,它使用Python生成基於瀏覽器的功能測試。
- wtframework - 讓web測試可以配置的框架
- holmium.core - Page Object及其他工具庫支持
- robotframework-selenium2library - Robot Framework的selenium擴展
- gocept.selenium - selenium RC的API,適合編寫基於WSGI,Plone,Zope 2,ZTK或Grok應用的測試用例
- webium - 基於python的一個Page Object實現
- robotframework-anywherelibrary - Robot Framework的擴展庫,使用selenium2測試web應用,使用appium測試移動應用
- robotframework-pageobjects - 一個不錯的Page Object實現,可以脫離機器人框架單獨使用。具體看這裡
- elementium - 用jQuery風格的語法糖來實現瀏覽器的自動化測試用例
- slickqa - slick -webdriver-python項目是python selenium binding的一個封裝
- selene - 簡明的UI測試用例,使用python實現支持Ajax,PageObjects和Widgets
- hitch - 編寫基於service的應用的測試用例
- Needle - Needle是基於圖片比對的測試工作,它可以對web應用的一部分進行截圖,然後跟預期結果的圖片進行比對
- PyPOM - PyPOM是另一個Page Object庫,適用於Selenium和Splinter測試
- POM - POM是Page-Object-Model微框架,目的是讓Web UI測試更加簡單,快速和有樂趣
- websmith - Web測試的一套 DSL
- pages - 輕量的頁面對像庫和組建
- widgetastic - RedHat UI小部件組建框架
- navmazing - 來自RedHat的基於頁面對象的導航
- nightwatch -基於蟒蛇和硒的UI自動化測試框架。靈感來源於nightwatch.js
- 擴展
- webdriver_manager - 主要目的是讓不同版本的瀏覽器driver管理起來更加方便
- pytest_splinter - pytest spinter和selenium的集成
- lettuce_webdriver - Selenium webdriver的生菜封裝
- Browsermob Proxy - python的Browsermob Proxy封裝
- FireRobot - 一個Firefox的擴展,讓你可以更高效的編寫基於機器人框架的selenium用例
- pytractor - Python的selenium擴展,以便更好的測試angular.js應用
- Selenium-Requests - 擴展Selenium WebDriver類,包括了Requests庫的一些功能,可以更方便的處理cookie和請求頭
- selenium-respectful - selenium的封裝,可以並行訪問站點
行動裝置 - 自動化測試工具
- appium - 開源的自動化測試框架,可以測試native / hybrid / mobile web應用。核心是基於webdriver協議進行了擴展
- Winium.StoreApps - 開源的自動化測試用具,用來測試Windows Store應用,實現了Selenium Remote WebDriver
- robotframework-androidlibrary - Robot Framework 用來測試android應用的擴展庫
- robotframework-appiumlibrary - appium的RobotFramework擴展
- robotframework-ioslibrary -Robot的ios測試擴展庫
- uiautomator - Android uiautomator的python封裝,支持Android 4.1+
- ATX - 智能機自動化測試工具。支持iOS,Android,WebApp和遊戲
Windows UI測試自動化Windows的UI測試工具
- Winium.Desktop - 測試Windows應用(主要是基於WinForms和WPF平台)的自動化測試工具。實現了Selenium Remote WebDriver協議
- PyAutoGUI - 跨平台的GUI測試工具,支持通過python腳本控制鍵盤和鼠標
- robotframework-autoitlibrary - Robot Framework的windows GUI測試擴展
- autopy - 簡單跨平台的GUI測試工具集
- UISoup - 支持windows和MacOS平台的UI自動化(僅工作在x86平台)
- pywinauto - 非常有python面向對像風格的GUI測試庫,現已支持64位機器以及py2和py3
- SikuliX - 基於OpenCV的GUI測試框架,使用圖片識別技術,支持python2.7
Unix \ Linux UI測試自動化
MacOS UI測試自動化MacOS UI自動化測試工具
- ATOMac - 通過Apple Accessibility API來測試Mac應用的python庫
- PyAutoGUI - 跨平台的GUI測試工具,支持通過python腳本控制鍵盤和鼠標
- SikuliX - 基於OpenCV的GUI測試框架,使用圖片識別技術,支持python2.7
Python安全測試API測試及性能測試資源
REST API測試REST API測試
- Rester - 測試RESTful API的框架
- pyresttest - REST以及API microbenchmarking工具
- Rest - Python REST客戶端
虛擬環境虛擬環境
- virtualenv - 創建隔離的python開發環境的工具
- virtualenvwrapper - virtualenv的一些擴展
- tox - 虛擬環境管理,可以在不同的python版本上進行測試和截圖
- pew - 一些管理虛擬環境的工具
- Vex - 在命名的虛擬環境運行命令
- PyRun - 單文件無需按照的python版本
- pyenv - 簡單的python版本管理
- Tapper - 全方位的測試基礎設施。
性能和壓力與負載性能測試
- Multi-Mechanize - 開源的性能測試框架
- locust - 可擴展的python性能測試工具
- Yandex.Tank - 性能及基準工具
- pytest-benchmark - py.test的基準工具
- Airspeed Velocity - 簡單的Python基準測試工具自帶基於web的報告
- Grinder - 支持分佈式的負載測試框架。包含一些常規用例,比如HTTP Web服務器,SOAP和REST Web服務,和應用服務器(CORBA,RMI,JMS,EJB),以及定制化的協議。測試腳本使用的Jython和Clojure的實現
- Tsung - 開源,支持多協議的分佈式性能測試工具。可以測試HTTP,WebDAV,SOAP,PostgreSQL,MySQL,LDAP和Jabber / XMPP服務
- taurus - 自動化友好的持續測試工具
安全檢查安全掃描
- sparta - 支持gui的網絡掃描工具
- OWASP ZAP - 用python實現的OWASP ZAP-features API
- pythem - pythem是多用途的安全測試工具