Skip to content

Latest commit

 

History

History

functions

Functions & S4 Gateway Load tests

Setup

Export vars

export SELECTED_NETWORKS=MUMBAI
export MUMBAI_KEYS=...
export MUMBAI_URLS=...
export LOKI_TOKEN=...
export LOKI_URL=...

See more config options in config.toml

Usage

All tests are split by network and in 3 groups:

  • HTTP payload only
  • Secrets decoding payload only
  • Realistic payload with args/http/secrets

Load test client is here

Load is controlled with 2 params:

  • RPS
  • requests_per_call (generating more events in a loop in the contract)

Soak is a stable workload for which there must be no issues

Stress is a peak workload for which issues must be analyzed

Load test client can execute 78 calls per request at max (gas limit)

Functions tests:

go test -v -run TestFunctionsLoad/mumbai_functions_soak_test_http
go test -v -run TestFunctionsLoad/mumbai_functions_stress_test_http
go test -v -run TestFunctionsLoad/mumbai_functions_soak_test_only_secrets
go test -v -run TestFunctionsLoad/mumbai_functions_stress_test_only_secrets
go test -v -run TestFunctionsLoad/mumbai_functions_soak_test_real
go test -v -run TestFunctionsLoad/mumbai_functions_stress_test_real

Gateway tests:

go test -v -run TestGatewayLoad/gateway_secrets_list_soak_test
go test -v -run TestGatewayLoad/gateway_secrets_set_soak_test

Chaos suite can be combined with any test, can be found here

Default dashboard

Redeploying client and funding a new sub

When contracts got redeployed on Mumbai just comment these lines in config

# comment both client and sub to automatically create a new pair
client_addr = "0x64a351fbAa61681A5a7e569Cc5A691150c4D73D2"
subscription_id = 23

Then insert new client addr and subscription number back

Debug

Show more logs

export WASP_LOG_LEVEL=debug

Dashboards

Deploying dashboard:

export GRAFANA_URL=...
export GRAFANA_TOKEN=...
export DATA_SOURCE_NAME=...
export DASHBOARD_FOLDER=LoadTests
export DASHBOARD_NAME=FunctionsV1

go run dashboard.go