Load Test
Getting Started
Getting Started
Advanced Generation
Load Test Generation from Trace
Introduction
This guide will show you how to generate load tests for complex scenarios with Skyramp using Skyramp-collected traces. We'll demonstrate using Skyramp’s Demo Shop API, a simple e-commerce API for product and order management. Learn more about the Demo Shop API.
Ensure you have Skyramp CLI and relevant Libraries installed. If not, refer to the Installation Guide.
Generate Load Tests across Endpoints
To generate load tests that span across multiple endpoints or services, Skyramp requires trace information to reliably generate the test case. Learn more about trace collection with Skyramp.
Following, we will generate a test for a simple scenario across endpoints. You can download the trace file here.
POST of a new product
POST of a new order containing the new product
GET of the new order
DELETE of the new order
Load Test Generation from Trace
Introduction
This guide will show you how to generate load tests for complex scenarios with Skyramp using Skyramp-collected traces. We'll demonstrate using Skyramp’s Demo Shop API, a simple e-commerce API for product and order management. Learn more about the Demo Shop API.
Ensure you have Skyramp CLI and relevant Libraries installed. If not, refer to the Installation Guide.
Generate Load Tests across Endpoints
To generate load tests that span across multiple endpoints or services, Skyramp requires trace information to reliably generate the test case. Learn more about trace collection with Skyramp.
Following, we will generate a test for a simple scenario across endpoints. You can download the trace file here.
POST of a new product
POST of a new order containing the new product
GET of the new order
DELETE of the new order
Load Test Generation from Trace
Introduction
This guide will show you how to generate load tests for complex scenarios with Skyramp using Skyramp-collected traces. We'll demonstrate using Skyramp’s Demo Shop API, a simple e-commerce API for product and order management. Learn more about the Demo Shop API.
Ensure you have Skyramp CLI and relevant Libraries installed. If not, refer to the Installation Guide.
Generate Load Tests across Endpoints
To generate load tests that span across multiple endpoints or services, Skyramp requires trace information to reliably generate the test case. Learn more about trace collection with Skyramp.
Following, we will generate a test for a simple scenario across endpoints. You can download the trace file here.
POST of a new product
POST of a new order containing the new product
GET of the new order
DELETE of the new order
Python
Java
Run the following command in your terminal to generate the load test:
skyramp generate load rest \
--language python \
--framework pytest \
--trace trace.json
Upon completion, Skyramp creates a fully executable Python test file (load_test.py
) that can be run immediately.
Explanation of Command
Below are a few flags to customize the test generation.
Compared to other commands, test generation from trace does not require a specified URL - we extract the various endpoints directly from the trace.
--language
: Specifies the test output language.--framework
: Specify the test execution framework of choice.--trace
: Points to the Skyramp-collected trace used to generate the test. We extract all relevant scenario and request information directly from this file.
Additional Flags
--include
: Specify a comma-separated list of FQDNs that you want Skyramp to generate requests for.--exclude
: Specify a comma-separated list of FQDNs for which you do not want Skyram to generate requests for. This flag takes precedence over--include
if a FQDN is specified in both.--runtime
: Select the test runtime environment [Local, Docker, Kubernetes]--output
: Specify the name of the generated test file.
Load Flags
--default-count
: Number of times Skyramp executes the defined request [default=None]; this flag needs to be set ifload-duration
is set to 0.--default-duration
: Duration of the load test execution in seconds; this flag cannot be used in combination withdefault-load-count
[default=5]--default-num-threads
: Number of concurrent threads for load test [default=1]. Concurrent threads represent virtual users enabling you to test the vertical scalability of the service.--default-rampup-duration
: Specify the duration that Skyramp incrementally increases the requests per second (RPS) until the target RPS are reached [default=None]--default-rampup-interval
: Specify how often Skyramp increases the RPS until target RPS are reached [default=None]--default-target-rps
: Specify the maximum RPS of the load test [default=None]
FQDNs need to be specified either as an exact path to the endpoint or in combination with a wildcard:
demoshop.skyramp.dev/products
will only generate requests for POST and GET of the products endpointdemoshop.skyramp.dev/products/*
will also include all nested endpoints
For endpoints that require path parameters, please replace the path parameter with the wildcard:
Convert
demoshop.skyramp.dev/products/{product_id}/reviews
todemoshop.skyramp.dev/products/*/reviews
Execute your Test
You can execute the generated tests without any additional adjustments to the code.
Asynch Test Execution Behavior
Unlike other types of Skyramp tests, load testing is asynchronous, and every command in the test is executed without waiting for feedback. This allows for a more accurate understanding of the stresses a system experiences.
If a load duration rather than a count is provided, the Skyramp worker tries to maximize RPS for the specified load test duration while collecting the latency and failure rate of those requests
Set Authentication (if applicable)
Skyramp’s sample application doesn't require any authentication.
To test against an application that does require authentication, pass your token using an environment variable. By default, Skyramp expects a Bearer Token but we support additional authentication methods.
export SKYRAMP_TEST_TOKEN=$your_auth_token
Run the test
Since the Skyramp Demo Shop does not require authentication, you can immediately execute the generated test using Python - this allows us to display more meaningful load test results. If you prefer, you can also run the test using the specified framework from the generation command.
python3 load_test.py
The test automatically identifies the relevant path parameters, intelligently chains the different requests together, and executes the test 5 times.
Reviewing Test Results
Skyramp automatically collects and prints failure rates and latency metrics. We can see that all 5 test runs have been successful.
Additional information on how to adjust the results output will be added soon!

