基于Open API和GraphQL应用的属性测试框架
项目描述
Schemathesis
Schemathesis 是一个API测试工具,可自动查找崩溃并验证规范合规性。
在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应用
Schemathesis.io
Schemathesis CLI与Schemathesis.io集成,通过优化测试用例生成来增强错误检测。它还提供了一个用户友好的UI来查看和分析测试结果。为了提供快速设置的一站式解决方案,我们提供免费层。
谁在使用Schemathesis?
Schemathesis被许多项目和公司使用,包括直接使用或集成到其他工具中
- 抽象机器(《Magistrala》)
- 联邦开放数据处(《smard-api》)
- CheckMK
- Chronosphere.io(《Calyptia》)
- HXSecurity(《DongTai》)
- Netflix(《Dispatch》)
- Pixie
- Qdrant
- Spotify(《Backstage》)
- Weechat
- WordPress(《OpenVerse》)
客户评价
"世界需要现代的基于规范的API测试,以便我们能够按照设计交付API。Schemathesis是这个工作的正确工具。"
"Schemathesis是彻底测试API的唯一合理方式。"
"这个工具绝对令人惊叹,因为它可以为我完成负向场景测试,而且速度更快!在我之前,我在Postman客户端中执行相同的测试。但是它要慢得多,并且带来了维护负担。"
"Schemathesis是市场上最好的REST API模糊测试工具。我们在Red Hat使用它来检查我们的应用程序在功能测试和集成测试级别。"
"在这些工具中,可用性和文档质量存在不同水平,其中Schemathesis在用户友好和行业强度工具中脱颖而出。"
贡献
我们欢迎代码贡献,并特别感兴趣了解您的用例。您的反馈对于改进Schemathesis和直接影响未来更新至关重要。
如何贡献
您的反馈为何重要
- 使我们能够开发有用的功能并更快地修复错误
- 提高我们的测试套件和文档
感谢您为使Schemathesis变得更好做出贡献!👍
商业支持
如果您是寻求专业协助的大型企业或初创公司,我们提供商业支持,帮助您有效地将Schemathesis集成到您的流程中。这包括:
- 对您的查询提供更快的响应。
- 直接咨询,与您的API规范紧密合作,优化Schemathesis配置以满足您的特定需求。
为了讨论最适合您组织的定制支持安排,请联系我们的支持团队:support@schemathesis.io。
致谢
Schemathesis是基于Hypothesis构建的,它是一个强大的Python属性测试库。
许可证
本项目遵循MIT许可证条款。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的说明。
源分布
构建分发
schemathesis-3.36.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 17ad340de2c09e9d38fe0fd8838c21f5a73cc18503e6ca3fb9e288022847235b |
|
MD5 | 1f4cd7106c6fc31ed706cc6bbad74272 |
|
BLAKE2b-256 | 064bab55fbbba29aced8270dff7f734b2f38ee3ab22a91318f0e1290e0bd88d5 |
schemathesis-3.36.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a5578c6c82cdf692acc88f461a28e5a15476bdeb70d2bafe410bf8eeeb6ac674 |
|
MD5 | b113bab46e2985e8a9d6448da332109b |
|
BLAKE2b-256 | ded93a718e47064f0553e61e024340a98496aed24057ff0c5356e6453ea59254 |