An open API service indexing awesome lists of open source software.

https://github.com/parsecph/clobbr

⚡️ A tool to check the speed and resilience of your API endpoints against multiple parallel or sequence requests.
https://github.com/parsecph/clobbr

api cli developer-tools gql http performance requests speedtest terminal-app testing-tools tools web-app

Last synced: 8 days ago
JSON representation

⚡️ A tool to check the speed and resilience of your API endpoints against multiple parallel or sequence requests.

Awesome Lists containing this project

README

          


clobbr grid logo

clobbr typeface logo



Get Clobbr Free on Setapp


Download Clobbr on the Apple App Store


Download Clobbr on the Microsoft Store


Get Clobbr on npm

# Clobbr - test your api's response times

Test your api endpoints to see how well they perform under multiple requests (clobber your apis!), in sequence or parallel.

[![@clobbr/cli version](https://img.shields.io/npm/v/@clobbr/cli?label=cli&style=flat)](https://github.com/parsecph/clobbr/tree/master/packages/cli) [![@clobbr/api version](https://img.shields.io/npm/v/@clobbr/api?label=api&style=flat)](https://github.com/parsecph/clobbr/tree/master/packages/api) [![Tests](https://github.com/parsecph/clobbr/actions/workflows/nodejs.yml/badge.svg)](https://github.com/parsecph/clobbr/actions/workflows/nodejs.yml)

| Clobbr api endpoint performance and speed test Application demo | Clobbr api endpoint performance and speed test demo |
|-|-|

## Quick start

### Application
Download on [the Mac App Store](https://apps.apple.com/us/app/clobbr-test-endpoint-speed/id1629096010?mt=12) or [the Microsoft Store](https://apps.microsoft.com/store/detail/clobbr-api-speed-test/9P7CVP0HG5V9?hl=en-us&gl=us) and start testing your api endpoints.

### Command Line (cli)

```bash
npx @clobbr/cli run --url "https://api.github.com/zen"
```

Run `npx @clobbr/cli` to see all options or
head over to [@clobbr/cli docs](./packages/cli/README.md).

Binaries are also available for your favorite OS [here ⬇️ 💿](https://github.com/parsecph/clobbr/releases).

#### CI/CD
The cli can be used in a CI context too.
[See examples with popular CIs here ↗️](https://github.com/parsecph/clobbr-ci-examples)

## What the cli can do

This package can stress-test your API endpoints in various ways so you can get a better idea on how your app would work under a (closer to) real world scenario.

Configure requests, set iterations and analyze response times of your API endpoints in a fashionable ascii chart or jaw-dropping table.

On top of that, get stats on responses such as mean, standard deviation, 5th/95th/99th percentiles and more.

With all that, output to various file formats such as csv, json, yaml and more. Use in your CI of choice or just run it locally.

### Usage examples for the cli

#### Kitchen sink example
```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--method GET \
--iterations 50 \
--parallel \
--checks mean=200 median=200 stdDev=50 q5=150 q50=200 q95=250 q99=300 pctOfSuccess=95 \
--headersPath "headers.json" \
--dataPath "data.json" \
--outputFile \
--outputFormat yaml \
--table "compact"
```

> This is an advanced run configuration example. Typically, less config is needed. Read on for more.

#### Define iterations

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--iterations 30
```

clobbr send api requests in parallel

#### Send requests in parallel

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--iterations 30 \
--parallel
```

clobbr send api requests in parallel

#### Display a summary table

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--iterations 30 \
--table "full"
```

clobbr show detailed api response summary table

#### Display a minimal summary table

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--iterations 30 \
--table "compact"
```

clobbr show minimal api response summary table

#### Customize Request Method
`GET` is used as the default request method, but you can pass an optional request method, such as `POST`, `PUT`, `PATCH`, `DELETE` etc.

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--method OPTIONS
```

#### Send Headers
Arbitrary request headers are accepted as a JSON file.

> Tip 💡
>
> Passing { Cookie: "val" } adds a cookie to the request.

```json
# headers.json
{
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.Et9HFtf9R3",
"User-Agent": "Mozilla/5.0"
}
```

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--iterations 20 \
--headersPath "headers.json"
```

#### Send Data
Arbitrary request data is accepted as a JSON file.

```json
# data.json
{
"id": "17b",
"user": {
"firstName": "Jane",
"lastName": "Doe"
},
"visits": 50
}
```

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--iterations 20 \
--method "POST" \
--dataPath "data.json"
```

#### Analyze failed request iterations
By default, details on failed iterations are neatly displayed via the table option.

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--iterations 20 \
--method "POST" \
--headersPath "headers.json" \
--dataPath "data.json" \
--table "compact"
```

clobbr show minimal api response summary table

#### Get results in different file formats
Results will be shown in a human-readable format by default, but you can also get results in JSON, YAML and CSV format.

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--outputFormat json \
--outputFile
```

#### Run checks against results
Set target values for percentage of success (pctOfSuccess), mean (ms), median (ms), standardDeviation (stdDev in ms) and supported quantiles in ms (q5, q50, q95, q99).

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--checks mean=200 median=200 stdDev=50 q5=150 q50=200 q95=250 q99=300 pctOfSuccess=95
```

Run checks against results

Only include checks that you want to run. If you don't specify a check, it will not be run.

```bash
npx @clobbr/cli run \
--url "https://api.github.com/zen" \
--checks pctOfSuccess=90
```

-----------------

Save 100s of hours of work by using Page AI to generate a beautiful website. In just minutes!

| | |
| :- | :- |
| Page AI Logo
Page AI
AI Website Generator that designs and writes clean code.

Try the app on pageai.pro. | Page AI Logo |

-----------------

Apihustle is a collection of tools to test, improve and get to know your API inside and out.

[apihustle.com](https://apihustle.com)

| | | | |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | :------------------------------------------------------- | :------------------------------------------- |
| Page AI Logo | **Page AI** | AI Website Generator that designs and writes clean code. | [pageai.pro](https://pageai.pro) |
| Shipixen Logo | **Shipixen** | Create a personalized blog & landing page in minutes | [shipixen.com](https://shipixen.com) |
| Page UI Logo | **Page UI** | Landing page UI components for React & Next.js | [pageui.dev](https://pageui.dev) |
| Clobbr Logo | **Clobbr** | Load test your API endpoints. | [clobbr.app](https://clobbr.app) |
| Crontap Logo | **Crontap** | Schedule API calls using cron syntax. | [crontap.com](https://crontap.com) |
| CronTool Logo | **CronTool** | Debug multiple cron expressions on a calendar. | [tool.crontap.com](https://tool.crontap.com) |

-----------------


Apihustle Logo

-----------------