自动化测试工具集锦

6 小时前   出处: github  作/译者:溜的一比

Java 测试自动化

一个关于 Java 测试自动化框架、工具、库和软件的综合精心整理的列表,帮助软件工程师在 Java 上轻松启动测试自动化。由 SDCLabs 赞助。

如果有问题/想法/疑问,可以加入这里的聊天讨论: https://gitter.im/atinfo/awesome-test-automation

目录

  1. xUnit 框架
  2. TDD / ATDD / BDD
  3. 模型驱动测试 (Model-Based Testing)
  4. 代码分析与覆盖率
  5. Web UI 测试自动化
  6. 移动端测试自动化
  7. API 测试自动化
  8. Windows UI 测试自动化
  9. Unix / Linux UI 测试自动化
  10. MacOS UI 测试自动化
  11. 服务器端测试自动化
  12. 虚拟环境
  13. 性能 / 压力 / 负载测试
  14. 安全检测
  15. 构建工具
  16. 持续集成
  17. 报告
  18. 文档生成
  19. 编辑器、IDE 和控制台
  20. ORM 框架和库
  21. 有用的库
  22. 测试数据
  23. 数据库测试自动化

xUnit 框架

  • JUnit
    常用的 Java 测试框架。
  • TestNG
    测试框架。
  • Test Data Supplier
    TestNG DataProvider​ 的包装器,可以以更灵活的方式提供测试数据。
  • Sunshine
    基于 Java 的 xUnit 测试运行器(例如 TestNG、JUnit …)的封装。它可以自动在 JAR 文件中查找带有测试的类,传递给所需的测试运行器并报告执行状态。

TDD / ATDD / BDD

工具

  • JBehave
    一款行为驱动开发(BDD)框架。BDD 是测试驱动开发(TDD)和验收测试驱动设计(ATDD)的演进,旨在让初学者和专家都能更轻松直观地使用这些实践。
  • Cucumber-JVM
    Cucumber 的纯 Java 实现,支持大多数 JVM 上的主流编程语言。
  • JGiven
    针对 Java 的开发者友好且务实的 BDD 工具。开发者可以使用流式、特定领域的 API(DSL)在纯 Java 中编写场景,JGiven 会生成易于领域专家阅读的报告。
  • easyb
    针对 Java 平台的 BDD 框架。通过使用基于规范的领域特定语言(DSL),easyb 旨在实现可执行但又可读的文档。
  • Robot Framework
    一款通用的测试自动化框架,用于验收测试和验收测试驱动开发(ATDD)。
  • awesome-robotframework
    一个关于 Robot Framework 资源和库的精选列表。
  • Spectrum
    针对 Java 8 的 BDD 风格测试运行器,灵感来自 Jasmine、RSpec 和 Cucumber。
  • Gauge
    轻量级、跨平台的测试自动化工具,可用业务语言编写测试用例。
  • Spock
    基于 Java 和 Groovy 的规格化(Specification)测试框架。
  • Concordion
    灵活且可扩展的 BDD/SBE 工具,使用业务语言创建美观的“活文档”。

扩展

  • cucumber-report-db
    将 Cucumber-JVM 的 BDD 测试结果存储在数据库中,并提供报表功能。

模型驱动测试 (Model-Based Testing)

  • GraphWalker
    一款模型驱动测试框架。该工具可读取多种格式(graphml、dot、json)的模型,并从中生成测试。

代码分析和覆盖率

  • SonarQube
    开源项目,用于管理代码质量。
  • Gradle Quality Plugin
    用于 Java 和 Groovy 项目的静态代码分析插件,集成了 Checkstyle、PMD、FindBugs 和 CodeNarc。插件实现了统一的控制台输出,大大简化了开发者的工作流程,让违规检查的体验类似编译错误。
  • Qulice
    Java 项目的静态分析质量控制工具。它结合了最好的静态分析工具并对它们进行预配置,因此无需单独使用或配置各个工具。
  • JaCoCo
    免费的 Java 代码覆盖率库,由 EclEmma 团队创建,基于多年对已有库的使用和集成经验。

Web UI 测试自动化

  • Selenium
    可移植的 Web 应用测试框架。
  • SikuliX
    能自动化任何你在桌面屏幕上看到的东西,支持 Windows、Mac 或部分 Linux/Unix。它使用基于 OpenCV 的图像识别来识别并控制 GUI 组件。在无法轻松访问 GUI 内部或应用/网页源代码的情况下,非常有用。

