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-cli
Create 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: Silver
You 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=1
Update 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: 201
Run 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].