Set it up
Add the lane
Copy the
Fastfile helpers and the Android and iOS lanes.Run it
Run the lane after each new build, locally or in CI.
1
Store the API token
Create a token in Organization Settings → API Keys. Store it as
QATECH_API_TOKEN in your CI secrets, or in a fastlane/.env file you do not commit.2
Get the application short ID
Copy
app_… from Settings → Applications & Envs (for example
app_gXeBl2) and store it as QATECH_APP_ID. See Finding Short
IDs.3
Get the test plan short ID
Open the plan under Test
Plans and copy
pln_… from
the URL (for example pln_abc123). Store it as QATECH_TEST_PLAN_ID. See
Find the test plan short
ID.4
Set the project short ID for org-scoped keys
A project-scoped key is bound to one project and needs nothing else. With an
organization-scoped key, copy
proj_… from the project URL or Settings and
store it as QATECH_PROJECT_ID. The lane sends it as projectShortId on
every request. See Understanding Different
IDs.What works with fastlane
What this does not do
- It does not post a GitHub or GitLab review. See fastlane pull request testing.
- It does not test store artifacts. Upload a simulator or emulator build of the same commit, not the
.ipaor.aabyou send to the stores. - It does not replace a test plan schedule. Manage Schedules runs the plan without a new build.
Add the lane
Add this tofastlane/Fastfile. The helpers call the Application Builds API and Start Run in four parts:
- Get a presigned upload URL
- Upload the build file directly to storage
- Create the build record
- Start a test run pinned to that build, then poll it until it finishes
fastlane/Fastfile
Supported file types are
.apk and .aab for Android, and .zip or
.tar.gz containing your .app simulator build for iOS. Maximum file size is
4GB. See Preparing Your App
Build for
simulator builds, including Expo and React Native.Run it
Run the lane after each new build:wait: false to qatech_run_test_plan to start the run and continue without waiting; the results still reach your notification channels. If polling might exceed your CI job timeout, raise the timeout or pass wait: false.
To test a build in an existing lane (for example before upload_to_play_store or upload_to_testflight), call qatech_upload_build and qatech_run_test_plan from that lane.