Schemathesis VS pytest

Compare Schemathesis vs pytest and see what are their differences.

Schemathesis

Automate your API Testing: catch crashes, validate specs, and save time (by schemathesis)

pytest

The pytest framework makes it easy to write small tests, yet scales to support complex functional testing (by pytest-dev)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
Schemathesis pytest
23 30
2,058 11,239
3.2% 1.9%
9.7 9.9
4 days ago 7 days ago
Python Python
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Schemathesis

Posts with mentions or reviews of Schemathesis. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-21.
  • Ask HN: Any Good Fuzzer for gRPC?
    3 projects | news.ycombinator.com | 21 Mar 2024
    I am not aware of any tools like that, but eventually, I plan to add support for gRPC fuzzing to Schemathesis. There were already some discussions and it is more or less clear how to move forward. See https://github.com/schemathesis/schemathesis/discussions/190...
    3 projects | news.ycombinator.com | 21 Mar 2024
    I have been using Schemathesis (https://github.com/schemathesis/schemathesis) for some time to test REST APIs and I have found it amazing. I love the ways it find unexpected bugs and it really help me have more confidence in my systems.I also love how it integrate directly with pytest but that's more of a cherry on the cake.

    But now I am working with GRPC service I can't find anything similar. The few solutions I found are closed source and necessitate to integrate with 3rd party platforms.I found that strange as GRPC as RPC seem perfect for fuzzing.

    Did I miss a great tool that you use?

  • A Tale of Two Kitchens - Hypermodernizing Your Python Code Base
    31 projects | dev.to | 12 Nov 2023
    SchemaThesis is a powerful tool, especially when working with web APIs, and here's how it can enhance your testing capabilities:
  • Hurl 4.0.0
    6 projects | news.ycombinator.com | 30 Jun 2023
  • OpenAPI v4 Proposal
    24 projects | news.ycombinator.com | 31 May 2023
    I'm sorry, but you have completely misunderstood the purpose of Open API.

    It is not a specification to define your business logic classes and objects -- either client or server side. Its goal is to define the interface of an API, and to provide a single source of truth that requests and responses can be validated against. It contains everything you need to know to make requests to an API; code generation is nice to have (and I use it myself, but mainly on the server side, for routing and validation), but not something required or expected from OpenAPI

    For what it's worth, my personal preferred workflow to build an API is as follows:

    1. Build the OpenAPI spec first. A smaller spec could easily be done by hand, but I prefer using a design tool like Stoplight [0]; it has the best Web-based OpenAPI (and JSON Schema) editor I have encountered, and integrates with git nearly flawlessly.

    2. Use an automated tool to generate the API code implementation. Again, a static generation tool such as datamodel-code-generator [1] (which generates Pydantic models) would suffice, but for Python I prefer the dynamic request routing and validation provided by pyapi-server [2].

    3. Finally, I use automated testing tools such as schemathesis [3] to test the implementation against the specification.

    [0] https://stoplight.io/

    [1] https://koxudaxi.github.io/datamodel-code-generator/

    [2] https://pyapi-server.readthedocs.io

    [3] https://schemathesis.readthedocs.io

  • Faster time-to-market with API-first
    12 projects | dev.to | 25 Oct 2022
    Consolidating the API specification with OpenAPI was a turning point for the project. From that moment we were able to run mock servers to build and test the UI before integrating with the backend, and we were able to validate the backend implementation against the specification. We used prism to run mock servers, and Dredd to validate the server implementation (these days I’d rather use schemathesis).
  • Show HN: Step CI – API Testing and Monitoring Made Simple
    11 projects | news.ycombinator.com | 10 Oct 2022
  • API-first development maturity framework
    3 projects | dev.to | 6 Sep 2022
    In this approach, you produce an API specification first, then you build the API against the specification, and then you validate your implementation against the specification using automated API testing tools. This is the most reliable approach for building API servers, since it’s the only one that holds the server accountable and validates the implementation against the source of truth. Unfortunately, this approach isn’t as common as it should be. One of the reasons why it isn’t so common is because it requires you to produce the API specification first, which, as we saw earlier, puts off many developers who don’t know how to work with OpenAPI. However, like I said before, generating OpenAPI specifications doesn’t need to be painful since you can use tools for that. In this approach, you use automated API testing tools to validate your implementation. Tools like Dredd and schemathesis. These tools work by parsing your API specification and automatically generating tests that ensure your implementation complies with the specification. They look at every aspect of your API implementation, including use of headers, status codes, compliance with schemas, and so on. The most advanced of these tools at the moment is schemathesis, which I highly encourage you to check out.
  • This Week in Python
    4 projects | dev.to | 12 Aug 2022
    schemathesis – Run generated test scenarios based on your OpenAPI specification
  • Best way to test GraphQL API using Python?
    4 projects | /r/graphql | 28 Jun 2022
    Hi u/autumn_nite Python has an excellent ecosystem for GraphQL testing. Your first stop for painless GraphQL testing is schemathesis. To test your API with schemathesis, you simply need to start up your GraphQL server, and then run schemathesis like this:

pytest

Posts with mentions or reviews of pytest. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-31.

What are some alternatives?

When comparing Schemathesis and pytest you can also consider the following projects:

nose2 - The successor to nose, based on unittest2

Robot Framework - Generic automation framework for acceptance testing and RPA

Behave - BDD, Python style.

Slash - The Slash testing infrastructure

hypothesis - Hypothesis is a powerful, flexible, and easy to use library for property-based testing.

nose - nose is nicer testing for python

mamba - The definitive testing tool for Python. Born under the banner of Behavior Driven Development (BDD).

dredd - Language-agnostic HTTP API Testing Tool

PyRestTest - Python Rest Testing

tox

coverage