Swagger-tester will test automatically your swagger API. Swagger API made with connexion (https://github.com/zalando/connexion) are supported directly without running the API server. In the case you use connexion it will automatically run a test server from your swagger file.
To run the test, swagger-tester will detect every path and actions of your API. And for each, it will send a request and check if the response match the swagger file specification.
You may find related libraries to this one:
- https://github.com/Trax-air/swagger-stub: A stub you can use in your client's unit tests. All the HTTP calls to your swagger API are mocked by default. You can also add your own mocked_calls in your test functions.
- https://github.com/Trax-air/swagger-aggregator: Aggregate several swagger specs into one. Useful for your API gateways!
- https://github.com/Trax-air/swagger-parser: A helper that parses swagger specs. You can access the HTTP actions / paths and some example data
from swagger_tester import swagger_test
# Dict containing the error you don't want to raise.
# By default, every status_code over other than 1xx, 2xx or 3xx
# will be considered as an error.
authorize_error = {
'post': {
'/pet/{petId}': [200],
'/pet': [200]
},
'put': {
'/user/{username}': [200],
'/pet': [200]
},
'delete': {
'/pet/{petId}': [200],
'/store/order/{orderId}': [200],
'/user/{username}': [200]
}
}
# Run the test with connexion
# An AssertionError will be raise in case of error.
swagger_test('path_to_your_swagger.yaml', authorize_error=authorize_error)
# Or if you have a running API
swagger_test(app_url='http://petstore.swagger.io/v2', authorize_error=authorize_error)
More documentation is available at https://swagger-tester.readthedocs.org/en/latest/.
make install or pip install swagger-tester
swagger-tester is licensed under http://opensource.org/licenses/MIT.