Appium over Selenium grid

I’ve set this up by having two appium server instances running, each one pointing at the specific device

node scripts/node_modules/appium/build/lib/main.js --nodeconfig android_phone/ce0117115d52a73f04/selenium-conf.json --session-override --default-capabilities {"udid":"ce0117115d52a73f04","deviceName":"ce0117115d52a73f04","systemPort":7843,"wdaLocalPort":7843} --chromedriver-executable android_phone/ce0117115d52a73f04/chromedriver --log-no-colors --port 4843 --callback-port 4844 --log-timestamp --debug-log-spacing

The selenium-conf.json looks something like this. You’ll see some fields in there (like phoneBrand and phoneModel and others) that I wrote a custom matcher for to force specific brands and models.

{
    "capabilities":
        [
            {
                "version": "8.0",
                "maxInstances": 1,
                "platform": "Android",
                "platformType": "Phone",
                "phoneBrand": "samsung",
                "phoneModel": "SMG935F",
                "chromeVersion": "69.0.3497.100",
                "pc": "10.96.80.50",
                "hostname": "bedouglas-mac",
                "port": "4843",
                "deviceName": "ce0117115d52a73f04",
                "maxInstances": 1,
                "udid": "ce0117115d52a73f04",
                "start": "2018-10-25T09:57:57-0400",
                "appiumVersion": "1.9.1"
            }
        ],
    "configuration":
        {
            "cleanUpCycle":2000,
            "timeout":300000,
            "proxy": "TARemoteProxy",
            "url":"http://10.96.80.50:4843/wd/hub",
            "host": "10.96.80.50",
            "port": 4843,
            "maxSessions": 1,
            "register": true,
            "registerCycle": 5000,
            "hubPort": 4444,
            "hubHost": "10.96.80.50"
        }
}