Skip to main content
No Result Found
Connect and get help from 7,000+ developers on our Discord community. Ask the CommunityAsk the Community

AppDynamics integration for BrowserStack Load Testing

Learn how to send BrowserStack Load Testing metrics and a dashboard to Splunk AppDynamics so you can correlate load-test traffic with application performance.

Use this guide to connect BrowserStack Load Testing with Splunk AppDynamics. You can then correlate test activity with backend performance, infrastructure health, and user experience in one place.

BrowserStack publishes metrics to AppDynamics Analytics, creates a custom dashboard you can open from your test results, and posts lifecycle events as overlays on that dashboard.

Prerequisites

Before you enable the AppDynamics integration, make sure you have:

  • Splunk AppDynamics SaaS tenant: A SaaS Controller, such as https://yourco.saas.appdynamics.com. The on-premises Controller is not supported.
  • API client access: Permission to create an API client under Administration in your Controller.
  • Analytics API key access: Permission to create an Analytics API key with the Manage Schema and Publish Custom Events permissions.
  • An application: An application already configured in your AppDynamics tenant that you want to correlate the load test against.
  • Your AppDynamics region: The region your Analytics tenant runs in, such as US or FRA.
  • BrowserStack Load Testing account: Access to BrowserStack Load Testing with admin access to at least one project.

AppDynamics requires two separate credentials. The API client (name and secret) gives BrowserStack access to the Controller to create the dashboard, and the Analytics API key lets BrowserStack publish metrics and events. The Analytics API key is not the same as the API client secret. Make sure the Analytics API key has the Manage Schema and Publish Custom Events permissions.

Integration overview

BrowserStack Load Testing streams metrics and events to your AppDynamics tenant so you can analyze how your systems behave under load.

For an overview of all APM options, see Application Performance Monitoring integration.

Core capabilities:

  • Metric streaming: BrowserStack aggregates performance data into 10-second buckets and publishes it to AppDynamics Analytics.
  • Virtual user metrics: Track how many virtual users (VUs) are active, how long tests run, and how many requests they generate.
  • Error and latency metrics: Monitor error rates and response-time percentiles to identify performance regressions.
  • Browser metrics: For browser-based load tests, capture core web vitals such as LCP, FCP, CLS, and INP.
  • Dimensions: Each metric carries dimensions, such as load test name, region, and executor, so that you can filter results inside AppDynamics.
  • Native dashboard: BrowserStack creates a preconfigured dashboard in your Controller on the first run and returns a deep link to it from the load-test report.

Get your AppDynamics credentials

AppDynamics uses two separate credentials: an API client for the Controller and an Analytics API key for publishing metrics and events. Follow these steps in your AppDynamics tenant to collect the values you paste into BrowserStack.

Get your Controller URL and application name

Collect the Controller URL and application name that BrowserStack uses to connect to your AppDynamics tenant:

  1. Sign in to your AppDynamics Controller, typically at https://<account>.saas.appdynamics.com.
  2. Copy the full Controller URL from your browser’s address bar, including the https:// prefix.
  3. In the top-left application picker, copy the exact name (case-sensitive) of the application you want to correlate the load test against.

Create an API client

Create an API client in your Controller to authenticate BrowserStack against the AppDynamics API:

  1. In the Controller, select the gear icon in the top-right and open Administration.
  2. Open the API Clients tab and select Create.
  3. Enter a name such as browserstack-load-testing. This becomes your API client name. In BrowserStack, enter only the name, without any @account suffix.
  4. Assign the Account Owner role. A custom role also works if it can create and update custom dashboards and read the target application.
  5. Select Save, then select Generate Secret and copy the secret immediately. AppDynamics shows it only once. For details, see the Splunk AppDynamics API clients documentation.

Create an Analytics API key

  1. In the Controller, open Analytics from the top navigation.
  2. Select the gear icon in the top-right, open Configuration, then open the API Keys tab.
  3. Select Add and enter a name such as browserstack-load-testing-analytics.
  4. Under Custom Analytics Events Permissions, select Can Manage Schema and Can Publish all Custom Analytics Events. Leave Can Query all Custom Analytics Events unselected.
  5. Select Create and copy the API key value immediately. AppDynamics shows it only once. For details, see the Splunk AppDynamics Analytics security documentation.

