# BLASTA

> Performance & Load Testing Platform by AWHADI. Load and performance testing with a web interface and a command line. It generates load against websites, REST, GraphQL and SOAP APIs, gRPC, WebSocket, TCP, databases, caches, queues, mail servers and identity providers (OIDC, SAML, LDAP), shows live charts, keeps a history of runs and can fail a test against pass/fail targets (SLOs). 77 ready-made templates with 1803 jobs.

BLASTA runs as a Docker container or a single static binary. Every template can be read without an account; using a job needs an account.

## Start here

- [Open BLASTA](https://perftest.awhadi.online/): the app (Test page, templates, history)
- [All templates](https://perftest.awhadi.online/templates): the full catalogue by category

## API templates

- [Authenticated APIs](https://perftest.awhadi.online/templates/auth-api): Load tests APIs that sit behind authentication: requests with a bearer token or an API key, the login endpoint, unauthenticated calls that must be refused with…
- [GraphQL API](https://perftest.awhadi.online/templates/api-graphql): Load tests a GraphQL endpoint with a simple query, a field query and schema introspection. It shows how query parsing and resolvers hold up as the request rate…
- [REST API (generic)](https://perftest.awhadi.online/templates/api-rest): A starting point for any JSON REST API: reading a collection, fetching a single resource, a HEAD probe and a POST that creates data. It shows the latency and…
- [REST API patterns (any service)](https://perftest.awhadi.online/templates/rest-patterns): Covers every common REST scenario for any JSON API: lists, pagination (first page and deep offset), filtering, sorting, sparse fields and expanded relations…

## CMS templates

- [Drupal](https://perftest.awhadi.online/templates/drupal): Load tests Drupal: the front page, a node page, the JSON:API collection, core search, a views listing and the admin overview. It shows what the page cache and…
- [Ghost](https://perftest.awhadi.online/templates/ghost): Load tests a Ghost blog: the front page, a single post bypassing the cache, a tag archive, the Content API and the RSS feed. It shows how Node.js and MySQL…
- [Joomla](https://perftest.awhadi.online/templates/joomla): Load tests Joomla 4 or 5: the front page, an article page, the REST API for articles, smart search, the login form and the administrator, plus a capacity ramp…
- [TYPO3](https://perftest.awhadi.online/templates/typo3): Load tests TYPO3: the front page, a rendered page, the sitemap and the backend login form (read-only). It shows how the page cache and rendering perform.
- [WordPress](https://perftest.awhadi.online/templates/wordpress): Load tests WordPress: the front page, a single post bypassing the page cache, REST API posts, search, the RSS feed and the wp-admin dashboard, plus a capacity…

## Cache templates

- [Memcached](https://perftest.awhadi.online/templates/memcached): Covers every common Memcached pattern over the text protocol: set and get, hits and misses, multi-get, counters, touch, compare-and-swap, delete, a 64 KB item…
- [Redis / Valkey / KeyDB / Dragonfly](https://perftest.awhadi.online/templates/redis): Covers the common Redis, Valkey, KeyDB and Dragonfly workload patterns over the RESP protocol: strings, counters, hashes, lists, sets, sorted sets…
- [Redis Sentinel](https://perftest.awhadi.online/templates/redis-sentinel): Load tests Redis Sentinel on port 26379: PING, master address discovery, the masters and replicas lists, a quorum check and a reconnect storm after a failover…

## Data services templates

- [ClickHouse](https://perftest.awhadi.online/templates/clickhouse): Load tests ClickHouse over its HTTP interface: a ping, a trivial SELECT 1, a scan of ten million generated rows, a GROUP BY on generated data and a…
- [CouchDB](https://perftest.awhadi.online/templates/couchdb): Load tests Apache CouchDB: the _up liveness check, the welcome document, database info, listing documents with _all_docs, listing databases and creating…
- [InfluxDB](https://perftest.awhadi.online/templates/influxdb): Load tests InfluxDB 1.x and 2.x: ping and health, SHOW DATABASES, a query of recent points, writing a single point and writing a batch of twenty. It shows…
- [MinIO / S3-compatible storage](https://perftest.awhadi.online/templates/minio): Load tests MinIO, Ceph RGW or any S3-compatible storage: the live, ready and cluster health probes, GET and HEAD of an object, bucket listing, a missing object…

## Database templates

- [MySQL / MariaDB reads](https://perftest.awhadi.online/templates/mysql-read): Load tests MySQL or MariaDB with read-only queries: a single-row select, COUNT(*), an indexed lookup and a connection pool saturation test. It shows query…
- [MySQL / MariaDB writes](https://perftest.awhadi.online/templates/mysql-write): Load tests MySQL or MariaDB write throughput with single-row and multi-row INSERTs. The jobs create real rows, so run them only against a staging database.
- [PostgreSQL reads](https://perftest.awhadi.online/templates/postgres-read): Load tests PostgreSQL with read-only queries: a single-row select, count(*), an indexed lookup, a two-table join and pool saturation. Writes are refused unless…
- [PostgreSQL writes](https://perftest.awhadi.online/templates/postgres-write): Load tests PostgreSQL write throughput with INSERT and INSERT ... SELECT. The jobs create real rows, so use a staging database only.
- [WordPress database (MySQL)](https://perftest.awhadi.online/templates/wordpress-db): Runs the queries WordPress executes most straight against MySQL or MariaDB: the size of autoloaded options, recent published posts, posts joined to postmeta, a…

## Directory templates

- [LDAP / Active Directory](https://perftest.awhadi.online/templates/ldap): Load tests a directory server such as OpenLDAP, 389 Directory Server, Active Directory or FreeIPA: plain and LDAPS connection accepts, an anonymous bind, a…

## E-commerce templates

- [Magento / OpenMage](https://perftest.awhadi.online/templates/magento): Load tests Magento or OpenMage: the home page, a category listing, a product page, the cart page and the REST products API. It shows how the full-page cache…
- [PrestaShop](https://perftest.awhadi.online/templates/prestashop): Load tests PrestaShop: the home page, a category listing, a product page, search and the webservice API. It shows how the catalogue and search cope as shoppers…
- [Shopware 6](https://perftest.awhadi.online/templates/shopware): Load tests Shopware 6: the home page, a product listing, a product detail page and the Store API. It shows how the storefront cache and the API cope with…
- [WooCommerce](https://perftest.awhadi.online/templates/woocommerce): Load tests WooCommerce on WordPress: the shop page, a product page, the Store API, cart fragments, the cart, the checkout page and the my account login form…

## Forum templates

- [Discourse](https://perftest.awhadi.online/templates/discourse): Load tests a Discourse forum: the latest topics list, a category, a single topic as JSON, JSON search and the latest JSON feed. Discourse runs on Rails with…
- [phpBB](https://perftest.awhadi.online/templates/phpbb): Load tests a phpBB forum: the forum index, a forum view, a topic view, search and the user control panel. It shows how PHP and MySQL handle readers and the…

## Frameworks templates

- [Django](https://perftest.awhadi.online/templates/django): Load tests a Django site behind Gunicorn or uWSGI: the home page, the admin login page, a static file and a Django REST framework list endpoint. Comparing the…
- [Java (Spring Boot / Tomcat)](https://perftest.awhadi.online/templates/java-web): Load tests a Java web application on Spring Boot, Tomcat or Jetty: the actuator health endpoint, a Prometheus metrics scrape, the home page, a static resource…
- [Laravel](https://perftest.awhadi.online/templates/laravel): Load tests a Laravel app on PHP-FPM: the /up health route, the home page, a JSON API route, the Sanctum CSRF cookie endpoint and the login page. It shows the…
- [Ruby on Rails](https://perftest.awhadi.online/templates/rails): Load tests a Ruby on Rails app on Puma: the /up health check, the home page, a JSON endpoint and a compiled asset. It shows request throughput per worker and…

## Generic templates

- [Generic LAMP / LEMP](https://perftest.awhadi.online/templates/lamp): A gentle starting point for any PHP or Python stack behind nginx or Apache: the root document, the application entry point, 404 handling and the server's…

## Headless CMS templates

- [Strapi / Directus (headless CMS)](https://perftest.awhadi.online/templates/strapi): Load tests a headless CMS such as Strapi or Directus: a REST collection, a single REST entry and a GraphQL query. It shows how the content API and its database…

## Identity templates

- [AWS Cognito](https://perftest.awhadi.online/templates/cognito): Load tests an Amazon Cognito user pool: the discovery document, the JSON web key set, and the hosted UI login page, token (client credentials) and userinfo…
- [Auth0](https://perftest.awhadi.online/templates/auth0): Load tests an Auth0 tenant: the discovery document and signing keys, the authorization endpoint, silent authentication, error cases for unknown clients and…
- [Authelia](https://perftest.awhadi.online/templates/authelia): Load tests Authelia as an OpenID Connect provider (discovery, keys, the authorization and token endpoints with their error cases) and the forward-auth endpoint…
- [Dex](https://perftest.awhadi.online/templates/dex): Load tests Dex as an OpenID Connect provider: discovery, signing keys, the authorization endpoint, silent authentication, and the token endpoint with its error…
- [FusionAuth](https://perftest.awhadi.online/templates/fusionauth): Load tests FusionAuth: its OAuth 2.0 and OpenID Connect endpoints (discovery, keys, authorize and token with their error cases), the status endpoint and the…
- [Keycloak (OIDC)](https://perftest.awhadi.online/templates/keycloak): A complete OpenID Connect and OAuth 2.0 test of a Keycloak realm: discovery, keys, authorization, every common token grant and its error cases, introspection…
- [Microsoft Entra ID (Azure AD)](https://perftest.awhadi.online/templates/entra-id): Load tests the Microsoft Entra ID (Azure AD) v2.0 endpoints for one tenant: discovery, signing keys, the authorize endpoint, token requests (client…
- [OIDC / OAuth 2.0 (any provider)](https://perftest.awhadi.online/templates/oidc-generic): A complete OpenID Connect and OAuth 2.0 test for any provider: discovery, keys, authorization, silent authentication, every standard token grant with its error…
- [Okta](https://perftest.awhadi.online/templates/okta): Load tests an Okta org authorization server: discovery, keys, authorize, token, userinfo, introspect and revoke. Okta enforces rate limits per org, so use a…
- [Ory Hydra](https://perftest.awhadi.online/templates/ory-hydra): Load tests Ory Hydra's public API and the admin introspection endpoint: discovery, keys, and the authorization and token endpoints with their error cases. It…
- [ZITADEL](https://perftest.awhadi.online/templates/zitadel): Load tests ZITADEL's OpenID Connect endpoints and health: discovery, keys, and the authorization and token endpoints with their error cases. It shows how…
- [authentik](https://perftest.awhadi.online/templates/authentik): Load tests authentik's per-application OpenID Connect provider: discovery, keys, the authorization and token endpoints with their error cases, plus the flow…

## Infrastructure templates

- [HashiCorp Consul](https://perftest.awhadi.online/templates/consul): Load tests a HashiCorp Consul agent or server through its HTTP API: leader status, the service catalog, service health (including stale reads that any server…
- [HashiCorp Vault](https://perftest.awhadi.online/templates/vault): Load tests HashiCorp Vault: the health and seal-status endpoints, token lookup, KV v2 secret reads and writes, and a request with an invalid token. It shows…
- [etcd](https://perftest.awhadi.online/templates/etcd): Load tests etcd v3 through its gRPC gateway: health, version, linearizable and serializable key reads, key writes and a metrics scrape. Comparing the two read…

## JavaScript templates

- [Next.js / Nuxt / SSR](https://perftest.awhadi.online/templates/nextjs): Load tests a server-rendered JavaScript app (Next.js, Nuxt or similar) on Node.js: the SSR home page, an application route, the framework's data endpoint and a…

## Mail templates

- [Mail servers (SMTP / IMAP / POP3)](https://perftest.awhadi.online/templates/mail-servers): Load tests the mail protocols of Postfix, Exim, Dovecot, Courier, Sendmail, Stalwart or Exchange: greeting checks for SMTP, submission, IMAP and POP3…
- [Mail web services (webmail, autodiscover, MTA-STS, spam filter)](https://perftest.awhadi.online/templates/mail-web): Load tests the HTTP side of a mail system: the Roundcube and SOGo login pages, a webmail inbox without a session, Thunderbird autoconfig, Outlook autodiscover…

## Messaging templates

- [MQTT broker (Mosquitto / EMQX / HiveMQ / VerneMQ)](https://perftest.awhadi.online/templates/mqtt): Load tests an MQTT broker (Mosquitto, EMQX, HiveMQ, VerneMQ): MQTT 3.1.1 and 5 connect handshakes with the CONNACK checked, a TCP accept-only test and a…
- [NATS](https://perftest.awhadi.online/templates/nats): Load tests a NATS server: connecting and reading the INFO greeting, and the monitoring endpoints healthz, varz and connz. It shows how quickly the server…
- [RabbitMQ](https://perftest.awhadi.online/templates/rabbitmq): Load tests RabbitMQ: the AMQP protocol handshake, the alarms health check, the management API overview, queue list and connection list, and a management call…

## Operations templates

- [Grafana and Prometheus](https://perftest.awhadi.online/templates/observability): Load tests Grafana and Prometheus: the Grafana health API and login page, Prometheus health, an instant query and a one-hour range query. It shows how…

## Reliability templates

- [Health checks and rate limiting](https://perftest.awhadi.online/templates/health-and-limits): Checks the guard rails in front of your service: a health endpoint, traffic just under a rate limit, traffic well over it, and a burst followed by silence. It…

## SAML templates

- [AD FS (SAML, WS-Fed and OIDC)](https://perftest.awhadi.online/templates/adfs): Load tests an AD FS federation server through every door it exposes: the federation metadata, SAML 2.0 single sign-on in the Redirect and POST bindings…
- [Keycloak (SAML)](https://perftest.awhadi.online/templates/keycloak-saml): Load tests a Keycloak realm acting as a SAML 2.0 identity provider: the IdP descriptor, SP-initiated sign-on in both bindings, passive and forced…
- [SAML 2.0 IdP (any provider)](https://perftest.awhadi.online/templates/saml-idp): Load tests any SAML 2.0 identity provider: metadata, SP-initiated sign-on in both bindings, passive and forced login, unknown and malformed requests, single…
- [SAML service provider (Shibboleth SP / mod_auth_mellon / SimpleSAMLphp SP)](https://perftest.awhadi.online/templates/saml-sp): Load tests a SAML service provider such as Shibboleth SP, mod_auth_mellon, SimpleSAMLphp SP or Spring Security SAML: SP metadata, a public page, a protected…
- [Shibboleth IdP](https://perftest.awhadi.online/templates/shibboleth-idp): Load tests a Shibboleth Identity Provider (v4 and v5): metadata, SP-initiated SSO in both bindings, passive and forced login, unknown and malformed requests…
- [SimpleSAMLphp IdP](https://perftest.awhadi.online/templates/simplesamlphp-idp): Load tests SimpleSAMLphp as a SAML identity provider: metadata, sign-on in both bindings, passive and forced login, unknown and malformed requests, logout, a…

## SOAP templates

- [SOAP web services](https://perftest.awhadi.online/templates/soap-services): Load tests any SOAP service (JAX-WS, WCF, Axis, Spring-WS, PHP SoapServer): the WSDL, SOAP 1.1 and 1.2 calls, WS-Security, and hardening checks such as…

## Search templates

- [Elasticsearch / OpenSearch](https://perftest.awhadi.online/templates/elasticsearch): Load tests Elasticsearch or OpenSearch: cluster health, a match_all search, a full-text match, a terms aggregation, the count API and indexing a document. It…
- [Meilisearch](https://perftest.awhadi.online/templates/meilisearch): Load tests Meilisearch with a health check and typo-tolerant search queries. It shows search latency as many people type at once, which is the pattern…

## Self-hosted apps templates

- [Moodle](https://perftest.awhadi.online/templates/moodle): Load tests Moodle: the front page, the login page, a course page and the AJAX service. Moodle leans heavily on its database and cache, so this shows where PHP…
- [Nextcloud](https://perftest.awhadi.online/templates/nextcloud): Load tests Nextcloud: status.php, the login page, the OCS capabilities API and a WebDAV PROPFIND file listing. It shows how PHP, the database and Redis cope…

## Static templates

- [Static site (Hugo, Jekyll, Astro)](https://perftest.awhadi.online/templates/static-site): Load tests a static site built with Hugo, Jekyll or Astro: the home page, an inner page, sitemap.xml, a static asset and the 404 page. It shows the ceiling of…

## TCP templates

- [Common TCP services](https://perftest.awhadi.online/templates/tcp-services): Probes common TCP services and waits for a real reply: a Redis PING, a Memcached version, the SMTP banner and the SSH banner. It shows that these services…
- [TCP service](https://perftest.awhadi.online/templates/tcp-generic): Load tests any TCP service: connecting and closing, and an echo round trip. It shows connection setup time and round-trip latency.

## Test patterns templates

- [Test patterns (any URL)](https://perftest.awhadi.online/templates/test-patterns): The standard test shapes against any URL: a smoke test, average load, a stress ramp to four times normal, a sudden spike, a breakpoint ramp that runs until the…

## Web performance templates

- [Caching and CDN](https://perftest.awhadi.online/templates/cache-cdn): Measures how a CDN, reverse proxy or browser cache behaves under load: a normal cached request against a cache bypass that reaches the origin, conditional…

## WebSocket templates

- [Real-time (Socket.IO / SignalR)](https://perftest.awhadi.online/templates/realtime): Load tests real-time servers: the Socket.IO polling handshake, the Socket.IO WebSocket upgrade and the SignalR negotiate call. It shows how many connections…
- [WebSocket](https://perftest.awhadi.online/templates/websocket-generic): Load tests a WebSocket endpoint: a handshake-only test and an echo round trip. It shows the time to open a connection and the message round-trip latency.

## Wiki templates

- [MediaWiki](https://perftest.awhadi.online/templates/mediawiki): Load tests MediaWiki: the main page, action=parse, a list query through the API, full-text search and the parse of an edit form. It shows how the parser cache…

## gRPC templates

- [gRPC unary](https://perftest.awhadi.online/templates/grpc-generic): Load tests a gRPC server that has reflection turned on: a unary call and a call with a small payload. It shows per-call latency and throughput over HTTP/2…
