Appium 多脚本在多设备上同时执行时,4724 端口的占用问题

BNN · 2015年03月19日 · 最后由 BNN 回复于 2015年03月19日 · 1917 次阅读

目前我通过 HUB 接入了多个设备,同时也有多个测试脚本,现在的目的是希望这些脚本能够同时启动起来分别在不同的设备上执行,脚本启动过程中驱动初始化端口已经分别错开,如:

c_port = sys.argv[1]
dr = webdriver.Remote('http://localhost:'+c_port+'/wd/hub',desired_caps)

但现在发现 bootstrap 把 4724 端口给占用了,虽然并不是一直占用这个端口(是占用一段时间后释放),但这影响了 N 个脚本同时启动开始执行,只能间隔一段时间依次启动测试脚本,影响了测试效率,想请教下 Appium 对这个问题是不是已经有什么解决方案。已搜索过以前的帖子,确实没找到有效的讨论。

共收到 7 条回复 时间 点赞

你可以自己修改 bootstrap 源码改个端口试试?

BNN #2 · 2015年03月19日 Author

#1 楼 @weamylady 就是不想改端口,找到一个老帖子 http://testerhome.com/topics/1639
目测还是得改呢。

BNN #3 · 2015年03月19日 Author

按照一楼的建议改了源码,..\npm\node_modules\appium\lib\server 里面 找到 parser.js

在:

[['-bp', '--bootstrap-port'], {
  defaultValue: RndNum(4)
, dest: 'bootstrapPort'
, required: false
, type: 'int'
, example: "4724"
, help: '(Android-only) port to use on device to talk to Appium'
}],

把 defaultValue 原来的默认值是 4724,现在配置为随机的 4 位数端口,算是把问题解决了。这样同时启动多个 appium 服务和多个脚本同时执行也不会报错。

#3 楼 @misnull appium 是有参数可以修改端口的, 你好好看下 之前帖子里面已经有人解决了

BNN #5 · 2015年03月19日 Author

#4 楼 @seveniruby 感谢关注,就如我 3 楼回复的方法已经解决了

#5 楼 @misnull 话说你改的不就是 appium server 解析启动参数的代码嘛……参数名称是-bp或者--bootstrap-port啊。。。

appium -p port -bp bport -U uuid 为什么要改源代码。。。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册