Hyperscript is a tool for testing HTTP requests with flexible configuration and validation.
- HTTP Methods: Test GET, POST, PUT, and DELETE requests.
- Validation: Check status codes, content types, and body content.
- Conditions: Validate if responses contain specific values, match exact values, or if numeric fields meet criteria (less than, greater than, equal to).
- Concurrency: Run tests in parallel to improve efficiency.
- Reporting: Detailed success and failure messages, with optional verbose output.
Install with pip:
pip install hyperscript-cliCreate a YAML file (config.yaml) for your tests. Example:
global:
url: https://freetestapi.com
run:
- name: Get All Cars
path: /api/v1/cars
expect:
contentType: application/json
status: 200
- name: Get Single Car
path: /api/v1/cars/1
expect:
contentType: application/json
status:
- value: 200
- value: 201
contains:
id: 1
equalTo:
make: Toyota
model: Corolla
lessThan:
price: 30000
greaterThan:
year: 2010
body:
make: Toyota
model: Corolla
color: SilverYou can use environment variables in your configuration. For example, use {{VARIABLE_NAME}} syntax to reference environment variables.
Set environment variables before running your tests:
export BASE_URL=https://freetestapi.com
export CAR_ID=1Update config.yaml to use these variables:
global:
url: "{{BASE_URL}}"
run:
- name: Get Single Car
path: /api/v1/cars/{{CAR_ID}}
expect:
contentType: application/json
status:
- value: 200
- value: 201Run tests with the hyperscript command:
hyperscript path/to/config.yaml-
config_file: Path to the YAML configuration file. Default ishypertest.yml.Example:
hyperscript path/to/config.yaml
-
--skip-error: Continue with the next test on error.Example:
hyperscript path/to/config.yaml --skip-error
-
--verbose: Enable detailed logging for more comprehensive output.Example:
hyperscript path/to/config.yaml --verbose
-
--concurrency: Set the number of concurrent tests to run. If not specified, tests will run sequentially.Example:
hyperscript path/to/config.yaml --concurrency 5
Fork the repository and submit a pull request with your changes.
MIT License. See the LICENSE file.
For questions, email [email protected].