Skip to content

adc-locust

adc-locust is a Textual terminal UI for load-testing the load balancing and content switching behavior of Citrix ADC (NetScaler) appliances.

It uses the Citrix Nitro API SDK to read (never modify) an appliance's existing configuration — load-balancing (LB) virtual servers, their bound services, persistence settings, and Content Switching (CS) vservers that front them — and uses Locust to generate traffic against a selected vserver and confirm whether requests are actually distributed the way the configuration implies.

What it does

  1. Connects to a NetScaler over the Nitro API (read-only) and lists LB vservers that balance across more than one bound service.
  2. For a selected vserver, resolves how to reach it: directly, if it has a routable IP, or through the Content Switching vserver that fronts it if its address is 0.0.0.0 (see Load testing guide).
  3. Runs a headless Locust load test against that target, in either fairness mode (new session per request, reveals the raw LB algorithm) or persistence mode (sticky session, confirms COOKIEINSERT/similar persistence holds).
  4. Snapshots each bound service's Nitro service_stats request counter before and after the run and reports the delta per service, flagging any service that received far less than its expected share of traffic.

Quick start

pip install adc-locust
adc-locust

On first run, if no usable .env is found, adc-locust walks you through creating one interactively — see Configuration.