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
- CI build completes — BuildButler collects test results (JUnit, TestNG, TRX, Allure, Cucumber, Robot)
- Rules match — glob patterns route each job to the right TCM project and configuration
- Results export — test cases are created or updated, runs are populated, statuses are synced
- 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:
- TestRail — test cases, runs, plans, milestones, and custom fields
- HP ALM / Micro Focus ALM — Test Plan, Test Lab, test sets, and automatic defect management
- Xray for Jira — test cases, executions, plans, and environments
- Zephyr Scale for Jira — test cases, cycles, folders, and labels
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
- Sign up for BuildButler — TCM integration is included on all plans, including the free tier
- Connect your CI system (Jenkins, GitHub, GitLab, TeamCity, or BuildKite)
- Configure your TCM credentials
- Define job mapping rules as JSON
- Run a build — results sync automatically
No scripts to write. No plugins to maintain. No more manual uploads.