框架和封装

  • Selenide
    基于 Selenium 的简洁 API,可编写稳定且可读的 UI 测试。
  • Selenified
    一个开源框架,简化 Selenium 测试。为 Selenium 调用提供包装,以便详细报告、错误处理、简化测试环境配置(线程安全),并可本地或云端(Grid 或 SauceLabs)运行。
  • Serenity BDD (Thucydides)
    创新的开源库,用于编写更高效的自动化验收测试,并使用这些测试生成产品和项目的丰富文档和报告。
  • htmlelements
    一个 Java 框架,以易用的方式在测试中与网页元素交互。
  • atlassian-selenium
    开源(BSD)项目,旨在简化在 Selenium/WebDriver 中开发功能性测试。
  • stevia
    Persado 提供的开源 QA 自动化测试框架。
  • darcy
    一个开源的 Java 8 框架,使用声明式、与自动化库无关的 DSL 将用户界面建模为页面对象。
  • Satisfy
    基于 Thucydides + JBehave 的开源 Java 框架,开箱即用地支持 WebUI、SOAP、REST、电子邮件、文件及随机数据生成等。
  • JDI Light
    UI 测试自动化框架,帮助编写快速、可持续的测试,并提供清晰、可预测的测试运行结果。
  • Geb Framework
    一个 Groovy 测试自动化框架,适配 WebDriver 的页面对象模式,并结合 Spock 进行 BDD。
  • FluentLenium
    为 Selenium 提供了一个流畅的 Java 接口,使 UI 功能性测试可读性更强,也更可重用、可靠和稳健。
  • Selion
    基于 TestNG 和 Selenium 构建,提供一组能力,让你能快速开始使用 WebDriver。可用于测试 Web 和移动端应用。
  • Frameworkium
    一个可用于 Web、App 和 API 测试的自动化框架。集成了 saucelabs、allure、rest-assured、jackson、gson。可通过 Jitpack 获取。
  • Carina
    基于 Java 的测试自动化框架,统一了所有测试层:移动应用(Web、原生、混合)、Web 应用、REST 服务、数据库。
  • NoraUi
    NoraUi(NOn-Regression Automation for User Interfaces)是一个基于 Selenium、Cucumber、Gherkin 的 Java 框架,可创建 GUI 测试项目,并能轻松集成到 CI 流程中。
  • Cubano
    一个用 Java 编写的测试自动化框架,为开发验收和回归测试提供项目结构,无需花时间自行构建和维护。
  • Jalenium
    一个 Java 的 Selenium API,可以轻松集成到任何使用 Selenium JAR 的 Maven Selenium Java 项目中。
  • TestZeus
    专为 Salesforce 而构建的开源 UI 测试自动化框架,带有自动定位器功能。

扩展

  • BrowserMob Proxy
    使得在浏览器中捕获性能数据更加容易,通常与 Selenium 或 Watir 等自动化工具结合使用。
  • Selenoid
    Selenium Hub 的后继者,将浏览器运行在容器中。可在任何平台上实现可扩展、不可变、自行托管的 Selenium-Grid,只需一个可执行文件。
  • Selenium-Grid-Extras
    简化对 Selenium Grid 节点的管理,通过在构建完成后清理测试环境来稳定节点。
  • Selenium Grid Extensions
    通过额外功能扩展 Selenium Grid。可在 Selenium 测试中结合 Sikuli 使用。
  • Selenium Grid Router
    一个轻量级服务器,用于将 Selenium WebDriver 请求路由和代理到多个 Selenium hub。
  • Docker Selenium Grid
    一个提供 Selenium Grid 原生视频录制功能的项目,最初用于与 docker-selenium 项目结合。
  • Video Recorder Java
    这个库可以轻松录制 UI 测试的视频,只需添加几个注解即可。
  • Zalenium
    基于 Docker 的可弹性 Selenium Grid,支持视频录制、实时预览以及在线/离线仪表板。
  • SikuliFactory
    针对 SikuliX 的 PageFactory 模型封装。
  • Mailosaur
    通过 Mailosaur 进行邮件测试/自动化的 Java 客户端。
  • TrueAutomation.IO
    旨在解决不稳定定位符(locators)问题的一个解决方案。

移动端测试自动化

  • Appium
    一款开源测试自动化框架,用于测试原生、混合和移动网页应用。它通过 WebDriver 协议驱动 iOS 和 Android 应用。
  • Calabash
    一款跨平台(Android 和 iOS)测试自动化框架,针对原生和混合应用。语法易于理解,即便非技术人员也能编写和执行应用的自动化验收测试。
  • Robotium
    全面支持原生和混合应用的 Android 测试自动化框架。可轻松编写功能性、系统以及用户验收测试,覆盖多个 Android Activity。
  • UIAutomator
    一种高效测试 UI 的方式,可针对真实 Android 设备和模拟器执行自动化功能测试。包含一个 GUI 工具(viewer)来扫描和分析 Android 应用的 UI 组件。
  • Espresso
    Google 在 2013 年开源的 Android UI 测试自动化框架,API 小巧、预测性强、易于学习,基于 Android Instrumentation 框架之上,可快速编写简洁而可靠的 Android UI 测试。

API 测试自动化

  • hikaku
    一个验证 REST-API 实现是否符合其规范的库。
  • Karate-DSL
    Karate 是一个 BDD JavaScript 框架,可对任意类型的 Web 服务执行一系列调用,并检查响应是否符合预期。可轻松构建复杂请求、遍历响应数据并将响应数据链式传递给下一步。内置的有效载荷验证引擎可进行“智能比对”,可选择忽略特定字段。
  • Retrofit
    针对 Android 和 Java 的类型安全 HTTP 客户端。
  • REST-Assured
    用于测试和验证 REST 服务的 Java 库。

Windows UI 测试自动化

  • SikuliX
    同上,使用图像识别来自动化任何在屏幕上可见的元素,适用于 Windows、Mac 或部分 Linux/Unix。
  • Winium for Desktop
    基于 WinForms 和 WPF 平台的 Windows 应用自动化测试工具,开源。
  • WinAppDriver
    Windows 应用程序驱动(WinAppDriver),在 Windows 10 上使用类似 Selenium 的方式进行 UI 测试自动化。支持通用 Windows 平台(UWP)、Windows Forms (WinForms)、WPF 以及经典 Win32 应用。

Unix / Linux UI 测试自动化

  • SikuliX
    同上,使用图像识别自动化桌面屏幕上的任何内容,适用于 Windows、Mac 或部分 Linux/Unix。

MacOS UI 测试自动化

  • SikuliX
    同上,使用图像识别自动化桌面屏幕上的任何内容。

服务器端测试自动化

  • Citrus
    用 Java 编写的测试框架,可为企业 SOA 应用创建完全自动化的端到端测试用例。Citrus 模拟周边接口,支持多种传输协议(HTTP、JMS、TCP/IP、FTP、SOAP、XML、JSON 等)。

虚拟环境

  • Vagrant
    易配置、可靠的工具,用于构建和维护可移植的虚拟开发环境。
  • Docker
    当前流行的容器平台。开发者可用 Docker 来解决“在我的机器上运行正常”这类问题;运维团队可利用 Docker 在隔离的容器中并行运行和管理应用。

性能 / 压力 / 负载测试

  • Apache JMeter
    功能测试和性能测试工具。
  • The Grinder
    负载测试框架,可轻松使用多台负载注入机进行分布式测试。
  • Lightning
    在 CI/CD 服务器上集成 JMeter 的非功能测试。
  • Tsung
    基于 Erlang 的多协议分布式负载测试工具。
  • Gatling
    基于 Scala、Akka 和 Netty 的开源负载测试框架,功能强大,易用且可维护度高。采用消息而非线程来模拟虚拟用户,可轻松模拟数千并发。
  • CRUX
    基于 Kubernetes(AKS)和 JMeter 的性能测试集成方案,使性能测试轻松接入 Azure CI/CD 流程。可在每次性能构建时创建并销毁所需的基础设施,从而降低成本。

安全检测

  • BDD-Security
    BDD-Security 使用 Gherkin 的 Given/When/Then 语法来描述安全需求,同时也能作为标准的单元/集成测试来执行,可集成到构建/测试/部署流程中。

构建工具

  • Apache Ant
    Java 库和命令行工具,通过在构建文件中描述的目标和依赖来驱动过程。最常用场景是构建 Java 应用。
  • Apache Maven
    管理软件项目和理解项目的工具。基于项目对象模型(POM)的概念,可统一管理构建、报告和文档。
  • Gradle
    开源构建自动化系统,可自动化软件包的构建、测试、发布、部署等,也可用于生成静态网站或文档等。

持续集成

  • Jenkins
    获奖的应用程序,用于监控重复任务的执行,如构建软件项目或执行定时任务。
  • TeamCity
    功能强大且用户友好的持续集成与部署服务器,开箱即用。
  • Drone
    面向繁忙开发团队的自助式持续集成平台。
  • Thundra Foresight
    一款 CI 可观察性工具,为测试套件提供可见性。

报告

  • ReportPortal
    强大的客户端-服务端报告工具。通过机器学习减少处理结果的时间,一键获取历史执行数据、日志、截图及任何二进制附件。可自定义 widget 和仪表板,提供实时集成,无需等待执行结束。支持各种语言和平台,免费、开源。
  • Allure
    开源框架,用于生成清晰、易读的测试执行报告。
  • Gradle Allure Plugin
    第三方 Gradle 插件,用于将 Allure 集成到 Spock、TestNG 和 JUnit 测试中。
  • ExtentReports
    .NET 和 Java 的 HTML 报告库,易于使用且报告美观。可折叠查看测试和步骤摘要以及执行状态,便于快速分析。
  • ReportNG
    一个简单的 HTML 报告插件,基于 TestNG 单元测试框架。
  • Zebrunner Reporting
    测试自动化管理工具,用于聚合并展示测试结果。可提供详细报告,包括测试日志、截图和视频录制。
  • Difido-reports
    一个生成 HTML 测试报告的通用实现。
  • cucumber-reporting
    主要用于在 Jenkins 上发布 Cucumber 测试报告,也可用于 Maven 命令行或其他场景。生成无需依赖即可离线查看的报告,并包含图表展示 Cucumber 测试运行结果。
  • Cluecumber
    针对 Cucumber 和 Karate 生成的 JSON 报告文件的报告库,可生成清晰而简洁的 HTML 报告,并具有高度的可定制性。

文档生成

(欢迎在此部分贡献相关条目)

编辑器、IDE 和控制台

  • IntelliJ IDEA
    免费开源的 IDE,支持 Java、Groovy、Scala 和 Android 开发。
  • IntelliJ IDEA Selenium plugin
    用于简化在 IntelliJ IDEA 中创建 Selenium Web 测试的插件。
  • Eclipse
    以 Java IDE、C/C++ IDE 和 PHP IDE 而闻名。
  • Genie plugin
    用于纯 AS 3.0 SWF 和 Flash 游戏的功能测试自动化工具。
  • NetBeans
    官方 Java 8 IDE,提供编辑器、代码分析和转换器,可轻松迁移到 Java 8 新特性。
  • VSCode
    代码编辑,重新定义。

ORM 框架和库

  • Hibernate
    帮助开发者更轻松地编写数据持久化代码,支持对象/关系映射(ORM),专注于数据持久层。
  • Morphia
    一个轻量级、类型安全的库,用于在 MongoDB 与 Java 对象之间映射。提供类型安全且流式的 Query API,并使用注解配置,无需编写 XML。
  • MyBatis
    一款优先支持自定义 SQL、存储过程和高级映射的持久化框架。几乎免去所有 JDBC 代码,不需手动设置参数或处理结果集。可使用简单的 XML 或注解进行配置。

有用的库

  • StreamEx
    对 Java 8 Streams 的增强库。
  • Vavr
    Java 8 的函数式扩展,提供持久化集合、函数式错误处理、并发编程模式、模式匹配等。
  • Lombok
    消除样板代码的工具,通过注解自动生成常用的代码结构(如 getter/setter、构造方法等)。
  • AspectJ
    Java 的无缝面向切面编程扩展。可实现错误检查与处理、同步、性能优化、监控和日志支持、调试支持、多对象协议等交叉关注点的干净模块化。
  • aShot
    基于 WebDriver 的截图工具。可截图、裁剪、美化、对比。
  • WireMock
    灵活的 Web 服务模拟与桩服务库。与一般的模拟工具不同,它会启动一个真实的 HTTP 服务器,以便与被测应用建立真实的 HTTP/HTTPS 连接。
  • MockServer
    用于模拟任意通过 HTTP/HTTPS 协议通信的系统(服务、网站等)。
  • Mockito
    流行的 Java Mock 框架,API 简洁,能编写易读的测试。
  • PowerMock
    允许对通常被视为无法测试的代码进行单元测试的 Java 框架。
  • XMLUnit
    用于测试和对比 XML 输出(Java 和 .NET 皆可)。
  • Awaitility
    一种 DSL,可简洁地表达对异步系统的期望。
  • Beanmother
    用于在测试中设置 Java Bean 测试数据的库。
  • PIT
    进行变异测试的工具(Pitest)。
  • GreenMail
    开源的易用邮件服务器测试套件,用于邮件集成测试或在开发中作为沙盒邮件服务器。
  • image-comparison
    Java 库,用于对比两张相同尺寸的图像并可将差异部分用矩形标记。可忽略图像的某些区域,常用于自动化 QA 测试。
  • AssertJ
    功能强大的流式断言框架,可与任意 xUnit 兼容。
  • Truth
    Google 开发的 Java/Android 流式断言框架。
  • JSONassert
    JSON 断言库。
  • selenium-to-restassured
    允许在 Selenium WebDriver Cookies 和 Rest Assured 之间来回共享的适配器。
  • TestRail-JUnit
    使基于 JUnit 的测试轻松集成 TestRail 的库。
  • TestRail-TestNG
    使基于 TestNG 的测试轻松集成 TestRail 的库。
  • Allure-Environment-Creator
    小型库,帮助轻松为 Allure 提供和存储环境信息。
  • Owner
    一款简化 Java Properties 文件处理的库,减少配置解析所需的样板代码。
  • DeepfakeHTTP
    一个使用 HTTP 转储(dump)作为响应来源的 Web 服务器工具,可模拟 REST、GraphQL 等各种 API 以进行客户端测试。
  • Cucable
    一个 Maven 插件,可以将 Cucumber 场景拆分成最小可运行的 Feature 文件和 Runner 类,从而简化并行执行。

测试数据

  • Faker
    生成姓名、地址、电话号码等虚拟数据的 Java 库实现。
  • Instancio
    用于在单元测试中创建完整填充的对象,包含 JUnit 5 扩展。

数据库测试自动化

  • DBTestCompare
    比较两个 SQL 查询结果的应用,支持所有提供 JDBC 驱动的数据库(已在 Microsoft SQL Server、Teradata、Snowflake、PostgreSQL 和 MySQL\MariaDB 测试)。
    DBTestCompareGenerator - 用于生成可由 DBTestCompare 运行的数据库测试的工具。

其他

资源

Python 测试自动化

一个精心整理的 Python 测试自动化框架、工具、库和软件的综合列表,帮助软件工程师在 Python 上轻松地启动测试自动化工作。由 SDCLabs 赞助。

如果有问题/想法/疑问,可以加入这里的聊天讨论: https://gitter.im/atinfo/awesome-test-automation

目录

  1. xUnit 框架
  2. TDD / ATDD / BDD
  3. 测试数据操作
  4. 代码分析
  5. Web UI 测试自动化
  6. 移动端测试自动化
  7. Windows UI 测试自动化
  8. Unix / Linux UI 测试自动化
  9. MacOS UI 测试自动化
  10. REST API 测试
  11. 虚拟环境
  12. 性能 / 压力 / 负载测试
  13. 安全检测
  14. 持续集成
  15. 报告
  16. 文档生成
  17. 编辑器、IDE 和控制台
  18. 有用的库
  19. 资源
  20. 其他优秀的测试自动化列表
  21. 贡献

xUnit 框架

框架

  • unittest
    自带于 Python 的单元测试库。
  • unittest2
    Python 2.7 及以上 unittest 框架的新特性在 Python 低版本上的一个回移版(backport)。
  • pytest
    一个成熟且功能全面的 Python 测试工具,帮助你编写更好的程序。

    • plugincompat - 用于测试运行 pytest 插件并检查兼容性。
  • test-junkie
    高度可配置的现代测试框架。
  • nosetests
    一种更好用的 Python 测试方式。
  • slash
    由 Python 编写的测试框架。
  • lemoncheesecake
    一个 Python 框架,面向功能测试,提供了 fixture、matcher、通过测试套件层次和元数据(测试/套件名称、描述、标签、属性、链接)来组织测试,拥有丰富的报告特性及多种报告格式(JSON、XML、HTML、JUnit)。

扩展

  • proboscis
    针对 Python 内置 unittest 模块和 Nose 的增强,借鉴了 TestNG 的特性。
  • grail
    用于基于“步骤”来创建测试脚本的库。
  • testify
    单元测试框架,提供了增强的测试夹具(fixture)设置、可将测试套件拆分为多个分块以便并行运行,还提供了 PEP8 命名约定和丰富的日志/报告输出选项。
  • trial
    unittest 的扩展,用于支持使用 Deferreds 编写异步单元测试,并增加了 'skip'​ 和 'todo'​ 结果类型。包括一个命令行程序,可发现测试并与 doctest、coverage 集成。
  • subunit
    透明地为 unittest 用例/套件提供在独立进程中运行的支持:防止测试中的系统级更改影响测试运行器。也允许从其他进程中的测试报告到 unittest 框架,形成统一的测试环境。
  • testresources
    提供一种机制来管理“资源”(多个测试需要的昂贵基础设施)。可根据需要来构造和释放资源;也可选用 TestSuite 优化测试运行顺序,从而减少构造与释放资源的次数。与 unittest 兼容。
  • testtools
    从 Twisted、Bazaar 等项目的自定义扩展中提炼而来的对 unittest 的有用扩展。
  • Sancho
    Sancho 2.1 执行测试并对失败的测试提供输出;不会统计通过/失败次数。目标是那些不会修复失败测试的项目。
  • zope.testing
    强大的测试运行器,包括对失败后进行 post-mortem 调试的支持,同时提供了性能剖析和覆盖率报告。独立包,与 Zope 无依赖,也可用于不使用 Zope 的项目。
  • pythoscope
    可以自动或半自动地为 Python 老旧系统生成单元测试的工具。
  • testlib
    为标准 unittest 提供更多功能:更多 assert 方法;支持模块级别的 setup/teardown;跳过测试等功能。
  • dutest
    面向 doctest 的面向对象接口,可从 doctest 中获取 unittest 测试用例。允许在交互示例中进行 setUp/tearDown,并可控制 doctest 提供的各种选项。通过特定类可以跨包层次选择性发现测试。
  • green
    干净、带颜色输出的测试运行器。可与 Nose 或 trial 类比。
  • ddt
    使用 unittest 进行数据驱动测试的库。
  • pytractor
    针对 Selenium Python 绑定的扩展,让测试 Angular.js 应用更简易。
  • stestr
    基于 subunit 的并行 Python 测试运行器。
  • pytest-django
    允许使用 pytest 工具测试你的 Django 项目/应用。
  • pytest-asyncio
    帮助在 pytest 中测试 asyncio 代码。

TDD / ATDD / BDD

BDD

  • behave
    BDD 工具。
  • lettuce
    BDD 工具。

    • lettuce-tools - 一系列 Lettuce 的扩展和工具,填补了该项目的功能空白。
  • contexts
    一种可描述化 Python 测试的工具。
  • mamba
    为 Python 而生的 BDD 测试工具。
  • pyvows
    针对 Python 的异步行为驱动开发(BDD)。
  • pytest-bdd
    基于 py.test(即 pytest)的 BDD 库。
  • pytest-play
    一个 ATDD 的 pytest 插件,能够通过执行纯 YAML 文件来自动化动作、断言和测试指标。
  • robotframework
    一款通用的测试自动化框架,用于验收测试和验收测试驱动开发(ATDD)。
  • awesome-robotframework
    一个汇集 Robot Framework 资源与库的精选列表。
  • radish-bdd
    带有扩展功能的 BDD 测试工具。

断言(Assertions)

  • pyshould
    基于 pyhamcrest,采用 “Should” 风格的断言。
  • pyhamcrest
    Hamcrest 的 Python 版本匹配器。
  • sure
    一个强大且灵活的 Python 测试断言库。
  • assertpy
    Python 测试的简洁断言库,支持流式 API,兼容 Python 2 和 3。

Mocking

  • mock
    Python 的模拟(Mocking)和补丁(Patching)库。
  • Ludibrio
    优雅的 Python 测试替身框架(mocks、stubs、spy、dummies)。
  • responses
    用于模拟 Python requests​ 库请求的工具库。
  • doublex
    强大的 Python 测试替身框架。
  • freezegun
    通过模拟 datetime 模块在测试中“穿越时间”。
  • httpretty
    HTTP 请求模拟工具。
  • httmock
    一个针对于 requests​ 的 mock 库,兼容 Python 2.6+ 和 3.2+。
  • pretenders
    用于测试的假服务器(fake servers)。
  • mock-server
    基于 tornado,具有管理面板的简单 REST 和 XML-RPC API mock 服务器。
  • VCR.py
    自动模拟 HTTP 交互,以简化并加速测试。
  • model-mommy
    帮助 Django 测试中轻松创建大量对象的工具(简单而强大的 API)。
  • django-test-plus
    针对 Django 默认 TestCase 的有用扩展。
  • Mockintosh
    Mock 服务器生成器,可生成 RESTful APIs 并与消息队列通信来模拟异步任务。
  • pytest-mock
    将标准库 unittest.mock​ 封装成 pytest fixture 的插件。

测试数据操作

  • faker
    生成虚拟数据的 Python 包。
  • fake2db
    假数据库生成器。
  • ForgeryPy
    易用的伪造数据生成器(Python 版,移植自 forgery)。
  • radar
    生成随机日期/时间。
  • robotframework-faker
    Robot Framework 中对 faker 的封装库。
  • hypothesis
    基于性质(Property)测试的库,灵感来自 Haskell 的 Quickcheck。
  • factory_boy
    替代 fixtures 的库,灵感源于 thoughtbot 的 factory_girl。
  • fauxfactory
    随机数据生成器。
  • mimesis
    速度快、极易使用,可生成大量多语言假数据的 Python 包。

代码分析

  • ruff
    用 Rust 编写的超高速 Python 代码检查器(linter)。
  • pysonar2
    一个 Python 的类型推断与索引器。
  • coverage
    代码覆盖率测量工具。
  • pycallgraph
    可视化 Python 应用调用流程(调用图)的库。
  • Flake8
    模块化源代码检查器,整合 pep8、pyflakes 等。
  • pylama
    Python 和 JavaScript 的代码审查工具。
  • Pylint
    源代码分析器。
  • hacking
    OpenStack Hacking 风格检查(flake8 插件)。
  • prospector
    分析 Python 代码,输出错误、潜在问题、风格违例以及复杂度信息。
  • wemake-python-styleguide
    史上最严格、最主观的 Python 代码风格检查器!
  • pytest-cov
    帮助在 pytest 中识别已被测试执行到的代码部分的插件。

Web UI 测试自动化

  • selenium webdriver
    浏览器自动化工具。
  • splinter
    一个测试 Web 应用的工具,提供简洁的元素查找、表单操作等浏览器操作。
  • mechanize
    在 Python 中进行有状态的程序化 Web 浏览。

框架和封装

  • play_selenium
    pytest-play 插件,让你通过简单的 YAML 文件配合 Selenium 驱动浏览器。
  • py.saunter
    针对 Selenium RC 和 WebDriver 库的一款“有主见”的自动化框架。
  • moz-web-qa
    一个针对 py.test 的插件,为 Mozilla 的 WebQA 项目提供其他特性。
  • testutils sst
    基于 Python 的浏览器端功能测试框架。
  • wtframework
    用于配置化地编写 Web 测试的 Python 框架。
  • holmium.core
    提供页面对象 (Page Objects) 和常用工具来编写 Selenium 测试用例。
  • robotframework-selenium2library
    Robot Framework 的 Web 测试库。
  • gocept.selenium
    针对 Selenium 远程控制的 API,适合为任何 WSGI、Plone、Zope 2、ZTK 或 Grok 应用编写测试并与测试套件集成。
  • webium
    一个 Python 实现的 Page Object 模式库。
  • robotframework-anywherelibrary
    跨平台(桌面浏览器、Android、iOS)的 Robot Framework 测试库,内部集成了 Selenium2(WebDriver) 和 Appium。
  • robotframework-pageobjects
    使用 robotframework + selenium 实现的 Page Object 模式,可在框架外部使用。
  • elementium
    采用 jQuery 风格的 Python 语法糖,帮助进行稳定的自动化浏览器测试。
  • slickqa
    slick-webdriver-python 项目是对 Python WebDriver 客户端绑定的一种封装。
  • selene
    在 Python 中编写简洁 UI 测试,支持 AJAX、PageObjects、Widgets。
  • hitch
    面向服务式应用的高级集成测试框架。
  • Needle
    与 Selenium 和 nose 结合,可进行视觉测试,比较页面某部分的截图与“黄金截图”是否一致,也可测试 CSS 值及 HTML 元素位置。
  • PyPOM
    针对 Selenium 和 Splinter 的 Python Page Object Model 库。
  • pypom_form
    基于 PyPOM 的页面对象模型,适用于基于模式(schema)的表单。
  • POM
    轻量级的 Page-Object-Model 微框架,用于快捷愉悦地开发 Web UI 测试。
  • websmith
    Web 测试的领域特定语言(DSL)。
  • pages
    轻量级的 Page Object & Component Python 库,用于编写 UI 测试。
  • seleniumbase
    用于基于 Selenium WebDriver 构建自动化测试的简单 Python 框架,依赖 pytest 或 noose 等模块来运行,配合 noose 可生成 HTML 报告。
  • Toolium
    将 Selenium 和 Appium 库封装为 Python 工具,可在单个项目中测试 Web 和移动应用。提供可在配置文件中选择和配置驱动,并实现了 Page Object 模式及简单的可视化测试方案。
  • Mops
    一个 Python 封装库,提供友好统一的 API,可同时使用 Selenium、Appium 和 Playwright 来简化 Web 应用测试自动化。减少 Selenium 等的等待时长,并支持跨所有框架的视觉对比。

扩展

  • webdriver_manager
    简化对不同浏览器二进制驱动的管理。
  • pytest_splinter
    用于在测试中集成 pytest 与 splinter/selenium 的插件。
  • lettuce_webdriver
    让 lettuce 使用 Selenium WebDriver。
  • Browsermob Proxy
    Browsermob Proxy 的 Python 封装。
  • FireRobot
    Firefox 插件,以更高效的方式创建 Robot Framework / Selenium 测试。
  • pytractor
    Selenium Python 扩展,用于测试 Angular.js 应用。
  • Selenium-Requests
    扩展 Selenium WebDriver 类,使其可使用 Requests 库进行请求并自动处理 cookies、请求头等。
  • selenium-respectful
    一个最简的 Selenium WebDriver 封装,可同时在多个网站内受速率限制的情况下工作。支持并行处理。
  • Mailosaur
    通过 Mailosaur 进行邮件测试/自动化的 Python 客户端。
  • gauge
    轻量级、跨平台的测试自动化工具,用业务语言编写测试用例。虽然核心用 Go 语言编写,也可用 Python 驱动。
  • Golem
    一个完整的端到端测试自动化工具和框架。基于 Selenium WebDriver,易学易用(对编程要求不高),可使用 Python 来扩展。
  • Pylenium.io
    将 Selenium、Cypress 和 Python 的优势集于一体的工具包。
  • Playwright
    一个可用单一 API 来自动化 Chromium、Firefox、WebKit 浏览器的 Python 库。Playwright 提供稳定、高效且快速的自动化能力。

移动端测试自动化

  • appium
    用于测试原生、混合和移动 Web 应用的开源自动化框架。通过 WebDriver 协议驱动 iOS 和 Android 应用。
  • Winium.StoreApps
    针对 Windows Store 应用的开源测试自动化工具,可在模拟器上进行测试。实现了 Selenium Remote WebDriver。
  • robotframework-androidlibrary
    满足 Android 自动化需求的 Robot Framework 测试库。
  • robotframework-appiumlibrary
    Robot Framework 的 Appium 测试库。
  • robotframework-ioslibrary
    满足 iOS 自动化需求的 Robot Framework 测试库。
  • uiautomator
    Android uiautomator 测试工具的 Python 封装,Android 4.1+ 通过 ADB 连接设备即可。
  • ATX
    智能手机自动化工具,支持 iOS、Android、WebApp 及游戏自动化。
  • Airtest
    跨平台自动化测试框架,主要面向游戏测试,也适用于原生应用测试。

Windows UI 测试自动化

  • Winium.Desktop
    针对 WinForms 和 WPF 平台的 Windows 应用测试自动化工具,开源。实现了 Selenium Remote WebDriver。
  • PyAutoGUI
    跨平台的 GUI 自动化库,可在 Python 脚本中控制键盘和鼠标。
  • robotframework-autoitlibrary
    适用于 Robot Framework 的 Windows GUI 测试库。
  • autopy
    跨平台的 GUI 自动化工具包,功能相对简单。
  • UISoup
    Python 库,支持在 Windows 和 Mac OS 上进行 UI 相关测试。(仅支持 Python x86)
  • pywinauto
    非常“Pythonic”的 Windows GUI 自动化库,支持 64 位的 Python 2 和 3。
  • SikuliX
    基于 OpenCV 的 GUI 测试框架,通过图像识别定位元素,用 Python 2.7 编写脚本。
  • AutoItDriverServer
    通过 (Remote)WebDriver API 控制/驱动 AutoIt 的 Selenium 服务器。

Unix / Linux UI 测试自动化

  • ldtp
    跨平台 Linux 桌面(GUI 应用)测试项目。
  • fMBT
    面向多平台 GUI 测试的 Python 库。
  • SikuliX
    同上,基于 OpenCV 的 GUI 测试框架,使用图像识别定位元素,脚本基于 Python 2.7。

MacOS UI 测试自动化

  • PyAutoGUI
    跨平台的 GUI 自动化库,可在脚本中操作键盘和鼠标。
  • ATOMac
    使用 Apple Accessibility API 来完整测试 Mac 应用程序的 Python 库。
  • SikuliX
    同上,基于 OpenCV 的 GUI 测试框架,使用图像识别定位元素,脚本基于 Python 2.7。

REST API 测试

  • Rester
    用于测试(RESTful)HTTP API 的框架。
  • pyresttest
    REST 测试和 API 微基准测试工具。
  • siesta
    Python 的 REST 客户端。
  • play_requests
    pytest-play 插件,让你通过简单的 YAML 文件使用 requests​ 进行 HTTP 调用。
  • gabbi
    通过在 YAML 文件中声明请求和响应来运行 HTTP 测试的工具。
  • Schemathesis
    用于基于 Open API & Swagger 规范进行性质测试(property-based testing)的工具。它读取应用模式(schema)并生成测试用例,验证应用是否符合其模式。集成了 pytest & unittest。
  • httprunner
    简洁优雅且功能强大的 HTTP(S) 测试框架,支持使用 HAR 录制并生成测试用例。
  • tavern
    可命令行使用或作为 Python 库/pytest 插件的 RESTful API 测试工具,采用简洁、灵活的基于 YAML 的语法。

虚拟环境

  • virtualenv
    创建独立 Python 环境的工具。
  • virtualenvwrapper
    针对 virtualenv​ 的一系列扩展。
  • tox
    通用的虚拟环境管理和测试命令行工具,可在不同 Python 版本上测试代码。
  • PyVirtualDisplay
    针对 Xvfb、Xephyr 和 Xvnc 的 Python 封装,用于 GUI 测试或自动截图等场景。
  • pew
    一系列管理多个虚拟环境的工具。
  • Vex
    在指定虚拟环境中运行命令。
  • PyRun
    一款无需安装的单文件 Python 版本。
  • pyenv
    简单的 Python 版本管理工具。
  • Tapper
    覆盖所有测试基础设施的工具。
  • Poetry
    Python 项目的依赖管理工具,简单易用。

性能 / 压力 / 负载测试

  • Multi-Mechanize
    开源的性能和负载测试框架。
  • locust
    由 Python 编写的可扩展用户负载测试工具。
  • Yandex.Tank
    负载和性能基准测试工具。
  • pytest-benchmark
    pytest 的基准测试(benchmark)插件。
  • Airspeed Velocity
    简单的 Python 基准测试工具,带有 Web 报告。
  • The Grinder
    负载测试框架,可使用多台负载注入机进行分布式测试。支持常见的 HTTP Web 服务器、SOAP、REST Web 服务、应用服务器(CORBA、RMI、JMS、EJB)等,以及自定义协议。脚本使用 Jython 或 Clojure。
  • Tsung
    开源的多协议分布式负载测试工具,可用于对 HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP、Jabber/XMPP 服务器进行压力测试。
  • taurus
    面向持续测试(Continuous Testing)的自动化友好框架。
  • molotov
    Python 3.5+ 的简单负载测试工具。
  • Awesome pytest speedup
    一份优化 pytest 测试套件速度的最佳实践清单。

安全检测

  • sparta
    一个图形界面应用,通过简化扫描和枚举阶段来协助渗透测试网络基础设施。
  • OWASP ZAP
    允许从 Python 脚本调用 OWASP ZAP 功能的 API。
  • pythem
    多功能的渗透测试框架,只能在 GNU/Linux 上运行,仅适用于合法范围内的测试。
  • SQLMap
    开源渗透测试工具,自动检测并利用 SQL 注入漏洞,可接管数据库服务器,支持丰富的检测和开关。
  • fsociety
    一整套渗透测试框架,包含“黑客”所需的脚本。

