Skip to content

Latest commit

 

History

History
413 lines (293 loc) · 33.3 KB

testing.md

File metadata and controls

413 lines (293 loc) · 33.3 KB

真棒的Python测试真棒 Awesome

用于测试和生成测试数据的真棒Python资源的集合。

awesome-python-testing 收集了python测试相关库。

赞赏或进入python技术群:钉钉或微信 pythontesting、 支付宝xurongzhong#gmail.com, 请将#替换为@。

python测试开发钉钉群:21745728,目前800多人,另有几千人的python测试开发微信群,可联系 钉钉或微信号 pythontesting 加群(备注:python)!

python八字排盘 目前市面上功能最强大的八字排盘,科学的尽头是道教,玄学。

内容

断言

  • expects - 用于Python的表达式和可扩展的TDD/BDD断言库。
  • expycted - 另一个Python期望模式实现。简单、直观、平易近人,能够插入到任何依赖断言的测试框架中。
  • dirty-equals - 使用了__eq__方法,使Python代码(一般是单元测试)更具有声明性,因此更容易阅读和编写。
  • Precisely - 允许你编写精确的断言。
  • PyHamcrest - 编写匹配器对象的框架,允许你声明式地定义 "匹配 "规则。
  • sure - 一个具有人性化的失败信息的成语断言工具包,灵感来自于RSpec Expectations和should.js。

行为驱动的开发

  • behave - 是行为驱动的开发,Python风格。 ★★★
  • lettuce - 用于Python的行为驱动开发工具,灵感来自Cucumber for Ruby。 ★
  • mamba - Python的权威测试工具。诞生于BDD的旗帜下。

代码覆盖率

  • Coverage.py - 是一个用于测量Python程序代码覆盖率的工具。 ★★★
  • diff_cover - 自动找到需要测试覆盖的diff行。

契约设计

  • deal - 为Python提供静态检查器和测试生成的合同设计。
  • icontract - 在Python3中通过合同进行设计,具有丰富的违规信息和继承性。

数据Fake

  • faker - 可以生成假数据的Python包。 ★★★★★
  • fake2db - 假的数据库生成器。 ★★
  • mimesis - 帮助你生成假数据的Python库。 ★★★

负载测试

  • Locust - 用Python编写的可扩展的用户负载测试工具。 ★★★★★ 开源性能测试之王。

内存管理

  • filprofiler - 用于数据处理和科学计算应用的Python内存分析器。
  • Guppy 3 - Python编程环境和堆分析工具集。
  • Pympler - 用于测量、监控和分析运行中的Python应用程序中Python对象的内存行为。★★
  • tracemalloc - 用于跟踪Python分配的内存块。 ★★★

Mock和存根

  • Aioresponses - 是Python aiohttp包中模拟/假网络请求的辅助工具。
  • Cornell - 记录和重放模拟服务器。
  • doublex - 用于Python的强大的测试替身框架。
  • freezegun - 通过模拟日期时间模块来穿越时间。 ★★
  • httmock - 为Python 2.6以上和3.2以上的requests提供的mock库。
  • httpretty - Python的HTTP请求模拟工具。 ★★
  • mock - (Python标准库) ★★
  • mocket - 支持gevent/asyncio/SSL的socket mock框架。
  • Mockintosh - 旨在提供通常的HTTP模拟服务功能,资源占用小,使其对微服务应用友好。
  • moto - 允许你轻松地模拟基于AWS基础设施的测试。 ★★★★★
  • Pretend - 使Python的stub更容易。
  • response - 一个用于模拟Requests的Python库。
  • time-machine - 在你的测试中穿越时间。
  • VCR.py - 在你的测试中记录和回放HTTP交互。 ★★

突变测试

  • Cosmic Ray - 对你的源代码进行小的修改,对每个修改运行你的测试套件。。
  • Mutmut - 用于Python的突变测试系统,非常注重使用的方便性。

对象工厂

  • factory_boy - 测试夹具替代工具。 ★★
  • mixer - 另一个夹具的替代品。支持Django, Flask, SQLAlchemy, Peewee等。
  • Model Bakery - 为你提供一种聪明的方式来创建Django中的测试夹具。
  • pydantic-factories - 为基于pydantic的模型提供模拟数据生成。

渗透测试

