BuildButler

Stop Manually Uploading Test Results to Your TCM Tool

Manual test result uploads waste hours every sprint. Learn how to automate CI test result export to TestRail, ALM, Xray, and Zephyr Scale with zero custom code.

Your CI pipeline runs thousands of tests automatically. Your test case management tool tracks test execution history. But the bridge between them? That's probably a person with a spreadsheet.

Manual test result uploads are one of the most common time sinks in QA engineering. They're tedious, error-prone, and completely avoidable.

The real cost of manual uploads

Let's do the math. Say your team has 10 Jenkins jobs that produce test results. Each upload takes 20 minutes (being generous). You run these jobs twice a day across a two-week sprint.

That's 10 jobs x 20 minutes x 10 days = 33 hours per sprint spent copying test results from one system to another.

Now factor in the errors:

  • Missed uploads — a job runs on Friday afternoon and nobody uploads until Monday. Three more builds have run since.
  • Stale defects — a defect was raised for a failing test last sprint. The test passes now, but nobody closed the defect.
  • Incomplete coverage — the nightly regression suite generates 800 test results, but only the failures get uploaded because who has time for 800 entries?
  • No trend data — without consistent uploads, you can't track test stability over time.

Why custom scripts aren't the answer

The first instinct is to write a script. Parse JUnit XML, call the TestRail API (or ALM REST API, or Xray API), map test names to IDs, handle pagination, deal with authentication.

These scripts work — until they don't:

  • TCM tool upgrades break API compatibility
  • Test name changes cause orphaned results
  • Someone renames a folder in the TCM tool and the script silently fails
  • The person who wrote the script leaves the team and nobody wants to maintain it

You've traded a manual problem for a maintenance problem.

The automation approach

BuildButler sits between your CI system and your TCM tool. You configure mapping rules once, and test results flow automatically on every build.

How it works

  1. CI build completes — BuildButler collects test results (JUnit, TestNG, TRX, Allure, Cucumber, Robot)
  2. Rules match — glob patterns route each job to the right TCM project and configuration
  3. Results export — test cases are created or updated, runs are populated, statuses are synced
  4. Every build, every time — no manual step, no lag, no missed uploads

Supported TCM tools

BuildButler integrates with the four most common test case management tools:

Supported CI systems

Jenkins, GitHub Actions, GitLab CI, TeamCity, and BuildKite. If your team uses multiple CI systems, all results flow into the same TCM project.

What changes for your team

Before: QA engineer spends 30 minutes after each build uploading results. Defects are raised manually. Test trends are unknown.

After: Results appear in your TCM tool within seconds of the build completing. Defects are created and closed automatically (ALM). Test history is complete and continuous.

The time you get back goes toward what actually matters: writing better tests, investigating real failures, and shipping with confidence.

Getting started

  1. Sign up for BuildButler — TCM integration is included on all plans, including the free tier
  2. Connect your CI system (Jenkins, GitHub, GitLab, TeamCity, or BuildKite)
  3. Configure your TCM credentials
  4. Define job mapping rules as JSON
  5. Run a build — results sync automatically

No scripts to write. No plugins to maintain. No more manual uploads.

On this page