跳转到主要内容

基于Open API和GraphQL应用的属性测试框架

项目描述

Build Coverage Version Python versions Discord License

Schemathesis

Schemathesis 是一个API测试工具,可自动查找崩溃并验证规范合规性。

Schemathesis Demo

在Demo API中查找服务器崩溃。

突出显示

🎯 捕捉难以发现的错误

  • 发现手动测试可能遗漏的隐藏崩溃和边缘情况
  • 识别规范违规并确保您的API遵守其合同

加速测试周期

  • 根据您的API模式自动生成大量测试用例
  • 通过减少手动测试用例创建的需要来节省时间

🧩 无缝集成

  • 与流行的API格式(如OpenAPI、GraphQL)一起使用。
  • 容易集成到现有的CI/CD工作流程中。

🔧 可定制和可扩展

  • 使用Python扩展调整测试过程。
  • 根据您的需求,通过丰富的配置选项调整测试流程。

🐞 简化调试

  • 获取详细报告,快速识别和修复问题。
  • 使用cURL命令重现失败的测试用例。

🔬 经过研究验证

  • 通过学术研究验证API测试自动化的有效性
  • ICSE 2022论文中介绍语义感知模糊测试
  • ACM调查中被认可为最先进的RESTful API测试工具

安装

通过Docker使用Schemathesis,或从PyPI安装它

# Via Docker.
$ docker pull schemathesis/schemathesis:stable

# With pip.
$ pip install schemathesis

入门指南

Schemathesis可以作为独立的CLI运行

docker run schemathesis/schemathesis:stable
   run --checks all https://example.schemathesis.io/openapi.json
# Or when installed with pip
schemathesis run --checks all https://example.schemathesis.io/openapi.json

或者作为Python库

import schemathesis

schema = schemathesis.from_uri("https://example.schemathesis.io/openapi.json")


@schema.parametrize()
def test_api(case):
    case.call_and_validate()

/example目录中查看完整的工作示例项目。

使用GitHub Actions将Schemathesis轻松集成到您的CI/CD管道中。将此块添加到您的GitHub Actions中,以针对您的API运行Schemathesis

api-tests:
  runs-on: ubuntu-latest
  steps:
    - uses: schemathesis/action@v1
      with:
        schema: "https://example.schemathesis.io/openapi.json"
        # OPTIONAL. Add Schemathesis.io token for pull request reports
        token: ${{ secrets.SCHEMATHESIS_TOKEN }}

有关更多详细信息,请查看我们的GitHub Action存储库或查看我们的GitHub教程

对于拉取请求中的测试报告,安装GitHub应用

image

Schemathesis.io

Schemathesis CLI与Schemathesis.io集成,通过优化测试用例生成来增强错误检测。它还提供了一个用户友好的UI来查看和分析测试结果。为了提供快速设置的一站式解决方案,我们提供免费层

谁在使用Schemathesis?

Schemathesis被许多项目和公司使用,包括直接使用或集成到其他工具中

客户评价

"世界需要现代的基于规范的API测试,以便我们能够按照设计交付API。Schemathesis是这个工作的正确工具。"

Emmanuel Paraskakis - Level 250

"Schemathesis是彻底测试API的唯一合理方式。"

Zdenek Nemec - superface.ai

"这个工具绝对令人惊叹,因为它可以为我完成负向场景测试,而且速度更快!在我之前,我在Postman客户端中执行相同的测试。但是它要慢得多,并且带来了维护负担。"

Luděk Nový - JetBrains

"Schemathesis是市场上最好的REST API模糊测试工具。我们在Red Hat使用它来检查我们的应用程序在功能测试和集成测试级别。"

Dmitry Misharov - RedHat

"在这些工具中,可用性和文档质量存在不同水平,其中Schemathesis在用户友好和行业强度工具中脱颖而出。"

RESTful APIs测试:一项调查 - 由Golmohammadi等人撰写的学术论文

贡献

我们欢迎代码贡献,并特别感兴趣了解您的用例。您的反馈对于改进Schemathesis和直接影响未来更新至关重要。

如何贡献

  1. 通过GitHub问题或在我们的Discord频道上讨论想法和问题。
  2. 有关代码贡献,请参阅我们的贡献指南
  3. 使用此反馈表分享您的经验和想法。

您的反馈为何重要

  • 使我们能够开发有用的功能并更快地修复错误
  • 提高我们的测试套件和文档

感谢您为使Schemathesis变得更好做出贡献!👍

商业支持

如果您是寻求专业协助的大型企业或初创公司,我们提供商业支持,帮助您有效地将Schemathesis集成到您的流程中。这包括:

  • 对您的查询提供更快的响应。
  • 直接咨询,与您的API规范紧密合作,优化Schemathesis配置以满足您的特定需求。

为了讨论最适合您组织的定制支持安排,请联系我们的支持团队:support@schemathesis.io

致谢

Schemathesis是基于Hypothesis构建的,它是一个强大的Python属性测试库。

许可证

本项目遵循MIT许可证条款。

项目详情


发行历史 发行通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的说明

源分布

schemathesis-3.36.3.tar.gz (57.9 MB 查看哈希值)

上传于 来源

构建分发

schemathesis-3.36.3-py3-none-any.whl (319.8 kB 查看哈希值)

上传于 Python 3

由以下支持