为什么 设置了端口确没有起作用?
你后面是用 runtest 运行的……
-bp 2251
是从 appium server 传到 bootstrap 的啊,你不用 appium server,单独启动 bootstrap 当然用默认端口啦
为什么我在运行两个设备的时候,只有一个设备运行脚本,另外一个区不运行呢?
我是先启动的 appium server,然后在 runtest 运行的啊??
我看解释说,appium 启动:appium -p 4723 -bp 2251 -U 0123456789
然后 runtest,出现 bootstrap 还是 4724,我想知道启动时候的-bp 2251 这个是 PC 端的 socket port 还是 Android 端的 socket port?
运行两个设备时应该是设置 PC 端的还是 Android 的?
明白了,runtest 运行的 bootstrap 与 appium 的没有关系!但是怎么一个脚本运行在两个设备上呢?
#4 楼 @test20150331 一个脚本运行在两个设备?就是第一步操作 A 设备,然后第二步操作 B 设备吗?
你开两个 appium:
> appium -p 4723 -bp 2251
> appium -p 4724 -bp 2252
然后在脚本里建立两个 session,appium 的服务器地址分别是localhost:4723
和localhost:4724
,并在 caps 里分别指定两个设备的 udid(否则默认都会用第一个设备)。然后你就可以通过两个 session 分别控制两个设备了。
appium 内部通过某个特殊命令来启动 bootstrap 的(一般在不使用 selendroid 且 session 建立完成的时候启动 bootstrap),里面会有特殊参数告诉 bootstrap 使用哪个端口,你直接用runtest
没有把这个设定端口的参数传给 bootstrap,所以还是用默认端口
我是在一个脚本里实现 A 呼叫,B 接听的功能,我已经在启动 appium 时设定了:
appium -p 4723 -bp 2251 -U 0123456789ABCDEF
appium -p 4725 -bp 2252 -U 1825b284
同时在脚本里面也写了两个 setup(selfA)以及 setup(selfB)同时对应两个 teardown(selfA)和 teardown(selfB),测试一个是 testandroid(selfA),另一个是 testandroid(selfB),运行的时候只能启动一个啊!!
这个怎么处理?
DesiredCapabilities capabilitiesA = new DesiredCapabilities();
capabilitiesA.setCapability("udid", "0123456789ABCDEF ");
AndroidDriver driverA = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilitiesA ); //建立和第一个appium server的session
DesiredCapabilities capabilitiesB = new DesiredCapabilities();
capabilitiesB .setCapability("udid", "1825b284");
AndroidDriver driverB = new AndroidDriver(new URL("http://127.0.0.1:4725/wd/hub"), capabilitiesB ); //建立和第二个appium server的session
driverA.callB(); //A呼叫B
driverB.receiveA(); //B接听A
我已经这样设置了,可是运行还是只运行一个设备,另一个设备还是没有启动起来!
#8 楼 @test20150331 show me your code.
我已经运行两个了,原来是共用一个 SETUP 和 teardown。我写成了两个!谢谢!