Python测试框架

xUnit frameworks 单元测试框架

  • frameworks 框架
    • unittest - python自带的单元测试库,开箱即用
    • unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本
    • pytest - 成熟且功能强大的单元测试框架
    • plugincompat - pytest的执行及兼容性插件
    • nosetests - 让python测试更容易一点
    • slash - python实现的单元测试框架

 

  • extensions 扩展
    • proboscis - 仿TestNG扩展了unittest模块以及Nose的功能
    • grail - 可以让你一步一步编写测试用例的库
    • testify - 单元测试框架,提供了加强型fixture,用例切割并行运行,testrunner高亮及详尽的log和report功能
    • trial - unittest模块的扩展,提供了命令行的testrunner工具以及代码覆盖率的整合,跟nose差不多
    • subunit - 提供了unittest在另一个进程执行用例并汇总测试数据的能力
    • testresources - 提供了多用例间管理测试数据的机制,兼容unittest
    • testtools - 为Twisted和Bazaar提供的unittest扩展
    • Sancho - 运行用例,并为失败的用例提供报告,但仅限于此
    • zope.testing - testrunner,提供了不错的debuge能力,并且集成了代码覆盖率。可以跟zope项目使用,也可以用在非zope项目上
    • pythoscope - 自动或半自动为遗留的python系统创建测试用例的工具
    • testlib - 更强大的unittest,更多的断言,支持module级的setup/teardown,skip test等...
    • dutest - An object oriented interface to retrieve unittest test cases out of doctests. Hides initialization from doctests by allowing setUp and tearDown for each interactive example. Allows control over all the options provided by doctest. Specialized classes allow selective test discovery across a package hierarchy.
    • green - Green是一个简洁多彩的testrunner,跟nose很像
    • ddt - 让unittest 支持 Data-Driven
    • pytractor Selenium python bindings的扩展. 目的是让angular项目的测试更简单

 

TDD ATDD BDD 测试框架

 

  • Assertions 断言
    • pyshould - 基于pyhamcrest的Should style断言
    • pyhamcrest - python版的Hamcrest matchers
    • sure -python实现的测试库,提供了强大灵活的断言
    • assertpy - 巨简单的python单元测试断言库,提供了优雅流利的API. 支持Python 2 和 3.

 

  • Mocking
    • mock - python实现的Mocking和Patching库
    • Ludibrio - 用python实现的优雅的test doubles框架(mocks, stubs, spy, and dummies).
    • responses - mock请求的 Python测试工具库
    • doublex - 强大的 test doubles 框架
    • freezegun - 通过mocking datetime模块实现时光穿梭
    • httpretty - HTTP请求的mock工具
    • httmock - requests的mock工具,支持Python 2.6+ and 3.2+.
    • pretenders - 测试用的fake server
    • mock-server - 简单的mock sever,支持REST and XML-RPC API,还有基于tornado的管理界面
    • VCR.py - 自动 mock HTTP 交互 让测试更简单快速

Python测试数据生成及代码扫描工具

Test Data manipulation 测试数据的操作和处理

Code analysis 代码扫描及分析

  • pysonar2 - 类型推断

  • coverage - 覆盖率
  • pycallgraph - 流程可视化
  • Flake8 - The modular source code checker: pep8, pyflakes and co.
  • pylama - Python and JavaScript的代码审查工具
  • Pylint - 源代码分析器
  • hacking - OpenStack Hacking Style Checks (flake8 plugins).
  • prospector - 代码分析工具,可以输出错误信息,潜在问题,不规范的代码以及代码复杂度

Python自动化测试工具

