Overview
Move your tests, components, suites and profiles in and out of BugBug as plain text. No vendor lock-in - the files are yours to keep, version and review.
BugBug exports tests, reusable components, suites, profiles, and project settings as plain text. You can read the YAML, review changes in a diff, and keep the files with the rest of your code.
The files remain readable outside BugBug, too.
ZIP exports contain BugBug YAML files together with any required artifacts.
Available exports and imports
A single test
YAML or ZIP
YAML or ZIP, into an existing project
A whole project
ZIP
ZIP, always as a new project
Components, suites, profiles
Inside a project ZIP
Inside a project ZIP
Components, suites, and profiles cannot be exported on their own. They are included in a project ZIP. Components are also included in a test ZIP when the test uses them.
YAML and ZIP
YAML is one file containing one item. A test YAML contains the test's steps and settings. If the test uses a reusable component, the file refers to it by name instead of including a copy:
groups:
- component_source: goto-bugbugio
- group_name: Simple steps
slug: simple-steps
steps:
- action: click
action_details:
selector: xpath=//SPAN[normalize-space(text())="Log in"]This keeps the YAML small and readable. It also means that importing the file into a project without the goto-bugbugio component needs an extra decision. See Importing. Files used by the test are referenced in the same way, so a YAML export does not include them.
ZIP is a bundle. It contains the exported item, its dependencies, and the files used by its steps, such as upload attachments and visual regression baselines.
Use YAML for a single test that you want to review or attach to a pull request. Use ZIP when the test or project needs to arrive with its dependencies and files.
Project ZIP contents
format_version describes the archive layout itself, separately from the per-file schema_version. Import reads bugbug-export.json first and refuses an archive whose format_version is newer than the BugBug you are importing into understands - this only happens with an archive created on a newer BugBug deployment. Archives exported before this file existed still import.
The tests/ and components/ directories follow the folder structure from the app:
Directories use the folder names from the app. Each test or component file uses its slug followed by .bugbug.yaml. Folders with a description also contain a small .folder.yaml file. Folders without a description do not have a marker file.
How imports identify items
BugBug identifies each item by its slug. A slug is a short, lowercase, URL-friendly name generated from the display name when the item is created. A test named Login with valid credentials gets the slug login-with-valid-credentials.
Files use slugs in references such as component_source and test_source. Import also uses them to find existing items:
A slug stays the same after the item is created. Renaming a test changes its display name but not its slug. A test renamed to
Sign inmay therefore still have the sluglogin-with-valid-credentials. An older export can then update that test instead of creating a duplicate.Slugs are unique within a project. Two projects can use the same slug without affecting each other.
If you edit an exported file by hand, treat the slug as the item's identity and the name as its label.
For a test or component, changing the slug makes the next import create a separate item. Changing the name keeps the same identity. The new name is applied only if you overwrite the item when the import reports a conflict. If you skip the conflict, BugBug ignores the file, including its name.
Suites, profiles, and project settings are handled differently. They are imported only with a project ZIP, and a project import always creates a new project. BugBug does not match or rename those items during import.
Availability
Using the Public API requires API access, which is available on paid plans.
Export and import are available on every plan, including FREE.
Related pages
Exporting: download files from the app or API and keep them in Git
Importing: bring files back and resolve conflicts
Automatic backups: daily project backups on paid plans, and how to restore one
YAML schema: the file format, validation, and editor autocomplete
FAQ
Last updated
Was this helpful?