基于属性的测试

  • Atheris - 是一个覆盖引导的Python模糊测试引擎。它支持Python代码的模糊测试,但也支持为CPython编写的本地扩展。
  • Hypothesis - 是一个高级Quickcheck风格的基于属性的测试库。 ★★★★★

REST API测试

  • Dredd - 语言无关的命令行工具,用于验证API描述文档与API的后端实现。 ★★★
  • HttpRunner - 简单、优雅、但功能强大的HTTP(S)测试框架。 ★★★
  • Schemathesis - 对使用Open API/Swagger规范构建的Web应用进行基于属性的自动测试的工具。
  • SnapshotTest - 不写实际测试案例的情况下测试你的API的方法。
  • playback - 一个基于Python装饰器的框架,可以让你 "记录 "和 "回放 "操作(如API请求,工人从队列中消耗作业)。
  • RESTler - 是第一个有状态的REST API模糊工具,用于通过其REST API自动测试云服务,并在这些服务中找到安全和可靠性的缺陷。 ★★
  • Tavern - 是一个用于自动测试API的pytest插件、命令行工具和Python库,其语法简单、简洁、灵活,基于YAML。

速度

  • Pytest-incremental - 分析你的项目结构和测试运行之间的文件修改,以修改测试的执行顺序和取消选择测试。
  • pytest-testmon - 选择受更改文件影响的测试。当与pytest-watch一起使用时,可以连续测试运行器。
  • Awesome pytest speedup - 加快你的pytest套件的最佳做法的清单。

静态检查

  • awesome-flake8-extensions - flake8扩展列表。
  • awesome-python-typing - 收集了很棒的Python类型、存根、插件和使用它们的工具。
  • Bandit - 寻找Python代码中常见安全问题的工具。 ★★★★
  • flake8 - 它将pep8、pyflakes、mccabe和第三方插件粘合在一起,用于检查Python代码的风格和质量。 ★★★★
  • pyanalyze - 是一个以编程方式检测Python代码中常见错误的工具,例如对未定义变量的引用和某些类别的类型不匹配。
  • pyflakes - 用于检查Python源文件的错误。 ★
  • Pylint - Python静态代码分析工具,它寻找编程错误,帮助执行编码标准,嗅探代码气味,并提供简单的重构建议。 ★★★★
  • Refurb - 整修和现代化Python代码库的工具。
  • ruff - 用Rust编写的极快的Python linter。 ★★★★★
  • slotscheck - 在你的"slots"定义中查找错误。

测试运行程序

  • green - 干净、多彩的测试运行器。
  • Nox - 命令行工具,可以在多个Python环境中自动测试,类似于tox。与 tox 不同,Nox 使用标准的 Python 文件进行配置。
  • tox - 在多个Python版本中自动构建和测试分布。 ★★

测试框架

  • async-asgi-testclient - 用于测试ASGI网络应用的框架无关的库。
  • awesome-pytest - 一个精选的pytest资源列表。
  • awesome-robotframework - 一个精心策划的机器人框架资源和库列表。
  • doctest - (Python标准库) doctest模块搜索看起来像交互式Python会话的文本片段,然后执行这些会话以验证它们是否完全按照显示的方式工作。 ★★★★
  • nose2 - nose的后续版本,基于unittest2
  • pytest - 成熟的全功能Python测试工具。 ★★★★★
  • Robot Framework - 一个通用的测试自动化框架。 ★★★★
  • testbook - 单元测试框架扩展,用于测试Jupyter Notebooks中的代码。
  • unittest - (Python标准库)单元测试框架。★★★★
  • Ward - 现代的Python测试框架,关注于生产力和可读性。
  • xdoctest - 重写Python的内置doctest模块(与pytest插件集成),用AST代替REGEX。

工具

  • ApprovalTests - 通过将测试结果与黄金母版进行比较来工作。
  • Auger - 自动生成单元测试的项目。
  • CrossHair - 用于Python的分析工具,模糊了测试和类型系统之间的界限。
  • ghostwriter - 用Hypothesis编写测试,把你从决定和写出具体的测试输入的繁琐中解放出来。
  • importlab - 一个可以自动推断Python文件的依赖关系的库。Importlab 的主要用例是与静态分析工具一起工作,这些工具一次处理一个文件,确保在文件之前对文件的依赖关系进行分析。 ★★★★★
  • Klara - 自动生成测试用例的静态分析工具,基于SMT(z3)求解器,具有强大的 ast 级推理系统。
  • Pifpaf - 是一套固定装置和一个命令行工具,允许启动和停止守护程序,以便快速使用。当需要这些守护程序来运行集成测试时,这通常很有用。
  • Ponicode - VS Code的AI驱动的单元测试接口。编写、生成、修改和可视化JavaScript、TypeScript和Python的各种单元测试。
  • Pynguin - 是一个允许开发者自动生成单元测试的工具。 ★

