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”
- appium:app = “application_url”
- 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:
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");
