Appium Appium window 客户端,Server Address 的理解

梦桥 · 2015年08月07日 · 最后由 kuailel45 回复于 2016年01月11日 · 1453 次阅读

最近在搞基于 Appium 分布式执行,遇到的坑蛮多的,后续会整理分享出来,关于 Appium window 客户端,我发现 Server Address 这个 input 框可以去掉
*原因如下*
1、首先这里的 Server Address 只能输入本机 IP 地址,我尝试输入其他的 IP 地址,基本启动失败;
提示 log 为:

> error: Couldn't start Appium REST http interface listener. Requested address is not available.

2、如果只能输入本地 IP,相当于这个 Input 的存在毫无意义,只透出 port 框输入就 ok 了。
不知道大家是否有同样的想法?还是我的理解有错,请多指正哈
@lihuazhang @monkey @seveniruby @chenhengjie123

共收到 6 条回复 时间 点赞

但是你输入 127.0.0.1 跟输入本机的 ip 地址是有区别的,类似于你的服务器放在云端,你的脚本放在本地,这个时候这个 serverAddress 就有用处了啊。

#1 楼 @zsx10110 “你的服务器放在云端,你的脚本放在本地”,这句话,我输入 127.0.0.1 或者 ip 地址,脚本照样能远程调用起来啊?貌似没区别吧

#2 楼 @cpfeng0124 为了验证刚才你说的 我重新试了下,如果服务端在远端,脚本里面配置远端的 IP 地址类似于 172.18.48.123
那么 如果 Server Address 如果是 127.0.0.1 是不行的,只有改成本机的 IP 才可以。你在再验证实施。

我竟然和三位大神一起放在被 @ 的位置,受宠若惊啊!

对于 serverAddress,我建议如果允许外部调用的话统一使用 0.0.0.0 。

这个是监听地址,只有发送的网络包里的 destination 是符合这个 serverAddress 及 port 的才会被 appium 捕获到。

如果输入 127.0.0.1 那就只有在 server 那台机器上的脚本能连到这个 appium server 了,因为外部链接都不可能是发到 127.0.0.1 的(因为 127.0.0.1 在任何机器上都是指代这台机器本身,发请求到 127.0.0.1 是发不了给其他机器的)。

0.0.0.0 表示广播地址,能匹配所有 ip 地址,即监听所有发到这个机子的指定端口的网络包。这个和直接用本机 ip 地址的主要区别是:用这个的话你就不用管这台机本机地址是什么了(针对 ip 地址经常会变化的环境或者批量部署比较有用。否则换个 ip 这个参数就得改一次)

至于这个参数的存在理由,其实主要就在于是否使用 127.0.0.1 了(即是否能被网络中其他电脑调用,说白了是权限的差异)。我见过的其他类似程序(如 xwalkdriver)是封装成默认只允许本地连接,如果需要允许外部链接需要另外设置允许的外部链接地址。

说白了 这个框只是给你填你这个本地的 IP,不一定是 127.0.0.1 也可以是你的 IP 都可以,!至于这个框存在的意义在于默认 127.0.0.1 同时支持指定本地 IP,我的理解是这样的

受教了

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