After you generate the credentials, store them securely. You can reference them in your BrowserStack Load Testing configuration through environment variables.

Select your AppDynamics region

AppDynamics SaaS runs Analytics on a different endpoint in each region, and every Controller URL uses the same <account>.saas.appdynamics.com format regardless of region. BrowserStack cannot infer the region from the Controller URL, so you select it explicitly when you configure the integration.

Choose the region code that matches your Analytics tenant:

Region code Region Analytics endpoint
US United States (default) analytics.api.appdynamics.com
FRA Frankfurt, EU fra-ana-api.saas.appdynamics.com
LON London, UK lon-ana-api.saas.appdynamics.com
BOM Mumbai, India bom-ana-api.saas.appdynamics.com
SIN Singapore sin-ana-api.saas.appdynamics.com
SYD Sydney, Australia syd-ana-api.saas.appdynamics.com

Supported metrics

BrowserStack Load Testing publishes the following metrics to the browserstackLoadTestMetrics2026V2 schema in AppDynamics Analytics. All metrics are sent automatically when AppDynamics is connected.

Category Metric name Description
Load vuMax Maximum virtual users in the window
Load vuCount Virtual users started in the window
Load vuEnded Virtual users ended in the window
Load testDuration Elapsed test time
Requests requestsTotal Total requests in the window
Requests requestsRateAvg Average requests per second
Errors errorsPercentage Error rate as a percentage
Response responseTimeAvg Mean response time, in milliseconds
Response responseTimeP90 90th percentile response time
Response responseTimeP95 95th percentile response time
Response responseTimeP99 99th percentile response time
Response responseTimeMax Maximum response time
Response responseTimeMin Minimum response time
Browser browserLcp Largest Contentful Paint
Browser browserInp Interaction to Next Paint
Browser browserTtfb Time to First Byte
Browser browserCls Cumulative Layout Shift
Browser browserFcp First Contentful Paint
Browser browserPlt Page Load Time
Browser browserNetworkCallsTotal Browser network call count
System systemCpuUsage Engine CPU usage percentage
System systemMemoryUsage Engine memory usage percentage

Every metric carries the testRunId, loadTestName, region, and executerName dimensions so that you can filter and group results. The executerName dimension uses this exact spelling in the schema, so match it in any query.

Lifecycle events

BrowserStack Load Testing posts lifecycle events to the same schema, so you can align spikes or drops in performance with changes in test state. Use these events as overlays on your AppDynamics dashboard to understand what was happening during a particular time range.

The following lifecycle events are supported:

Event When it fires
lifecycle_queued The test is created and waiting to run.
lifecycle_ready Test resources are provisioned and the test is about to start.
lifecycle_running The test transitions from queued to running.
lifecycle_rampup_started The ramp-up phase begins, for ramping load profiles.
lifecycle_rampdown_started The ramp-down phase begins.
lifecycle_iteration_started An iteration begins, for iteration-based load profiles.
lifecycle_iteration_ended An iteration completes.
lifecycle_completed The test reaches a terminal success state.
lifecycle_passed The test passes all configured thresholds.
lifecycle_failed The test reaches a terminal failure state.
lifecycle_error The test errors during execution.
lifecycle_stopped You manually stop the test.
lifecycle_timedout The test exceeds its configured duration.

Configure AppDynamics from the BrowserStack UI

This is the most common path. Collect the six values from your AppDynamics Controller, then paste them into the BrowserStack Connect form.

  1. In BrowserStack, go to Load Testing > Projects > Settings > Integrations.
  2. Under Application Performance Monitoring, find the AppDynamics tile and select Connect.
  3. Enter your Controller URL, Application Name, API Client Name, API Client Secret, Analytics API Key, and AppDynamics Region.
  4. Select Save. BrowserStack runs a short health check and shows a green Connected badge when all six values are valid. If a field is wrong, BrowserStack shows an inline error so that you can correct it.

Configure AppDynamics from the CLI

You configure the AppDynamics integration in the browserstack-load.yml file. The following example enables AppDynamics and sends metrics and events to your Controller.