Next Steps
Congratulations on generating a load test from traces! To learn more about the generated code, please visit the Load Test Documentation describing the core concepts.
Let’s automate testing together!
Related topics
Python
Java
Run the following command in your terminal to generate the load test:
skyramp generate load rest \
--language python \
--framework pytest \
--trace trace.json
Upon completion, Skyramp creates a fully executable Python test file (load_test.py
) that can be run immediately.
Explanation of Command
Below are a few flags to customize the test generation.
Compared to other commands, test generation from trace does not require a specified URL - we extract the various endpoints directly from the trace.
--language
: Specifies the test output language.--framework
: Specify the test execution framework of choice.--trace
: Points to the Skyramp-collected trace used to generate the test. We extract all relevant scenario and request information directly from this file.
Additional Flags
--include
: Specify a comma-separated list of FQDNs that you want Skyramp to generate requests for.--exclude
: Specify a comma-separated list of FQDNs for which you do not want Skyram to generate requests for. This flag takes precedence over--include
if a FQDN is specified in both.--runtime
: Select the test runtime environment [Local, Docker, Kubernetes]--output
: Specify the name of the generated test file.
Load Flags
--default-count
: Number of times Skyramp executes the defined request [default=None]; this flag needs to be set ifload-duration
is set to 0.--default-duration
: Duration of the load test execution in seconds; this flag cannot be used in combination withdefault-load-count
[default=5]--default-num-threads
: Number of concurrent threads for load test [default=1]. Concurrent threads represent virtual users enabling you to test the vertical scalability of the service.--default-rampup-duration
: Specify the duration that Skyramp incrementally increases the requests per second (RPS) until the target RPS are reached [default=None]--default-rampup-interval
: Specify how often Skyramp increases the RPS until target RPS are reached [default=None]--default-target-rps
: Specify the maximum RPS of the load test [default=None]
FQDNs need to be specified either as an exact path to the endpoint or in combination with a wildcard:
demoshop.skyramp.dev/products
will only generate requests for POST and GET of the products endpointdemoshop.skyramp.dev/products/*
will also include all nested endpoints
For endpoints that require path parameters, please replace the path parameter with the wildcard:
Convert
demoshop.skyramp.dev/products/{product_id}/reviews
todemoshop.skyramp.dev/products/*/reviews
Execute your Test
You can execute the generated tests without any additional adjustments to the code.
Asynch Test Execution Behavior
Unlike other types of Skyramp tests, load testing is asynchronous, and every command in the test is executed without waiting for feedback. This allows for a more accurate understanding of the stresses a system experiences.
If a load duration rather than a count is provided, the Skyramp worker tries to maximize RPS for the specified load test duration while collecting the latency and failure rate of those requests
Set Authentication (if applicable)
Skyramp’s sample application doesn't require any authentication.
To test against an application that does require authentication, pass your token using an environment variable. By default, Skyramp expects a Bearer Token but we support additional authentication methods.
export SKYRAMP_TEST_TOKEN=$your_auth_token
Run the test
Since the Skyramp Demo Shop does not require authentication, you can immediately execute the generated test using Python - this allows us to display more meaningful load test results. If you prefer, you can also run the test using the specified framework from the generation command.
python3 load_test.py
The test automatically identifies the relevant path parameters, intelligently chains the different requests together, and executes the test 5 times.
Reviewing Test Results
Skyramp automatically collects and prints failure rates and latency metrics. We can see that all 5 test runs have been successful.
Additional information on how to adjust the results output will be added soon!

