當試圖在並行測試多的iOS設備有出現的兩個問題:並行測試
儀器,Mac開發工具將只運行一個實例。意味着一次只能運行一次測試。
IOS的Webkit內核調試代理,是硬編碼到一個端口(27753)上運行,因爲它假定只有一個儀器
當試圖在並行測試多的iOS設備有出現的兩個問題:並行測試
儀器,Mac開發工具將只運行一個實例。意味着一次只能運行一次測試。
IOS的Webkit內核調試代理,是硬編碼到一個端口(27753)上運行,因爲它假定只有一個儀器
我開始之前的例子,從我的調查,我只能使用appit的git源代碼實現並行iOS測試。從npm安裝時,它不起作用。
爲此使用這些參數:
--tmp /tmp/ios/
,--tmp /tmp/ios6/
等
REMOTE_DEBUGGER_PORT=27754
您還需要使用--webkit調試代理端口參數爲appium節點。
--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的東西。
希望這有助於 利亞姆
非常有用..謝謝! – Vaibhav
我回答我的問題,因爲我張貼的問題,存在正是這種目的的功能。這個想法是,如果你有自己解決的問題,但是覺得其他人會讓你提出問題,然後回答它。如果將來有人問這個問題,他們可以得到答案。似乎是一個合乎邏輯和有用的事情,不是嗎? –
不,我所指的功能是「你想回答這個問題」複選框,它可以讓你編寫答案,然後將問題和答案一起發佈,這就是我所做的。 –
但爲什麼提出這個問題呢? StackOverflow不是教程網站... –