FAQ
Frequently Asked Questions (FAQ)
Q1. What’s the full list of supported capabilities on the QuantumGrid gateway? What are all the parameters including any defaults if not sent?
Ans: QuantumGrid supports:
- All standard Appium capabilities
- All standard Selenium (W3C) capabilities
- Custom tg: (QuantumGrid-specific) capabilities
Custom QuantumGrid Capabilities
1. tg:userToken (Required)
User authentication token.
2. tg:queueTimeout (Optional)
Defines how long a session waits in the queue.
Default: 120 seconds
Example:
capabilities.setCapability("tg:queueTimeout", 180);
3. tg:queue (Optional)
Controls queue behavior.
Default: true
If set to false:
- Session will NOT wait in queue
- It will only start if a slot is immediately available
- Otherwise, it will fail
Example:
capabilities.setCapability("tg:queue", false);
4. tg:tags (Optional)
Routes the session to specific tags.
When multiple tags are provided, an OR ( || ) condition is applied.
Example:
String[] tags = {"12", "iOS", "iPhone 12"};
capabilities.setCapability("tg:tags", tags);
QuantumGrid acts as a gateway, so it respects standard capability behavior.
Q2. For mobile, what Appium capabilities are needed alongside platformName: android/ios?
Required
- platformName → “android” or “ios”
OR
- browserName → “chrome”
- tg:userToken → Required
Optional
- appium:udid (for targeting a specific device)
Q3. For mobile, is there a way to pass the app information so that the platform automatically installs it?
For re-signing the IPA
API:
https://domain.testgrid.io/api/resign-build
Parameters:
- user_token : UserToken
- build_file : IPA File
Curl Example:
curl --location 'https://tmobilestage.testgrid.io/api/resign-build' \
--form 'user_token="<USER_TOKEN>"' \
--form 'build_file=@"/Users/yogesh/Downloads/20260505141238_3nVcl.ipa"'
API Response:
{
“success”: true,
“message”: “Build uploaded and resigned successfully”,
“path”: “https://domain.testgrid.io/app_build/resigned/6a034f39300da/Movie.ipa”
}
Install Using APK/IPA Path
appium:app = “application_url”
or
appium:app = “https://domain.testgrid.io/app_build/resigned/6a034f39300da/Movie.ipa”
Launch Using Package / Activity (Android)
appium:appPackage = “com.example”;
appium:appActivity = “com.example.MainActivity”;
Launch Using Bundle ID (iOS)
appium:bundleId
Q4. Is there a way to target specific OS versions (e.g., Android 14), device models, or browser versions?
Ans: We can pass:
platformVersion : 14
Example:
capabilities.setCapability(“appium:platformVersion”, “14”);
Q5. Does the QuantumGrid gateway support the legacy JSON Wire Protocol, or only W3C?
Ans: Currently, both protocols can be supported, but:
It is device-specific.
All devices are supporting the W3C protocol right now.
We can change to JSONWP if needed for any device.
Dynamic selection is under development.
Additional Notes
Browser Sessions
For browser sessions, pass browserName instead of platformName.
Routing Sessions to a Specific Device
For routing a session to a specific device:
appium:udid → Mobile device sessions
tg:udid → Browser sessions
Example:
capabilities.setCapability(“appium:udid”, “RZCW312KWNJ”);
capabilities.setCapability(“tg:userToken”, “abc”);
Example: Basic Mobile Session
capabilities.setCapability(“appium:platformName”, “Android”);
capabilities.setCapability(“tg:userToken”, “abc”);
Example: Start Session on a Specific Device
capabilities.setCapability(“appium:platformName”, “Android”);
capabilities.setCapability(“appium:udid”, “RZCW312KWNJ”);
capabilities.setCapability(“tg:userToken”, “abc”);
Example: Start Session on a Specific OS Version
capabilities.setCapability(“appium:platformName”, “Android”);
capabilities.setCapability(“appium:platformVersion”, “14”);
capabilities.setCapability(“tg:userToken”, “abc”);
Example: Start a Browser Session
capabilities.setCapability(“tg:userToken”, “abc”);
capabilities.setCapability(“browserName”, “chrome”);
