Skip to content

ci: Add agent configurability and convenient local testing to performance tests#3498

Merged
nr-ahemsath merged 27 commits intomainfrom
ci/local-performance-testing
Mar 23, 2026
Merged

ci: Add agent configurability and convenient local testing to performance tests#3498
nr-ahemsath merged 27 commits intomainfrom
ci/local-performance-testing

Conversation

@nr-ahemsath
Copy link
Copy Markdown
Member

Description

This PR contains several improvements to the performance testing solution:

  1. Add a script (run-performance-tests.py) for easily running performance tests locally. Python was chosen because I wanted to use a YAML config file for the tests, and bash has no native YAML parsing capability.
  2. The bash script that ran an individual test was rewritten in Python. This keeps things simpler, and eliminates a whole bunch of issues around supporting these scripts on Windows, particularly when it comes to path strings and how they are interpreted by git-bash vs. WSL2 bash, AND how those paths interact with Docker volume mounting on Windows.
  3. The ability to configure the agent with environment variables was added.
  4. The nightly scheduled comparison run will now compare the latest released version with the most recent successful overnight all_solutions.yml build.
  5. A Visual Studio .sln file was added for easy development of all components of the performance testing system (other than the GHA workflow and action)
  6. A README.md file is added to document the system.

Here is the latest successful performance comparison run from this branch: https://github.com/newrelic/newrelic-dotnet-agent/actions/runs/23362875633

1. Change the agent health check to just look for "agent fully connected" so we don't have to have the agent log level set to DEBUG
2. Don't dump traffic driver and test app logs by default
3. Parameterize the python executable used to clean up the test output (part of follow-on work to make running comparisons locally convenient)
…ic/newrelic-dotnet-agent into ci/performance-test-visualization
Add the ability to configure the agent (and the test app, for that matter) via env vars.

Also remove the standalone "performance_tests.yml" workflow since it is redundant - its logic is now in actions/run-perf-test/action.yml, and if you want to run a single performance test case in ci, you can use compare_performance.yml with just a single run specified.
Also stop creating unique application names for each test run that pollute our sandbox
Also, remove log level setting from docker compose as it wasn't being set that way; specify it as one of the extra env var args if desired.
1. Add a VS solution file
2. Add a pylint (python linter) config file
3. Implement linter suggestions
4. Some hand refactoring of run-perf-test.py
5. Make the agent log checks more correct and meaningful
@nr-ahemsath nr-ahemsath requested a review from a team as a code owner March 20, 2026 21:33
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.79%. Comparing base (425cdd1) to head (918b78e).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3498   +/-   ##
=======================================
  Coverage   81.79%   81.79%           
=======================================
  Files         508      508           
  Lines       34220    34220           
  Branches     4040     4040           
=======================================
  Hits        27990    27990           
  Misses       5265     5265           
  Partials      965      965           
Flag Coverage Δ
Agent 82.78% <ø> (ø)
Profiler 71.75% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nr-ahemsath nr-ahemsath merged commit 9700b5f into main Mar 23, 2026
124 checks passed
@nr-ahemsath nr-ahemsath deleted the ci/local-performance-testing branch March 23, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants