Appium在分布式同时执行多设备时,是必须一个appium服务端对应一台设备,并且根据app类型的不同,启动服务端所带的参数也不同,以下是对各种类型应用的服务端对应启动命令详解:
-p :表示appium服务端和测试脚本之间通信的端口
-bp:表示appium服务端和手机上的bootstrap服务通信的端口
--chromedriver-port:表示启动的chromedriver的端口
1. 原生app
appium -p 4490 -bp 2345 第一台设备对应的服务端启动命令
appium -p 4491 -bp 2346 第二台设备对应的服务端启动命令
2. 混合app
appium -p 4490 -bp 2345 --chromedriver 8201 第一台设备对应的服务端启动命令
appium -p 4491 -bp 2346 --chromedriver 8202 第二台设备对应的服务端启动命令
3. 纯H5 app
appium -p 4490 --chromedriver-port 8001 第一台设备对应的服务端启动命令
appium -p 4491 --chromedriver-port 8002 第二台设备对应的服务端启动命令
4. 使用uiautomator2模式时,需要指定服务端和手机上uiautomator2服务通信的端口,但是该端口目前在启动appium时无法指定,需要在脚本中的driver初始化参数里进行指定,如:
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(AndroidMobileCapabilityType.SYSTEM_PORT, 8201);