我现在在用 appium 做一个 IM 应用的自动化测试,要求要两台机器,一台机器用来发送消息,一台机器用来接收消息,请问一下,appium 能同时跑两台模拟器进行测试吗?
这个问题好,关注下,顺便再问下,最多能支持几个模拟器呀?
同问。。我这边实践的效果是只开了一个。
不需要 appium 支持同时跑两台虚拟机的能力,只要能在测试指令中插入执行本地命令的就可以。 然后在一台电脑或两台电脑上启动两个 appium,分别作为客户端 AAA 和客户端 BBB。
具体方法是利用 gearman http://gearman.org/getting-started/ 的同步能力:
客户端 AAA 作为 gearman client,问客户端 BBB:你在哪里?
echo "你在哪里?" | gearman -f receiver_BBB
客户端 BBB 启动一个 gearman worker:receiver_BBB,等待客户端 AAA 提问:
gearman -w -c 1 -f receiver_BBB -- tee /tmp/bbb; cat /tmp/bbb
/tmp/bbb 的内容就是"你在哪里?"
双方不论谁先执行都没有关系,因为 gearman 会保证只有 worker 已启动,并且 client 发出了消息,双方的握手才完成。
下一轮握手:
客户端 AAA 启动一个 gearman worker:receiver_AAA,等待客户端 AAA 回答:
gearman -w -c 1 -f receiver_AAA -- tee /tmp/aaa; cat /tmp/aaa
客户端 BBB 作为 gearman client,回答客户端 BBB:我在pwd
pwd
echo "我在这里:`pwd`" | gearman -f receiver_AAA
先说到这里,有人感兴趣,我就再补充。
没看懂楼主想问什么,根据本人测试效果,appium 是单例的,只能启动一个服务。当模拟器 1 执行测试时,启动模拟器 2,会打断模拟器 1,开始执行模拟器 2.
Android 可以 IOS 貌似不行