今天在搞一个需求,需要在shell里同时运行两个互不干扰的指令,

主要是在脚本里要让一个apk同时在不同的设备上运行,但是如果在脚本里将命令一行一行堆砌起来的话,这样的代码是串行的,我的mentor让我将脚本改成并行的,并且在jenkins跑,jenkins里支持M/S模式,即一台主机,外加多个节点这样的配置。但不是支持多台手机并行的。

所以只能在脚本上做做工作,

解决方案很简单:至于要在想要并行的命令之间加个'$'符号

如下:
以前的命令片段:

adb -s bff1bca4 shell am instrument -e class com.dianping.nova.testall.TestAll -w com.alipay.android.app.test/com.dianping.instrumentationTestRunner.InstrumentationTestRunner
adb -s 040ABG8KF8WE shell am instrument -e class com.dianping.nova.testall.TestAll -w com.alipay.android.app.test/com.dianping.instrumentationTestRunner.InstrumentationTestRunner

此时在jenkins里是串行的

改造之后的命令 :

adb -s bff1bca4 shell am instrument -e class com.dianping.nova.testall.TestAll -w com.alipay.android.app.test/com.dianping.instrumentationTestRunner.InstrumentationTestRunner&adb -s 040ABG8KF8WE shell am instrument -e class com.dianping.nova.testall.TestAll -w com.alipay.android.app.test/com.dianping.instrumentationTestRunner.InstrumentationTestRunner

注意两个命令要放在同一行

这样在shell下活jenkins下就是并行执行的了

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