持续集成

  • buildbot
    自动化编译/测试流程的系统,以验证代码改动。
  • jenkins
    可扩展的开源持续集成服务器。
  • travis-ci
    免费的托管持续集成平台。

报告

  • ReportPortal.io
    强大的测试结果管理与分析平台,可与 pytest、RobotFramework 等集成。支持机器学习、实时集成、可视化趋势与统计、自定义仪表板和小部件,提供测试自动化的可见度,可嵌入到 CI/CD 流程中。免费开源,GitHub 可获取。
  • allure pytest
    PyTest 的 Allure 适配器。
  • HTMLTestRunner
    对 Python 标准库 unittest 的扩展,可生成简洁易读的 HTML 测试报告。
  • unittest-xml-reporting
    可将测试结果保存为 XML 文件的 unittest 测试运行器,可被各种工具(构建系统、IDE、CI 服务器等)消费。
  • PrettyTable
    在控制台生成美观的表格报告的 Python 库。
  • pytest-html
    为 PyTest 结果生成 HTML 报告的插件。

文档生成

  • Sphinx
    Python 文档生成器。
  • MkDocs
    支持 Markdown 的文档生成器。
  • Pycco
    最初的简洁实现(仅一百行左右)的文档生成器,类似“文学编程(literate-programming)”风格。

编辑器、IDE 和控制台

  • pycharm
    智能代码编辑器,对 Python 提供一流支持。
  • pydev
    基于 Eclipse 的完整功能 Python IDE。
  • sublime
    一个先进的文本编辑器,适合编写代码、标记文本和散文。
  • ipython
    一个多语言的交互式计算命令行,最初为 Python 而开发。
  • VSCode
    针对 Python 有大量插件的现代编辑器。

有用的库

这些库可能有助于构建更好的测试自动化。

  • requests
    人性化设计的 Apache2 授权 HTTP 库。
  • WebTest
    帮助测试 WSGI 应用的库。
  • lxml
    在 Python 中处理 XML 和 HTML 的最丰富、最易用库。
  • suds
    用于消费 Web Services 的轻量级 Python SOAP 客户端。
  • fabric
    精简基于 SSH 的应用部署或系统管理任务的 Python 库和命令行工具。
  • BeautifulSoup
    解析 HTML 文档(含有不完整标签等“Tag soup”)的库,可生成可用于提取数据的解析树。
  • Soupy
    BeautifulSoup 的封装,使构建复杂查询时更简单。
  • PyQuery
    在 XML 文档上使用 jQuery 式选择器的工具。内部使用 lxml 处理 XML/HTML。
  • waiting
    等待条件(predicate)达成的实用库。
  • Comcast
    模拟糟糕网络连接,以便构建更健壮的系统。
  • dateutil
    对标准 Python datetime 模块的扩展。
  • python-tesseract
    tesseract OCR(Linux、Mac、Windows)的包装类。
  • pywinrm
    Windows 远程管理 (WinRM) 的 Python 客户端,可从任何可运行 Python 的机器调用 Windows 本地对象(如运行批处理脚本、Powershell、WMI 变量等)。
  • fig
    借助 Docker 让开发环境更隔离更快速。
  • gitpython
    让你可高层次(git-porcelain)或底层次(git-plumbing)操作 git 仓库的 Python 库。
  • Pyro4
    允许在网络中通信的对象间轻松交互的 Python 工具。
  • keyboard
    在 Windows 和 Linux 上监听和模拟全局键盘事件。
  • Errbot
    一个聊天机器人,与常用的聊天服务相连,能将你的工具整合到对话中。
  • tappy
    一系列在 Python 中使用 TAP(Test Anything Protocol)处理测试数据的工具。
  • pyscreenshot
    可使用多种后端(X11 等)来将屏幕内容复制到 PIL 或 Pillow 图像对象中的库,用于替换仅支持 Windows 的 ImageGrab​。
  • TBVaccine
    一个让 Python 堆栈跟踪(Traceback)更易读的工具,可自动突出重点行并弱化不必要行,同时用颜色区分各要素。
  • PyPattyrn
    帮助更容易、更快速地在项目中实现设计模式(Design Patterns)的 Python 包。
  • Spyne
    Python RPC 工具包,可以方便地使用多种协议/传输方式来对外暴露有良好定义的在线服务。
  • Pexpect
    让 Python 更好地控制其他应用的库。
  • devtools-proxy
    Chrome DevTools 的代理,可与 Selenium/ChromeDriver 完全兼容。
  • extratools
    超过 145 个比标准库 itertools/functools 等更高阶的函数式工具,也超越 toolz/fancy/more-itertools 等。
  • retrying
    一个通用的重试(retry)库,在 Python 中轻松为任何操作添加重试机制。
  • mitmproxy
    免费开源的交互式 HTTPS 代理。
  • Python MSS
    使用 ctypes 编写的纯 Python、多平台、多屏幕截图库,速度极快。
  • Loguru
    旨在为 Python 带来更愉悦的日志记录体验的库。
  • prettyprinter
    为 Python 3.5+ 提供语法高亮、声明式、可组合的 Pretty Printer 库。
  • jsonschema
    JSON Schema 在 Python 中的实现,强大且通用,用于验证 JSON 数据结构。

资源

发现新库、信息、工具等的地方

网站


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
/16 人阅读/0 条评论 发表评论

登录 后发表评论
最新文章