browserstack-load.yml
Copy icon Copy

This configuration lives under the top-level integrations block in browserstack-load.yml alongside any other APM tools you configure.

Configuration reference

Each field under the connection block maps to a value you collected from your AppDynamics Controller:

connection.controllerUrl
The URL of your AppDynamics SaaS Controller, for example https://yourco.saas.appdynamics.com.
connection.applicationName
The name of the application in your AppDynamics tenant that you want to correlate the load test against. The name must match exactly, including case.
connection.apiClientName
The name of the API client you created in the Controller. Enter the name only, without the @account suffix. Store this in an environment variable, such as APPDYNAMICS_CLIENT_NAME.
connection.apiClientSecret
The secret generated when you created the API client. Store this securely in an environment variable, such as APPDYNAMICS_CLIENT_SECRET.
connection.analyticsApiKey
The Analytics API key used to publish metrics and events. Store this securely in an environment variable, such as APPDYNAMICS_ANALYTICS_API_KEY.
connection.region
The region your Analytics tenant runs in. Valid values are US, FRA, LON, BOM, SIN, and SYD.
metrics
Specifies which metrics to send. Use metrics: all to send every metric, or list specific metric names under select and assign tags to each group.
events
Specifies which lifecycle events to send. Use events: all to send every event, or list specific event names under select.

Best practices:

  • Store the API client secret and Analytics API key in environment variables instead of hard-coding them in the YAML file.
  • Verify that your Analytics API key has the Manage Schema and Publish Custom Events permissions.
  • Match the region to the AppDynamics tenant where you want to receive load-test data.

Verify the integration

After your next test run completes:

  1. In BrowserStack, open the test run’s detail page.
  2. Select APM Tools in the side panel.
  3. In the AppDynamics card, select Open in AppDynamics.
  4. Your AppDynamics dashboard for this load test opens in a new tab, populated with metrics and events from the run.

Troubleshooting

If the integration fails to save or no data appears in AppDynamics, use the following table to resolve common issues:

Symptom Likely cause Fix
Save fails with OAuth token exchange failed The API client name or secret is wrong, or the client was deleted. Recheck the API client in Administration > API Clients, recreate it if needed, and regenerate the secret.
Save fails with API Client lacks dashboard permissions The API client role cannot create or update dashboards. Assign the Account Owner role, or a custom role with dashboard create and update permission.
Save fails with Application not found The application name does not match an application in your tenant. Copy the name exactly from the application picker, including case, and paste it as-is.
Save fails with Analytics API key invalid The Analytics API key is wrong or missing required permissions. Confirm the key exists and has the Can Manage Schema and Can Publish all Custom Analytics Events permissions.
Save fails with Analytics endpoint unreachable from this region The selected region does not match your Analytics tenant. Select the region that matches your tenant. If you are unsure, contact your AppDynamics administrator.
No metrics appear after a test run The Analytics API key lacks the Can Manage Schema permission, so the schema was not created. Enable Can Manage Schema on the key and run the test again.
The dashboard is empty The dashboard was created before metric data arrived. Refresh the dashboard once. Later runs render automatically.

Where your credentials are stored

BrowserStack stores your credentials encrypted at rest. The Load Testing service never sees the raw API client secret or Analytics API key, and credentials are sent to AppDynamics only. To revoke access, select Disconnect on the AppDynamics tile in Integrations. BrowserStack stops publishing immediately. The dashboard and previously published metrics remain in your AWS account.

Limitations

  • BrowserStack supports Splunk AppDynamics SaaS only. The on-premises Controller is not supported. Contact BrowserStack Support if you need on-premises integration.
  • The region is a required field. BrowserStack cannot derive it from the Controller URL, so you must select it explicitly.
  • Trace correlation with the W3C traceparent and tracestate headers is not supported. Dashboard metrics and lifecycle events are unaffected.

Next steps

After you save your changes, run your load test from the CLI or dashboard. When the test completes, open AppDynamics and search for the configured metric names to validate that data is flowing correctly. Then build dashboards and alerts based on the metrics that matter most to your team.

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback

Is this page helping you?

Yes
No

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback!

Talk to an Expert
Download Copy Check Circle