> ## Documentation Index
> Fetch the complete documentation index at: https://iso8583sim.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Load testing

> Load generator: send many requests concurrently and measure throughput and latency.

`iso8583sim.net.load`

## `LoadReport`

```python theme={null}
LoadReport(
    sent: int = 0,
    responses: int = 0,
    timeouts: int = 0,
    errors: int = 0,
    duration_s: float = 0.0,
    latencies_ms: list[float] = list(),
    response_codes: Counter[str] = Counter(),
)
```

Results of a load run. Latencies are in milliseconds.

### `throughput`

Responses per second.

### `percentile()`

```python theme={null}
def percentile(p: float) -> float
```

Latency percentile (nearest rank), e.g. percentile(95).

## Functions

### `run_load()`

```python theme={null}
async def run_load(
    make_client: Callable[[], ISO8583Client],
    count: int,
    concurrency: int = 10,
    connections: int = 1,
    network: CardNetwork | None = None,
    make_message: Callable[[int], ISO8583Message] | None = None,
) -> LoadReport
```

Send `count` requests with at most `concurrency` in flight, spread over `connections`.

**Parameters**

<ResponseField name="make_client" type="Callable[[], ISO8583Client]" required>
  Creates a (not yet connected) client
</ResponseField>

<ResponseField name="count" type="int" required>
  Number of requests to send
</ResponseField>

<ResponseField name="concurrency" type="int" default="10">
  Maximum requests waiting for a response at once
</ResponseField>

<ResponseField name="connections" type="int" default="1">
  Number of TCP connections to spread requests over
</ResponseField>

<ResponseField name="network" type="CardNetwork | None" default="None">
  Card network for the generated sample messages
</ResponseField>

<ResponseField name="make_message" type="Callable[[int], ISO8583Message] | None" default="None">
  Builds request i. Defaults to sample authorizations with unique STANs.
</ResponseField>

<ResponseField name="Returns" type="LoadReport">
  LoadReport with counts, response codes and latencies
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.