Name | schemathesis JSON |
Version |
3.38.7
JSON |
| download |
home_page | None |
Summary | Property-based testing framework for Open API and GraphQL based apps |
upload_time | 2024-11-16 14:42:19 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
keywords |
graphql
hypothesis
openapi
pytest
testing
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<p align="center">
<a href="https://github.com/schemathesis/schemathesis/actions" target="_blank">
<img src="https://github.com/schemathesis/schemathesis/actions/workflows/build.yml/badge.svg" alt="Build">
</a>
<a href="https://codecov.io/gh/schemathesis/schemathesis/branch/master" target="_blank">
<img src="https://codecov.io/gh/schemathesis/schemathesis/branch/master/graph/badge.svg" alt="Coverage">
</a>
<a href="https://pypi.org/project/schemathesis/" target="_blank">
<img src="https://img.shields.io/pypi/v/schemathesis.svg" alt="Version">
</a>
<a href="https://pypi.org/project/schemathesis/" target="_blank">
<img src="https://img.shields.io/pypi/pyversions/schemathesis.svg" alt="Python versions">
</a>
<a href="https://discord.gg/R9ASRAmHnA" target="_blank">
<img src="https://img.shields.io/discord/938139740912369755" alt="Discord">
</a>
<a href="https://opensource.org/licenses/MIT" target="_blank">
<img src="https://img.shields.io/pypi/l/schemathesis.svg" alt="License">
</a>
</p>
## Schemathesis
Schemathesis is an API testing tool that automatically finds crashes and validates spec compliance.
<p align="center">
<img src="https://raw.githubusercontent.com/schemathesis/schemathesis/master/img/demo.gif" alt="Schemathesis Demo"/>
</p>
<p align="center">
<i>Finding server crashes in the Demo API.</i>
</p>
### Highlights
🎯 **Catches Hard-to-Find Bugs**
- Uncover hidden crashes and edge cases that manual testing might miss
- Identify spec violations and ensure your API adheres to its contract
⚡ **Accelerates Testing Cycles**
- Automatically generate a wide range of test cases based on your API schema
- Save time by reducing the need for manual test case creation
🧩 **Integrates Seamlessly**
- Works with popular API formats such as OpenAPI, GraphQL.
- Easily integrate into your existing CI/CD workflows.
🔧 **Customizable and Extendable**
- Tune the testing process using Python extensions.
- Adjust the testing flow to suit your needs with rich configuration options.
🐞 **Simplifies Debugging**
- Get detailed reports to identify and fix issues quickly.
- Reproduce failing test cases with cURL commands.
🔬 **Proven by Research**
- Validated through academic studies on API testing automation
- Featured in [ICSE 2022 paper](https://ieeexplore.ieee.org/document/9793781) on semantics-aware fuzzing
- Recognized in [ACM survey](https://dl.acm.org/doi/10.1145/3617175) as state-of-the-art RESTful API testing tool
## Installation
Use Schemathesis via Docker, or install it from [PyPI](https://pypi.org/project/schemathesis/)
```console
# Via Docker.
$ docker pull schemathesis/schemathesis:stable
# With pip.
$ pip install schemathesis
```
## Getting Started
Schemathesis works as a standalone CLI:
```console
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
```
Or a Python library:
```python
import schemathesis
schema = schemathesis.from_uri("https://example.schemathesis.io/openapi.json")
@schema.parametrize()
def test_api(case):
case.call_and_validate()
```
See a complete working example project in the [/example](https://github.com/schemathesis/schemathesis/tree/master/example) directory.
Schemathesis can be easily integrated into your CI/CD pipeline using GitHub Actions. Add this block to your GitHub Actions to run Schemathesis against your API:
```yaml
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 }}
```
For more details, check out our [GitHub Action](https://github.com/schemathesis/action) repository or see our [GitHub Tutorial](https://docs.schemathesis.io/tutorials/github).
For test reports in your pull requests, install the [GitHub app](https://github.com/apps/schemathesis):
![image](https://raw.githubusercontent.com/schemathesis/schemathesis/master/img/service_github_report.png)
### Schemathesis.io
Schemathesis CLI integrates with Schemathesis.io to enhance bug detection by optimizing test case generation. It also provides a user-friendly UI for viewing and analyzing test results. For a quick setup all-in-one solution, we offer a [free tier](https://schemathesis.io/#pricing).
## Who's Using Schemathesis?
Schemathesis is used by a number of projects and companies, including direct usage or integration into other tools:
- Abstract Machines ([Magistrala](https://github.com/absmach/magistrala))
- Bundesstelle für Open Data ([smard-api](https://github.com/bundesAPI/smard-api))
- [CheckMK](https://github.com/Checkmk/checkmk)
- Chronosphere.io ([Calyptia](https://github.com/chronosphereio/calyptia-api))
- HXSecurity ([DongTai](https://github.com/HXSecurity/DongTai))
- Netflix ([Dispatch](https://github.com/Netflix/dispatch))
- [Pixie](https://github.com/pixie-io/pixie)
- [Qdrant](https://github.com/qdrant/qdrant)
- Spotify ([Backstage](https://github.com/backstage/backstage))
- [Weechat](https://github.com/weechat/weechat)
- WordPress ([OpenVerse](https://github.com/WordPress/openverse))
## Testimonials
"_The world needs modern, spec-based API tests, so we can deliver APIs as-designed. Schemathesis is the right tool for that job._"
<div>Emmanuel Paraskakis - <strong>Level 250</strong></div>
---
"_Schemathesis is the only sane way to thoroughly test an API._"
<div>Zdenek Nemec - <strong>superface.ai</strong></div>
---
"_The tool is absolutely amazing as it can do the negative scenario testing instead of me and much faster! Before I was doing the same tests in Postman client. But it's much slower and brings maintenance burden._"
<div>Luděk Nový - <strong>JetBrains</strong></div>
---
"_Schemathesis is the best tool for fuzz testing of REST API on the market. We are at Red Hat use it for examining our applications in functional and integrations testing levels._"
<div>Dmitry Misharov - <strong>RedHat</strong></div>
---
"_There are different levels of usability and documentation quality among these tools which have been reported, where Schemathesis clearly stands out among the most user-friendly and industry-strength tools._"
<div>Testing RESTful APIs: A Survey - <strong>a research paper by Golmohammadi, at al</strong></div>
---
## Contributing
We welcome contributions in code and are especially interested in learning about your use cases. Your input is essential for improving Schemathesis and directly influences future updates.
### How to Contribute
1. Discuss ideas and questions through [GitHub issues](https://github.com/schemathesis/schemathesis/issues) or on our [Discord channel](https://discord.gg/R9ASRAmHnA).
2. For code contributions, see our [contributing guidelines](https://github.com/schemathesis/schemathesis/blob/master/CONTRIBUTING.rst).
3. Share your experience and thoughts using [this feedback form](https://forms.gle/kJ4hSxc1Yp6Ga96t5).
### Why Your Input Matters
- Enables us to develop useful features and fix bugs faster
- Improves our test suite and documentation
Thank you for contributing to making Schemathesis better! 👍
## Commercial support
If you're a large enterprise or startup seeking specialized assistance, we offer commercial support to help you integrate Schemathesis effectively into your workflows.
This includes:
- Quicker response time for your queries.
- Direct consultation to work closely with your API specification, optimizing the Schemathesis setup for your specific needs.
To discuss a custom support arrangement that best suits your organization, please contact our support team at <a href="mailto:support@schemathesis.io">support@schemathesis.io</a>.
## Acknowledgements
Schemathesis is built on top of <a href="https://hypothesis.works/" target="_blank">Hypothesis</a>, a powerful property-based testing library for Python.
## License
This project is licensed under the terms of the [MIT license](https://opensource.org/licenses/MIT).
Raw data
{
"_id": null,
"home_page": null,
"name": "schemathesis",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Dmitry Dygalo <dmitry@dygalo.dev>",
"keywords": "graphql, hypothesis, openapi, pytest, testing",
"author": null,
"author_email": "Dmitry Dygalo <dmitry@dygalo.dev>",
"download_url": "https://files.pythonhosted.org/packages/f0/b7/13b4417bba802dd4615de41e0acfe87191bfce7e97f6c27c82b666f27d18/schemathesis-3.38.7.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <a href=\"https://github.com/schemathesis/schemathesis/actions\" target=\"_blank\">\n <img src=\"https://github.com/schemathesis/schemathesis/actions/workflows/build.yml/badge.svg\" alt=\"Build\">\n </a>\n <a href=\"https://codecov.io/gh/schemathesis/schemathesis/branch/master\" target=\"_blank\">\n <img src=\"https://codecov.io/gh/schemathesis/schemathesis/branch/master/graph/badge.svg\" alt=\"Coverage\">\n </a>\n <a href=\"https://pypi.org/project/schemathesis/\" target=\"_blank\">\n <img src=\"https://img.shields.io/pypi/v/schemathesis.svg\" alt=\"Version\">\n </a>\n <a href=\"https://pypi.org/project/schemathesis/\" target=\"_blank\">\n <img src=\"https://img.shields.io/pypi/pyversions/schemathesis.svg\" alt=\"Python versions\">\n </a>\n <a href=\"https://discord.gg/R9ASRAmHnA\" target=\"_blank\">\n <img src=\"https://img.shields.io/discord/938139740912369755\" alt=\"Discord\">\n </a>\n <a href=\"https://opensource.org/licenses/MIT\" target=\"_blank\">\n <img src=\"https://img.shields.io/pypi/l/schemathesis.svg\" alt=\"License\">\n </a>\n</p>\n\n## Schemathesis\n\nSchemathesis is an API testing tool that automatically finds crashes and validates spec compliance.\n\n<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/schemathesis/schemathesis/master/img/demo.gif\" alt=\"Schemathesis Demo\"/>\n</p>\n\n<p align=\"center\">\n <i>Finding server crashes in the Demo API.</i>\n</p>\n\n### Highlights\n\n\ud83c\udfaf **Catches Hard-to-Find Bugs**\n\n- Uncover hidden crashes and edge cases that manual testing might miss\n- Identify spec violations and ensure your API adheres to its contract\n\n\u26a1 **Accelerates Testing Cycles**\n\n- Automatically generate a wide range of test cases based on your API schema\n- Save time by reducing the need for manual test case creation\n\n\ud83e\udde9 **Integrates Seamlessly**\n\n- Works with popular API formats such as OpenAPI, GraphQL.\n- Easily integrate into your existing CI/CD workflows.\n\n\ud83d\udd27 **Customizable and Extendable**\n\n- Tune the testing process using Python extensions.\n- Adjust the testing flow to suit your needs with rich configuration options.\n\n\ud83d\udc1e **Simplifies Debugging**\n\n- Get detailed reports to identify and fix issues quickly.\n- Reproduce failing test cases with cURL commands.\n\n\ud83d\udd2c **Proven by Research**\n\n- Validated through academic studies on API testing automation\n- Featured in [ICSE 2022 paper](https://ieeexplore.ieee.org/document/9793781) on semantics-aware fuzzing\n- Recognized in [ACM survey](https://dl.acm.org/doi/10.1145/3617175) as state-of-the-art RESTful API testing tool\n\n## Installation\n\nUse Schemathesis via Docker, or install it from [PyPI](https://pypi.org/project/schemathesis/)\n\n```console\n# Via Docker.\n$ docker pull schemathesis/schemathesis:stable\n\n# With pip.\n$ pip install schemathesis\n```\n\n## Getting Started\n\nSchemathesis works as a standalone CLI:\n\n```console\ndocker run schemathesis/schemathesis:stable\n run --checks all https://example.schemathesis.io/openapi.json\n# Or when installed with pip\nschemathesis run --checks all https://example.schemathesis.io/openapi.json\n```\n\nOr a Python library:\n\n```python\nimport schemathesis\n\nschema = schemathesis.from_uri(\"https://example.schemathesis.io/openapi.json\")\n\n\n@schema.parametrize()\ndef test_api(case):\n case.call_and_validate()\n```\n\nSee a complete working example project in the [/example](https://github.com/schemathesis/schemathesis/tree/master/example) directory.\n\nSchemathesis can be easily integrated into your CI/CD pipeline using GitHub Actions. Add this block to your GitHub Actions to run Schemathesis against your API:\n\n```yaml\napi-tests:\n runs-on: ubuntu-latest\n steps:\n - uses: schemathesis/action@v1\n with:\n schema: \"https://example.schemathesis.io/openapi.json\"\n # OPTIONAL. Add Schemathesis.io token for pull request reports\n token: ${{ secrets.SCHEMATHESIS_TOKEN }}\n```\n\nFor more details, check out our [GitHub Action](https://github.com/schemathesis/action) repository or see our [GitHub Tutorial](https://docs.schemathesis.io/tutorials/github).\n\nFor test reports in your pull requests, install the [GitHub app](https://github.com/apps/schemathesis):\n\n![image](https://raw.githubusercontent.com/schemathesis/schemathesis/master/img/service_github_report.png)\n\n### Schemathesis.io\n\nSchemathesis CLI integrates with Schemathesis.io to enhance bug detection by optimizing test case generation. It also provides a user-friendly UI for viewing and analyzing test results. For a quick setup all-in-one solution, we offer a [free tier](https://schemathesis.io/#pricing).\n\n## Who's Using Schemathesis?\n\nSchemathesis is used by a number of projects and companies, including direct usage or integration into other tools:\n\n- Abstract Machines ([Magistrala](https://github.com/absmach/magistrala))\n- Bundesstelle f\u00fcr Open Data ([smard-api](https://github.com/bundesAPI/smard-api))\n- [CheckMK](https://github.com/Checkmk/checkmk)\n- Chronosphere.io ([Calyptia](https://github.com/chronosphereio/calyptia-api))\n- HXSecurity ([DongTai](https://github.com/HXSecurity/DongTai))\n- Netflix ([Dispatch](https://github.com/Netflix/dispatch))\n- [Pixie](https://github.com/pixie-io/pixie)\n- [Qdrant](https://github.com/qdrant/qdrant)\n- Spotify ([Backstage](https://github.com/backstage/backstage))\n- [Weechat](https://github.com/weechat/weechat)\n- WordPress ([OpenVerse](https://github.com/WordPress/openverse))\n\n## Testimonials\n\n\"_The world needs modern, spec-based API tests, so we can deliver APIs as-designed. Schemathesis is the right tool for that job._\"\n\n<div>Emmanuel Paraskakis - <strong>Level 250</strong></div>\n\n---\n\n\"_Schemathesis is the only sane way to thoroughly test an API._\"\n\n<div>Zdenek Nemec - <strong>superface.ai</strong></div>\n\n---\n\n\"_The tool is absolutely amazing as it can do the negative scenario testing instead of me and much faster! Before I was doing the same tests in Postman client. But it's much slower and brings maintenance burden._\"\n\n<div>Lud\u011bk Nov\u00fd - <strong>JetBrains</strong></div>\n\n---\n\n\"_Schemathesis is the best tool for fuzz testing of REST API on the market. We are at Red Hat use it for examining our applications in functional and integrations testing levels._\"\n\n<div>Dmitry Misharov - <strong>RedHat</strong></div>\n\n---\n\n\"_There are different levels of usability and documentation quality among these tools which have been reported, where Schemathesis clearly stands out among the most user-friendly and industry-strength tools._\"\n\n<div>Testing RESTful APIs: A Survey - <strong>a research paper by Golmohammadi, at al</strong></div>\n\n---\n\n## Contributing\n\nWe welcome contributions in code and are especially interested in learning about your use cases. Your input is essential for improving Schemathesis and directly influences future updates.\n\n### How to Contribute\n\n1. Discuss ideas and questions through [GitHub issues](https://github.com/schemathesis/schemathesis/issues) or on our [Discord channel](https://discord.gg/R9ASRAmHnA).\n2. For code contributions, see our [contributing guidelines](https://github.com/schemathesis/schemathesis/blob/master/CONTRIBUTING.rst).\n3. Share your experience and thoughts using [this feedback form](https://forms.gle/kJ4hSxc1Yp6Ga96t5).\n\n### Why Your Input Matters\n\n- Enables us to develop useful features and fix bugs faster\n- Improves our test suite and documentation\n\nThank you for contributing to making Schemathesis better! \ud83d\udc4d\n\n## Commercial support\n\nIf you're a large enterprise or startup seeking specialized assistance, we offer commercial support to help you integrate Schemathesis effectively into your workflows.\nThis includes:\n\n- Quicker response time for your queries.\n- Direct consultation to work closely with your API specification, optimizing the Schemathesis setup for your specific needs.\n\nTo discuss a custom support arrangement that best suits your organization, please contact our support team at <a href=\"mailto:support@schemathesis.io\">support@schemathesis.io</a>.\n\n## Acknowledgements\n\nSchemathesis is built on top of <a href=\"https://hypothesis.works/\" target=\"_blank\">Hypothesis</a>, a powerful property-based testing library for Python.\n\n## License\n\nThis project is licensed under the terms of the [MIT license](https://opensource.org/licenses/MIT).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Property-based testing framework for Open API and GraphQL based apps",
"version": "3.38.7",
"project_urls": {
"Bug Tracker": "https://github.com/schemathesis/schemathesis",
"Changelog": "https://schemathesis.readthedocs.io/en/stable/changelog.html",
"Documentation": "https://schemathesis.readthedocs.io/en/stable/",
"Funding": "https://github.com/sponsors/Stranger6667",
"Source Code": "https://github.com/schemathesis/schemathesis"
},
"split_keywords": [
"graphql",
" hypothesis",
" openapi",
" pytest",
" testing"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f3d2810b2794dc9a2c584762ac9e563ac3dbf6ebf66d9f418d7db6484592ab7a",
"md5": "133c993dc492c0f2bf7afb53bf8e3083",
"sha256": "9ba22c115459c02a2d4c817f6053d9eda1ccdd3b656a0c62e9e6c255e020605b"
},
"downloads": -1,
"filename": "schemathesis-3.38.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "133c993dc492c0f2bf7afb53bf8e3083",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 327254,
"upload_time": "2024-11-16T14:42:16",
"upload_time_iso_8601": "2024-11-16T14:42:16.003366Z",
"url": "https://files.pythonhosted.org/packages/f3/d2/810b2794dc9a2c584762ac9e563ac3dbf6ebf66d9f418d7db6484592ab7a/schemathesis-3.38.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f0b713b4417bba802dd4615de41e0acfe87191bfce7e97f6c27c82b666f27d18",
"md5": "b6f9ec2a01d15c1cd8f2aee1b23b83b2",
"sha256": "09150618516b865772e1c343234abcd785621a651c487c381f2fdf5a38b2c39a"
},
"downloads": -1,
"filename": "schemathesis-3.38.7.tar.gz",
"has_sig": false,
"md5_digest": "b6f9ec2a01d15c1cd8f2aee1b23b83b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 57900406,
"upload_time": "2024-11-16T14:42:19",
"upload_time_iso_8601": "2024-11-16T14:42:19.913712Z",
"url": "https://files.pythonhosted.org/packages/f0/b7/13b4417bba802dd4615de41e0acfe87191bfce7e97f6c27c82b666f27d18/schemathesis-3.38.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-16 14:42:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "schemathesis",
"github_project": "schemathesis",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "schemathesis"
}