Web UI test automation Web UI 自动化

  • libraries 各种库
    • selenium webdriver - 浏览器自动化工具
    • splinter - 简单的web自动化工具,让元素定位,表单提交等更加容易
    • mechanize - 有状态可编程的浏览器

 

  • frameworks and wrappers 框架和封装
    • py.saunter - 有主见的自动化测试框架,使用了selenium RC和webdriver api
    • moz-web-qa - py.test的插件,为Mozilla的WebQA项目提供了额外功能
    • testutils sst - A web test framework that uses Python to generate functional browser-based tests.
    • wtframework - 让web测试可以配置的框架
    • holmium.core - Page Object及其他工具库支持
    • robotframework-selenium2library - Robot Framework的selenium扩展
    • gocept.selenium - selenium RC的API, 适合编写基于WSGI, Plone, Zope 2, ZTK, or Grok 应用的测试用例
    • webium - 基于python的一个Page Object实现
    • robotframework-anywherelibrary - Robot Framework的扩展库,使用selenium2测试web应用,使用appium测试移动应用
    • robotframework-pageobjects - 一个不错的Page Object实现,可以脱离robot framework单独使用。 具体看这里
    • elementium - 用jQuery风格的语法糖来实现浏览器的自动化测试用例
    • slickqa - slick-webdriver-python 项目是python selenium binding的一个封装
    • selene - Concise 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 - 轻量的page object库和组建
    • widgetastic - RedHat UI widget 组建框架
    • navmazing - PageObjects based navigation from RedHat
    • nightwatch - 基于python和selenium的UI 自动化测试框架. 灵感来源于nightwatch.js

 

  • extensions 扩展
    • webdriver_manager - 主要目的是让不同版本的浏览器driver管理起来更加方便
    • pytest_splinter - pytest spinter 和 selenium的集成
    • lettuce_webdriver - Selenium webdriver 的 lettuce封装
    • Browsermob Proxy - python的Browsermob Proxy封装
    • FireRobot - 一个Firefox的扩展,让你可以更高效的编写基于robot framework的selenium用例
    • pytractor - Python的selenium扩展,以便更好的测试angular.js应用
    • Selenium-Requests - 扩展 Selenium WebDriver类,包含了Requests库的一些功能,可以更方便的处理cookie和请求头
    • selenium-respectful - selenium的封装,可以并行访问站点

 

Mobile test automation 移动端自动化测试工具

  • 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 test automation 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 test automation

  • ldtp - 跨平台的linux GUI测试项目
  • fMBT - 支持多平台的python GUI测试库
  • SikuliX - 基于OpenCV的 GUI 测试框架, 使用图片识别技术,支持python2.7

 

MacOS UI test automation MacOS UI自动化测试工具

  • ATOMac - 通过Apple Accessibility API来测试Mac应用的python库
  • PyAutoGUI - 跨平台的GUI测试工具,支持通过python脚本控制键盘和鼠标
  • SikuliX - 基于OpenCV的 GUI 测试框架, 使用图片识别技术,支持python2.7

python安全测试API测试及性能测试资源

REST API Testing REST API测试

  • Rester - 测试RESTful API的框架

  • pyresttest - REST以及API microbenchmarking工具

  • siesta - Python REST 客户端

Virtual environments 虚拟环境

  • virtualenv - 创建隔离的python开发环境的工具

  • virtualenvwrapper - virtualenv的一些扩展

  • tox - 虚拟环境管理,可以在不同的python版本上进行测试和截图

  • pew - 一些管理虚拟环境的工具

  • Vex - 在命名的虚拟环境运行命令

  • PyRun - 单文件无需按照的python版本

  • pyenv - 简单的python版本管理

  • Tapper - all-embracing test infrastructure.

Performance & stress & load 性能测试

  • Multi-Mechanize - 开源的性能测试框架

  • locust - 可扩展的python性能测试工具

  • Yandex.Tank - 性能及benchmark工具

  • pytest-benchmark - py.test的benchmark工具

  • Airspeed Velocity - 简单的Python benchmarking工具自带基于web的报告

  • The Grinder - 支持分布式的负载测试框架. 包含一些常规用例,比如 HTTP web servers, SOAP and REST web services, 和 application servers (CORBA, RMI, JMS, EJBs),以及定制化的协议. 测试脚本使用Jython和Clojure实现

  • Tsung - 开源,支持多协议的分布式性能测试工具. 可以测试 HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP 服务

  • taurus - 自动化友好的持续测试工具

Security checking 安全扫描

  • sparta - 支持gui的网络扫描工具

  • OWASP ZAP - 用python实现的OWASP ZAP-features API

  • pythem - pythem是多用途的安全测试工具

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!