2019年3月19日 星期二

python 測試框架工具

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測試框架

  Assertion
  • 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的測試數據生成及代碼掃描工具

測試數據操作測試數據的操作和處理
代碼分析代碼掃描及分析

  • 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測試自動化

  • ldtp  - 跨平台的linux GUI測試項目
  • fMBT  - 支持多平台的python GUI測試庫
  • SikuliX  - 基於OpenCV的GUI測試框架,使用圖片識別技術,支持python2.7
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是多用途的安全測試工具

 Ubuntu has a mechanism, that is, the installed network card (NIC) will be renamed to another name when the system is booted. Although there...