测试开发
UI测试
本文持续更新中,最新版本:
交流QQ群:python 测试开发 144081101
wechat: pythontesting
淘宝天猫可以把链接发给qq850766020,为你生成优惠券,降低你的购物成本!
快来领取支付宝跨年红包!1月1日起还有机会额外获得专享红包哦!复制此消息,打开最新版支付宝就能领取!2C56CV70sA
-
appium - 移动端UI自动化测试。 链接
-
selenium - web UI自动化测试。 链接
-
uiautomator- 安卓UI自动化测试。 链接
-
pyautoacad - AutoCAD自动化。 链接
-
sikuli - 位图自动化。 链接
-
monkeyrunner- 安卓自动化。 链接
-
pywinauto - Windows UI自动化。 链接
-
ldtp - Linux UI自动化。 链接
-
dogtail- Linux UI自动化。 链接
-
pyautogui- 跨平台的UI自动化工具,控制鼠标和键盘。 链接
-
pyautoit- autoit python api。 链接
-
splinter - web UI测试工具,基于selnium封装。 链接
-
雪峰磁针石说明:
autopy、WATSUP、winGuiAuto因为较长时间未更新未收录
性能测试
-
funkload - 性能及功能测试工具。 链接 --推荐
-
multi-mechanize - python性能测试工具,基于多进程和多线程,是学习性能测试goon工具的佳品。 链接 --推荐
-
locust - 强大的性能测试工具,使用了协程。 链接 --推荐
-
ngrinder - 市面上最强大的性能测试工具之一,主要用jython书写脚本,性能在loadrunner和jmeter之上,扩展性好。 链接 --推荐
-
boom - 类似ab(ApacheBench)的性能测试工具。 链接
测试框架
-
Hypothesis - 高级单元测试测试框架,支持行为驱动,基于property 。 链接
-
unittest - (Python 标准库) 单元测试框架 链接
-
mamba - 行为驱动测试框架。 链接
-
nose- 更好的单元测试框架。 链接
-
nose2- nose基于unittest2的版本。 链接
-
pytest- 很好的强大的单元测试框架,实际上广泛使用在自动化单元、接口、功能等测试。 链接
-
Robot Framework- 通用的python测试框架,易于上手,生成的报告比较好看,适合小型公司使用,支持关键字和数据等驱动,系业界内很出名的框架。不过因为写用例不能很灵活的应用python,需要大量的python封装,大公司通常使用pytest,django,flask之类的库自行开发。 链接
-
pytest- 很好的强大的单元测试框架,实际上广泛使用在自动化单元、接口、功能等测试。 链接
-
green- 彩色(命令行能显示多种颜色)的单元测试框架。 链接
-
tox- 基于virtualenv的测试框架,主要用于解决多版本python问题。 链接
-
sixpack- A/B 测试框架。 链接
Mock
-
doublex:强大的测试桩框架。链接
-
mock:(Python3 标准库) mock和patch。链接
-
freezegun:伪造时间。[链接]https://github.com/spulec/freezegun)
-
httmock:Python 2.7+ 和 3.4+ mock requests库。链接
-
httpretty:Python 的 HTTP 请求 客户端mock 工具,暂时不支持python3。链接
-
responses:针对requests 库的mock库。链接
-
VCR.py:录制HTTP请求加快测试执行速度并可进行mock。链接
-
factoryboy:Python测试fixtures(setup和teardown)替代库。链接
-
mixer:另外一个测试fixtures(setup和teardown)替代库,支持 Django, Flask, SQLAlchemy, Peewee 等。链接
-
modelmommy:为 Django测试创建随机fixtures 链接
-
faker:生成多种伪数据。链接
-
fake2db:伪造数据库生成器。链接
-
mimesis:生成mock数据。[链接]https://github.com/lk-geimfari/mimesis)
-
雪峰磁针石说明:
radar 因为github星级太少而未收录
其他测试工具
-
coverage:代码覆盖率。链接
-
FuckIt.py:代码出错也可以执行。链接
持续交付
-
buildbot - google等公司使用的持续集成框架,上手比Jenkins难,功能和性能远比Jenkins强大。 链接
-
BitBake – 嵌入式Linux上类似make工具。链接
-
buildout – 用于从多个部分创建,组装和部署应用程序的构建系统。链接
-
PlatformIO – 在不同的开发平台的控制台构建工具。链接
-
PyBuilder – 纯Python编写的持续构建工具。链接
-
SCons – 软件构建工具。链接
awesome-python
管理面板
用于管理界面的库。
-
Ajenti - Linux & BSD web管理面板。管理进程和文件等。 链接
-
django-suit - 现代主题的Django管理界面(仅限非商业用途)。链接
-
django-xadmin - 方便的Django admin替代。 完全支持插件扩展,基于 Twitter Bootstrap,并有站内书签、支持 xls, csv, xml和json数据导入等不少增强。 链接
-
flask-admin - Flask的简单和可扩展的 web 管理界面框架。 链接
-
flower - Celery的实时监控和网络。 链接
-
Grappelli - Django管理界面的爵士皮肤。[链接]https://github.com/sehmaschine/django-grappelli)
-
Wooey - 为Python脚本创建自动Web UI的Django应用程序。 链接
算法和设计模式
Python的算法和设计模式的实现。
-
algorithms - Python的算法模块。 链接
-
PyPattyrn - 简单有效实现通用设计模式。 链接
-
python-patterns - Python中设计模式的集合。 链接
-
sortedcontainers - SortedList,SortedDict和SortedSet类型的快速,纯Python实现。 链接
反病毒
django-simple-spam-blocker因为github星级太少而未收录
资产管理
用于管理,压缩和缩小网站资产的工具。
-
django-compressor - 将链接和内联的JavaScript或CSS压缩到单个缓存文件中。 链接
-
django-pipeline - Django的资产包装库。 链接
-
django-storages - Django自定义存储后端集。 链接
-
fanstatic - 用 Python 的包的方式封装,优化静态文件并解依赖。 链接
-
fileconveyor - 检测和同步文件到CDN,S3和FTP的后台程序。 链接
-
flask-assets - 集成web 资源到Flask应用。 链接
-
jinja-assets-compressor - Jinja扩展程序,用于编译和压缩资源。 链接 -- github星级不到100.
-
webassets - 为静态资源打包,优化和管理基于缓存的唯一URL。 链接
音频
操作音频的库。
-
audiolazy - 数字信号处理(DSP)软件包。 链接
-
audioread - 跨库(GStreamer +Core Audio+ MAD + FFmpeg)音频解码。链接
-
beets - 音乐库管理和MusicBrainzb标签。链接 -- 推荐
-
dejavu - 音频指纹识别。链接 -- 推荐
-
id3reader - 用于读取MP3元数据的Python模块。链接
-
m3u8 - 解析m3u8文件的模块。链接
-
mingus - 先进的音乐理论和MIDI文件和播放支持符号包。链接
-
mutagen - 用于处理音频元数据的Python模块。链接
-
pyAudioAnalysis - Python音频分析库:特征提取,分类,分割和应用。链接 -- 推荐
-
pydub - 通过简单易用的高级界面处理音频。链接 -- 推荐
-
pyechonest - Echo Nest API的Python客户端。链接
-
talkbox - 用于语音/信号处理的Python库。链接
-
TimeSide - 开放的Web音频处理框架。链接
-
tinytag - 用于读取MP3,OGG,FLAC和Wave文件的音乐元数据的库。链接
-
雪峰磁针石说明:
django-elastic-transcoder, eyeD3 因为github星级太少而未收录
scikits.talkbox 因长时间未更新未收录
认证
-
Authomatic:简单但是强大的框架,身份验证/授权客户端。链接
-
django-allauth:Django 的验证应用。链接
-
django-oauth-toolkit: Django OAuth2。链接
-
django-oauth2-provider:Django OAuth2。链接
-
Flask-OAuthlib: Flask OAuthlib 。链接
-
OAuthLib: 通用完整的实现OAuth请求-签名逻辑。链接
-
python-oauth2:创建 OAuth 客户端和服务端完全测试的抽象接口。链接
-
python-social-auth:设置简单的社交认证。链接
-
rauth:OAuth 1.0/a, 2.0, 和 Ofly。链接
-
sanction:一个超级简单的OAuth2 客户端实现。链接
-
PyJWT:JSON Web 令牌草案 01。链接
-
python-jwt:生成和验证 JSON Web 令牌。链接
-
雪峰磁针石说明:
jose,python-jws因为github星级太少而未收录
scikits.talkbox 因长时间未更新未收录
CMS
内容管理系统
-
django-cms:开源的,基于Django的企业级 CMS。链接
-
djedi-cms:轻量级但却非常强大的 Django CMS ,考虑到了插件,内联编辑以及性能。[链接]http://djedi-cms.org/)
-
FeinCMS:基于 Django 构建的最先进的内容管理系统之一。链接
-
Kotti:高层的的web应用框架,基于 Pyramid 构建。链接
-
Mezzanine:强大的,一致的,灵活的内容管理平台。链接 -- 推荐
-
Opps:杂志,报纸网站以及大流量门户网站设计的 CMS 平台,基于 Django。[链接]https://github.com/opps/opps)
-
Plone:构建于开源应用服务器 Zope 之上的 CMS。链接
-
Quokka:灵活,可扩展的小型 CMS,基于 Flask 和 MongoDB。链接
-
Wagtail:Django 内容管理系统。链接 -- 推荐
-
Widgy: CMS 框架,基于 Django。链接
缓存
缓存数据的库。
-
Beaker:缓存和会话库,可以用在 web 应用和独立 Python脚本和应用上。链接
-
DiskCache:Python磁盘缓存(Django兼容)。。链接
-
django-cache-machine:Django 模型的自动缓存和失效。链接
-
django-cacheops:具有自动颗粒化事件驱动失效功能的 ORM。链接
-
dogpile.cache:dogpile.cache 是 Beaker 的替代,由同一作者开发。链接
-
HermesCache:Python 缓存库,具有基于标签的失效和 dogpile effect 保护功能。链接
-
johnny-cache:django应用缓存框架。[链接]https://github.com/jmoiron/johnny-cache)
-
pylibmc:libmemcached 接口的 Python 封装。链接
-
雪峰磁针石说明:
django-viewlet因为github星级太少而未收录
自动聊天工具
- Errbot:最简单和最流行的聊天机器人用来实现自动聊天工具。链接
代码分析和lint
-
coala:语言独立和易于扩展的代码分析应用程序。链接
-
code2flow:把你的 Python 和 JavaScript 代码转换为流程图。暂时无法继续维护。链接
-
pycallgraph:这个库可以把你的Python 应用的流程(调用图)进行可视化。链接
-
Flake8:模块化源码检查工具: pep8, pyflakes 以及 co。链接
-
Pylint:一个完全可定制的源码分析器。链接
-
pylama:python代码审计。链接
-
YAPF: Google的Python代码格式化工具。链接 --推荐
-
pylama:Python 和 JavaScript 的代码审查工具。链接
-
autopep8:自动格式化 Python 代码,以使其符合 PEP8 规范。链接 --推荐
-
mypy :静态类型检查。链接 --推荐
-
pep8 :python风格检查。链接 --推荐
命令行工具。
命令行程序开发
-
asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级API。链接
-
cement:Python 的命令行程序框架。链接
-
click:一个通过组合的方式来创建精美命令行界面的包。链接 --推荐
-
cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。链接
-
clint:Python 命令行程序工具。链接
-
colorama:跨平台彩色终端文本。链接
-
docopt:Python 风格的命令行参数解析器。链接 --推荐
-
Gooey:一条命令,将命令行程序变成一个 GUI 程序。链接
-
Python-Fire:将命令行程序变成一个 GUI 程序。链接 --推荐
-
python-prompt-toolkit:构建强大的交互式命令行程序的库。链接 --推荐
-
Pythonpy:在命令行中直接执行任何Python指令。链接
生产力工具
-
aws-cli:Amazon Web Services 的通用命令行界面。链接
-
bashplotlib:在终端中进行基本绘图。链接
-
caniusepython3:判断是哪个项目妨碍你你移植到 Python 3。链接
-
cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。链接
-
doitlive:一个用来在终端中进行现场演示的工具。链接
-
howdoi:通过命令行获取即时的编程问题解答。链接 --推荐
-
httpie:命令行HTTP 客户端,cURL 的替代品,易用性更好。链接
-
PathPicker:从bash输出中选出文件。链接
-
percol:向UNIX shell 传统管道概念中加入交互式选择功能。链接
-
SAWS:一个加强版的 AWS 命令行。链接
-
thefuck:修正你之前的命令行指令。链接
-
mycli:一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。链接 --推荐
-
pgcli:Postgres 命令行工具,具有自动补全和语法高亮功能。链接 --推荐
-
try:很简单的命令行工具,用来试用python库。链接
兼容性
帮助从 Python 2 向 Python 3迁移的库。
计算机视觉
计算机视觉库。
-
OpenCV:开源计算机视觉库。链接
-
pyocr:Tesseract 和 Cuneiform 的包装库。链接
-
pytesseract:Google Tesseract OCR 的另一包装库。链接
-
SimpleCV:一个用来创建计算机视觉应用的开源框架。链接
并发和并行及异步与网络
用以进行并发和并行操作的库。
-
multiprocessing:(Python 标准库) 基于进程的“线程”接口。链接 --推荐
-
threading:(Python 标准库)更高层的线程接口。 链接 --推荐
-
eventlet:支持 WSGI 的异步框架。链接
-
gevent:一个基于协程的 Python 网络库,使用greenlet。链接 --推荐
-
Tomorrow:用于产生异步代码的神奇的装饰器语法实现。 链接
-
uvloop:在libuv之上超快速实现asyncio事件循环。链接 --推荐
-
asyncio - (Python 标准库) 异步 I/O, 事件循环, 协程以及任务 链接 --推荐
-
aiohttp 异步http client/server框架(asyncio) 链接 --推荐
-
curio 协程并发库. 链接
-
pulsar - 事件驱动的并发框架. 链接
-
pyzmq - ZeroMQ 消息库的 Python 封装. 链接
-
Twisted - 事件驱动的网络引擎. 和asyncio有很多类似的地方,逐渐被代替,需要数据库等相关生态圈的支持 链接
-
diesel - 基于Greenlet 的事件 I/O 框架。. 链接
-
Tornado - web 框架和异步网络库. 链接
-
Trio – 异步I/O 链接 可能会飙升
-
NAPALM - 处理网络设备的跨供应API. 链接
-
txZMQ - 基于 Twisted 的 ZeroMQ 消息库的 Python 封装。链接
动态消息
用来创建用户活动的库。
ORM
实现对象关系映射或数据映射技术的库。
关系型数据库
-
Django Models:Django 的一部分。链接
-
SQLAlchemy:Python SQL 工具以及对象关系映射工具。链接
-
awesome-sqlalchemy系列 链接
-
Peewee:一个小巧,富有表达力的 ORM, 支持postgresql, mysql and sqlite。[链接]https://github.com/coleifer/peewee)
-
PonyORM:提供面向生成器的 SQL 接口的 ORM。链接
-
python-sql:编写 Python 风格的 SQL 查询。链接
NoSQL 数据库
-
django-mongodb-engine:Django MongoDB 后端。链接
-
PynamoDB:Amazon DynamoDB 的一个 Python 风格接口。链接
-
flywheel:Amazon DynamoDB 的对象映射工具。链接
-
MongoEngine:Python 对象文档映射工具,用于 MongoDB。链接
-
hot-redis:为 Redis 提供 Python 丰富的数据类型。链接
-
redisco:一个 Python 库,提供可以持续存在在 Redis 中的简单模型和容器。链接
其他
包管理
管理包和依赖的工具。
包仓库
本地 PyPI 仓库服务和代理。
-
warehouse:下一代 PyPI。链接
-
Warehouse:链接
-
bandersnatch:PyPA 提供的 PyPI 镜像工具。链接
-
devpi:PyPI 服务和打包/测试/分发工具。链接
-
localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。链接
分发
打包为可执行文件以便分发。
-
PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。链接
-
dh-virtualenv:构建并将 virtualenv 虚拟环境作为Debian 包来发布。链接
-
Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。链接
-
py2app:将 Python 脚本变为独立软件包(Mac OS X)。链接
-
py2exe:将 Python 脚本变为独立软件包(Windows)。链接 --已经比较久没有更新了。
-
pynsist:用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。链接