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¶
- Connects to a NetScaler over the Nitro API (read-only) and lists LB vservers that balance across more than one bound service.
- 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). - 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). - Snapshots each bound service's Nitro
service_statsrequest 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.