Appium Appiim 设置设备的 Bootstrap 端口,为什么没有起作用??

夏之岚 · April 02, 2015 · Last by 黑水 replied at April 02, 2015 · 2194 hits


为什么 设置了端口确没有起作用?

共收到 10 条回复 时间 点赞

你后面是用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:4723localhost: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.

夏之岚 #10 · April 03, 2015 作者

我已经运行两个了,原来是共用一个SETUP和teardown。我写成了两个!谢谢!

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up