Appium 使用 Selenium Grid & appium & testNG 控制多台设备。

June · 2015年07月25日 · 最后由 回复于 2015年08月27日 · 3315 次阅读

分享一下 Selenium Grid & appium & testNG 控制多台设备。

环境:

  1. 设备:GalaxyS6 Edg,Genimotion 虚拟机。
  2. PC:MAC OS X 10.10.4
  3. 软体:Eclipse, java, appium, testNG

SetUp:

要用 Grid 首先要开启 hub,node 两个 server。
先开 hub。

  1. 在命令窗输入
java -jar "selenium server 路径" -role hub

ㄴ 开 hub server 后在浏览器输入 localhost:4444

  1. 设置 node。 ㄴ 写 nodeconfig。在文本编辑器输入 nodecofig 并保存为 json。

ㄴ 用这个 json 文件打开 node server。命令行输入

appium -p 4724 -bp 4714 --nodeconfig "json文件路径"

相同的方法打开多的 node server

ㄴ 浏览器会显示以连接的 node 信息。

  1. 写 script ㄴ testNG: 在 parameter 添加设备信息。

ㄴ java: 按设备数填写 capabilities (udid, devicesName 必写)

ㄴ 最后在 beforeClass 输入如下就 ok。

public AndroidDriver driver = null; 
driver = new AndroidDriver(new URL("http://localhost:4444/wd/hub"), capability);

PS: public AndroidDriver driver = null; 不要添加 static。加 static 会导致不能同时控制多台设备。

共收到 9 条回复 时间 点赞

强!有三个问题请教下楼主
1.如何获取 appium Grid 上各结点的运行状态?
2.appium hub 上的各结点 node 上的 appium 服务器使用前先重启下?
3.远程执行 adb 命令

June #2 · 2015年07月26日 Author

@springs412 不太明白你的意思。
1.如何获取 appium Grid 上各结点的运行状态?
》不明白什么意思?
2.appium hub 上的各结点 node 上的 appium 服务器使用前先重启下?
》不需要重启。
3.远程执行 adb 命令
》不太会使用 adb(个人认为做测试的时候尽量不要用 adb)

grid 是同时并发执行的?如果不是并发,那就没有意义了

June #4 · 2015年07月31日 Author

@mads 是并发

June #5 · 2015年07月31日 Author

@mads 并发可以在 testNG 设置

#5 楼 @jinjun0620 其实你不借助工具,写线程也一样可以实现的

lz 的想法挺不错的,但是如果遇到一些 appium 目前无法解决,只能用 adb 的时候,你这个如何处理

@mads 能发下你线程的思路么 帖子来个 最近重新看了下这个并发的模块

#8 楼 @doria 我不会,我领导会

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