UI测试

  • Flybirds - 基于BDD模式的前端UI自动化测试框架,提供一系列开箱即用的工具和完整文档。
  • Golem - 浏览器自动化的完整工具。测试可以用Python的代码编写,也可以用Web IDE的无代码编写,或者两者都可以。
  • helium - Web自动化,轻量级的Selenium-python。 ★★
  • Lost Pixel - 开源的视觉回归测试工具。在你的Storybook和Ladle故事以及你的应用程序页面上运行可视化回归测试。
  • selene - Python中面向用户的Web UI浏览器测试(Selenide移植)。
  • Selenium - Selenium WebDriver 的 Python 绑定。 ★★★★★
  • SeleniumBase - 用于自动化浏览器测试的多合一Python框架。测试用 "pytest "运行,并使用WebDriver的API进行网页交互。 ★★★
  • sixpack - 语言无关的A/B测试框架。 ★★
  • splinter - 用于测试wEB应用的开源工具。 ★★
  • appium - 移动端UI自动化测试。 链接 --推荐

  • uiautomator- 安卓UI自动化测试。 链接

  • ATX - 智能手机自动化工具。支持iOS,Android,WebApp和游戏。 网易出品 链接 --推荐

  • uiautomator2- Android Uiautomator2 Python Wrapper。 链接 --推荐

  • facebook-wda Facebook WebDriverAgent Python Client Library (not official) 可用于IOS应用测试。 链接 --推荐

  • Winium.Desktop - 开源测试自动化工具,用于基于WinForms和WPF平台自动测试Windows应用程序,基于Selenium远程WebDriver实现。 链接

  • pyautogui- 跨平台的UI自动化工具,控制鼠标和键盘。 链接

  • autopy - 简单的跨平台GUI自动化工具包,适用于Python。 链接

  • pywinauto - Windows UI自动化。 链接

  • SikuliX - sikuli的稳定长期更新版本。链接

  • Python-UIAutomation-for-Windows - uiautomation封装了微软UIAutomation API,支持自动化Win32,MFC,WPF,Modern UI(Metro UI), Qt, IE, Firefox等。链接 国产

  • pyautoacad - AutoCAD自动化。 链接

  • sikuli - 位图自动化。 链接

  • monkeyrunner- 安卓自动化。 链接

  • ldtp - Linux UI自动化。 链接

  • dogtail- Linux UI自动化。 链接

  • pyautoit- autoit python api。 链接

资源

###文章

###书籍下载

书籍:ASTQB-BCS移动测试基础指南 Mobile Testing An ASTQB-BCS Foundation Guide - 2018.pdf

试题

软件测试综合面试题(高级测试)-试题.pdf

软件测试综合面试题(python测试开发).pdf

自动化_性能_web测试 - 试卷.pdf

自动化试卷.pdf

软件测试

深入理解Android自动化测试 (移动开发) - 2016.pdf

精通Metasploit渗透测试 (图灵程序设计丛书) - 2016.pdf

测试架构师修炼之道:从测试工程师到测试架构师 - 2016.pdf

Web渗透测试:使用Kali Linux (图灵程序设计丛书) - 2014.pdf

Kali Linux高级渗透测试(原书第2版) (网络空间安全技术丛书) - 2018.pdf

Kali Linux 无线渗透测试入门指南 - 2016.pdf

Android移动性能实战 - 2017.pdf

有效的单元测试 (华章程序员书库) - 2014.pdf

Kali Linux渗透测试的艺术 - 2015.pdf

程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美 - 2015.pdf

Sample Exam Questions- ISTQB Foundation Level-Agile Tester Extension Exam - 2016.pdf

Mobile Test Auto with Appium - 2017.pdf

Appium Recipes - 2016.pdf

###相关

  • Awesome Python - 一个精心策划的超强Python框架、库、软件和资源的列表。
  • Python测试自动化 - 一个全面的Python测试自动化框架、工具、库和软件的策划列表,以帮助软件工程师在Python上轻松启动测试自动化。