Momentum Suite M-Live supports the latest WebDriver W3C Protocol for Appium tests. Desired Capabilities can be scripted in the WebDriver test or set within the Appium Inspector.
Automation Capabilities:
Use your favourite programming language and test framework! We support all testing frameworks that appium supports.
JavaNodeJSPythonC#RubyPHPPerl
// Use Java Client v6.0.0 or above DesiredCapabilities capabilities = new DesiredCapabilities(); HashMap<String, Object> momentumOptions = new HashMap<String, Object>(); momentumOptions.put("user", "momentumUser"); momentumOptions.put("token", "momentumToken"); momentumOptions.put("gw", momentumDeviceId); capabilities.setCapability("momentum:options", momentumOptions); capabilities.setCapability("appium:platformName", "Android"); capabilities.setCapability("appium:automationName", "UIAutomator2"); capabilities.setCapability("appium:language", "en"); capabilities.setCapability("appium:locale", "en"); capabilities.setCapability("appium:deviceName", ""); capabilities.setCapability("appium:udid", ""); capabilities.setCapability("appium:app", "ms://momentumAppId"); capabilities.setCapability("appium:fullReset", true); capabilities.setCapability("appium:noReset", false);
// Use Node(WebDriverIO) client v6 and above var capabilities = { 'momentum:options' : { "user" : "momentumUser", "token" : "momentumToken", "gw" : momentumDeviceId, }, "platformName" : "android", "appium:automationName" : "UIAutomator2", "appium:language" : "en", "appium:locale" : "en", "appium:deviceName" : "", "appium:udid" : "", "appium:app" : "ms://momentumAppId", "appium:fullReset" : true, "appium:noReset" : false, }
# Use Appium-Python-Client v0.27 or above desired_cap = { 'momentum:options' : { "user" : "momentumUser", "token" : "momentumToken", "gw" : momentumDeviceId, }, "platformName" : "android", "appium:automationName" : "UIAutomator2", "appium:language" : "en", "appium:locale" : "en", "appium:deviceName" : "", "appium:udid" : "", "appium:app" : "ms://momentumAppId", "appium:fullReset" : true, "appium:noReset" : false, }
// Use dot net bindings v4.0.0 or above AppiumOptions capabilities = new AppiumOptions(); Dictionary<string, object> momentumOptions = new Dictionary<string, object>(); momentumOptions.Add("user", "momentumUser"); momentumOptions.Add("token", "momentumToken"); momentumOptions.Add("gw", momentumDeviceId); capabilities.AddAdditionalCapability("momentum:options", momentumOptions); capabilities.AddAdditionalCapability("platformName", "android"); capabilities.AddAdditionalCapability("appium:automationName", "UIAutomator2"); capabilities.AddAdditionalCapability("appium:language", "en"); capabilities.AddAdditionalCapability("appium:locale", "en"); capabilities.AddAdditionalCapability("appium:deviceName", ""); capabilities.AddAdditionalCapability("appium:udid", ""); capabilities.AddAdditionalCapability("appium:app", "ms://momentumAppId"); capabilities.AddAdditionalCapability("appium:fullReset", true); capabilities.AddAdditionalCapability("appium:noReset", false);
# Use Ruby Client version v9.8.1 or above capabilities = { 'momentum:options' => { "user" => "momentumUser", "token" => "momentumToken", "gw" => momentumDeviceId, }, "platformName" => "android", "appium:automationName" => "UIAutomator2", "appium:language" => "en", "appium:locale" => "en", "appium:deviceName" => "", "appium:udid" => "", "appium:app" => "ms://momentumAppId", "appium:fullReset" => "true", "appium:noReset" => "false", }
$caps = array( 'momentum:options' => array( "user" => "momentumUser", "token" => "momentumToken", "gw" => "momentumDeviceId", ), "platformName" => "android", "appium:automationName" => "UIAutomator2", "appium:language" => "en", "appium:locale" => "en", "appium:deviceName" => "", "appium:udid" => "", "appium:app" => "ms://momentumAppId", "appium:fullReset" => "true", "appium:noReset" => "false", )
my $extraCaps = { 'momentum:options' => { "user" => "momentumUser", "token" => "momentumToken", "gw" => "momentumDeviceId", }, "platformName" => "android", "appium:automationName" => "UIAutomator2", "appium:language" => "en", "appium:locale" => "en", "appium:deviceName" => "", "appium:udid" => "", "appium:app" => "ms://momentumAppId", "appium:fullReset" => "true", "appium:noReset" => "false", }
Appium Inspector Capabilities:
Here is the all technical information about open source Appium GUI inspector for mobile apps and more.
- Remote Host: console.momentumsuite.com
- Remote Path: /gateway/wd/hub
- Port: 443
- SSL: True
JSON Representation:
AndroidiOS
{ "appium:automationName": "UiAutomator2", "appium:app": "ms://<hashed-app-id>", "appium:udid": "", "appium:deviceName": "", "platformName": "Android", "momentum:options": { "user": "<momentum-suite-username>", "token": "<momentum-suite-access-key>", "gw": "<momentum-device-id>" } }
{ "appium:automationName": "XCUITest", "appium:app": "ms://<hashed-app-id>", "appium:udid": "", "appium:deviceName": "", "appium:remoteDebugProxy": "<momentum-gw-value>+2000", "platformName": "iOS", "momentum:options": { "user": "<momentum-suite-username>", "token": "<momentum-suite-access-key>", "gw": "<momentum-device-id>" } }
Here is the full list of Appium Desired Capabilities.
List of client libraries with Appium server support
Language/Framework | Github Repo and Installation Instructions |
---|---|
Ruby | https://github.com/appium/ruby_lib, https://github.com/appium/ruby_lib_core |
Python | https://github.com/appium/python-client |
Java | https://github.com/appium/java-client |
C# (.NET) | https://github.com/appium/appium-dotnet-driver |
JavaScript (Node.js) | https://github.com/webdriverio/webdriverio |
RobotFramework | https://github.com/serhatbolsu/robotframework-appiumlibrary |
List of sample Appium projects
Language/Framework | Sample automation project and Github repository |
---|---|
Java (Maven) | https://www.momentumsuite.com/docs/appium-java-testing/ |
JS (WebdriverIO) | https://www.momentumsuite.com/docs/appium-js-testing/ |
Python (Pytest) | https://www.momentumsuite.com/docs/appium-python-testing/ |
C# (Nunit) | https://www.momentumsuite.com/docs/appium-csharp-c-testing/ |
Note:
JSON Wire Protocol is still compatible with Momentum Suite, but there will be no documentation for these old clients.