EvoMaster client for Python Flask RESTful applications
Project description
EvoMaster Client for Python
About EvoMaster:
EvoMaster is the first open-source AI-driven tool for automatically generating system-level test cases (also known as fuzzing) for web/enterprise applications. Currently targeting whitebox and blackbox testing of REST APIs.
Evomaster-Client for Python Flask
This library will let you integrate your Flask restful application to the EvoMaster core in order to automatically generate test cases for your API endpoints using the unittest testing framework for Python.
Quick Start
Installation:
pip3 install evomaster-client
After the installation, a CLI is available to be run from a Python environment to use the EvoMaster driver.
You can access the CLI help using:
python -m evomaster_client.cli -h
For now, the CLI supports two commands:
- run-instrumented
- run-em-handler
Running the instrumented version of your application:
python -m evomaster_client.cli run-instrumented [OPTIONS]
For example:
python -m evomaster_client.cli run-instrumented --package-prefix 'evomaster_benchmark.ncs' --flask-module 'evomaster_benchmark.ncs.app' --flask-app 'app' --instrumentation-level 2
where:
- package-prefix is the prefix used to define the modules that will be instrumented
- flask-module is the main module of your app
- flask-module is the name of your Flask object defined in flask-module, used to start your app
- instrumentation-level can be [0..2] where a higher value means the code instrumentation is richer
Running the EvoMaster handler to generate white-box tests for your application:
python -m evomaster_client.cli run-em-handler [OPTIONS]
For example:
python -m evomaster_client.cli run-em-handler --handler-module 'evomaster_benchmark.em_handlers.ncs' --handler-class 'EMHandler' --instrumentation-level 2
where:
- handler-module is the module where the driver class, extending from FlaskHandler, was implemented
- handler-class is name of the driver class defined in handler-module
- flask-module is the name of your Flask object defined in flask-module, used to start your app
- instrumentation-level can be [0..2] where a higher value means the code instrumentation is richer
Once you have the handler running, white-box tests can be generated using:
java -jar ../core/target/evomaster.jar --maxTime [time] --outputFolder [path_to_tests] --outputFormat PYTHON_UNITTEST
Then you can run your generated tests using:
pip3 install unittest requests
python -m unittest [path_to_tests]
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for evomaster_client-0.0.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5df57f41b2f98abd25e61e9124b262c2673e66bde9325e7d7690ce830b9417ea |
|
MD5 | 2c108a1efe1c06b0800ff03db173f8ef |
|
BLAKE2b-256 | a152698f55e4a53209374db5148eb0fa5192132e0a31d1c57322276bec1b32f3 |