当尝试并行测试多个iOS设备时,会出现两个问题:
Instruments,Mac开发人员工具只运行一个实例。这意味着一次只能运行一次测试。
iOS-Webkit-Debug-Proxy,硬编码为在单个端口(27753)上运行,因为它假定只有一个仪器实例
答案 0 :(得分:2)
在开始之前,从我的调查开始,我只能使用appit的git源实现并行iOS测试。从npm安装工作时,它无法正常工作。
为此,请使用以下参数:
--tmp /tmp/ios/
,--tmp /tmp/ios6/
等。
REMOTE_DEBUGGER_PORT=27754
您还需要为appium节点使用--webkit-debug-proxy-port参数。
--webkit-debug-proxy-port 27754
我写了一个脚本来启动集线器,两个android节点,两个iOS节点,并在几个程序中记录错误。
pkill elenium
pkill java
pkill ios_webkit_debug_proxy
pkill node
java -jar ../libs/selenium-server-standalone-2.46.0.jar -role hub -port 4444 > logs/log_hub.txt 2>&1 &
if [ $? = 1 ]; then
echo hub
exit 1
fi
appium --nodeconfig /Path/to/androidOne.json -p 4823 -bp 5724 --chromedriver-port 9515 > logs/log_androidOne.txt &
if [ $? = 1 ]; then
echo node 1
exit 1
fi
appium --nodeconfig /Path/to/androidTwo.json -p 4723 -bp 5723 --chromedriver-port 9516 > logs/log_androidTwo.txt &
if [ $? = 1 ]; then
echo node 2
exit 1
fi
node appium --session-override --nodeconfig /Path/to/iPod.json --tmp /tmp/ios/ -p 4623 --webkit-debug-proxy-port 27753 --safari > logs/log_iPodTouch.txt &
if [ $? = 1 ]; then
echo node3
exit 1
fi
node appium --session-override --nodeconfig /Path/to/iPad.json --tmp /tmp/ios6/ -p 4523 --webkit-debug-proxy-port 27754 --safari > logs/log_iPad.txt &
if [ $? = 1 ]; then
echo node4
exit 1
fi
sleep 5
REMOTE_DEBUGGER_PORT=27753
./ios-webkit-debug-proxy-launcher.js -c UDID:27753 -d > logs/log_iwdpl.txt &
if [ $? = 1 ]; then
echo iwdpl
exit 1
fi
REMOTE_DEBUGGER_PORT=27754
./ios-webkit-debug-proxy-launcher.js -c UDID:27754 -d > logs/log_iwdpl2.txt &
if [ $? = 1 ]; then
echo iwdpl2
exit 1
fi
该脚本首先杀死任何事先存在的进程,如果你正在运行其他java东西,请小心杀死所有java进程。
希望这有帮助, 利安