Next Steps
Congratulations on generating a load test from traces! To learn more about the generated code, please visit the Load Test Documentation describing the core concepts.
Let’s automate testing together!
Related topics
Python
Java
Run the following command in your terminal to generate the load test:
skyramp generate load rest \
--language python \
--framework pytest \
--trace trace.json
Upon completion, Skyramp creates a fully executable Python test file (load_test.py
) that can be run immediately.
Explanation of Command
Below are a few flags to customize the test generation.
Compared to other commands, test generation from trace does not require a specified URL - we extract the various endpoints directly from the trace.
--language
: Specifies the test output language.--framework
: Specify the test execution framework of choice.--trace
: Points to the Skyramp-collected trace used to generate the test. We extract all relevant scenario and request information directly from this file.
Additional Flags
--include
: Specify a comma-separated list of FQDNs that you want Skyramp to generate requests for.--exclude
: Specify a comma-separated list of FQDNs for which you do not want Skyram to generate requests for. This flag takes precedence over--include
if a FQDN is specified in both.--runtime
: Select the test runtime environment [Local, Docker, Kubernetes]--output
: Specify the name of the generated test file.
Load Flags
--default-count
: Number of times Skyramp executes the defined request [default=None]; this flag needs to be set ifload-duration
is set to 0.--default-duration
: Duration of the load test execution in seconds; this flag cannot be used in combination withdefault-load-count
[default=5]--default-num-threads
: Number of concurrent threads for load test [default=1]. Concurrent threads represent virtual users enabling you to test the vertical scalability of the service.--default-rampup-duration
: Specify the duration that Skyramp incrementally increases the requests per second (RPS) until the target RPS are reached [default=None]--default-rampup-interval
: Specify how often Skyramp increases the RPS until target RPS are reached [default=None]--default-target-rps
: Specify the maximum RPS of the load test [default=None]
FQDNs need to be specified either as an exact path to the endpoint or in combination with a wildcard:
demoshop.skyramp.dev/products
will only generate requests for POST and GET of the products endpointdemoshop.skyramp.dev/products/*
will also include all nested endpoints
For endpoints that require path parameters, please replace the path parameter with the wildcard:
Convert
demoshop.skyramp.dev/products/{product_id}/reviews
todemoshop.skyramp.dev/products/*/reviews
Execute your Test
You can execute the generated tests without any additional adjustments to the code.
Asynch Test Execution Behavior
Unlike other types of Skyramp tests, load testing is asynchronous, and every command in the test is executed without waiting for feedback. This allows for a more accurate understanding of the stresses a system experiences.
If a load duration rather than a count is provided, the Skyramp worker tries to maximize RPS for the specified load test duration while collecting the latency and failure rate of those requests
Set Authentication (if applicable)
Skyramp’s sample application doesn't require any authentication.
To test against an application that does require authentication, pass your token using an environment variable. By default, Skyramp expects a Bearer Token but we support additional authentication methods.
export SKYRAMP_TEST_TOKEN=$your_auth_token
Run the test
Since the Skyramp Demo Shop does not require authentication, you can immediately execute the generated test using Python - this allows us to display more meaningful load test results. If you prefer, you can also run the test using the specified framework from the generation command.
python3 load_test.py
The test automatically identifies the relevant path parameters, intelligently chains the different requests together, and executes the test 5 times.
Reviewing Test Results
Skyramp automatically collects and prints failure rates and latency metrics. We can see that all 5 test runs have been successful.
Additional information on how to adjust the results output will be added soon!

Next Steps
Congratulations on generating a load test from traces! To learn more about the generated code, please visit the Load Test Documentation describing the core concepts.
Let’s automate testing together!