Android:使用批处理文件运行多个adb命令

时间:2017-10-10 05:53:36

标签: android batch-file automation

我必须在我的AVD上执行多次测试,并且使用adb shell命令也有点像

/Users/roger/AndroidSDK/sdk/platform-tools/./adb shell am instrument -w -e class com.demo.test.MyTest1 com.demo.test/android.test.InstrumentationTestRunner

/Users/roger/AndroidSDK/sdk/platform-tools/./adb shell am instrument -w -e class com.demo.test.MyTest2 com.demo.test/android.test.InstrumentationTestRunner

现在,假设当前两个测试都是作为一个单独的项目创建的,测试apk安装在虚拟设备上。我必须使用java项目执行这些测试。

我正在使用mac,所以我创建了一个shell脚本mytestscript.sh并编写了一个java程序来执行如下脚本:

 public static String executeCommand(String command) {

    StringBuffer output = new StringBuffer();

    Process p;
    try {
        p = Runtime.getRuntime().exec(command);
        p.waitFor();
        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

        String line = "";
        while ((line = reader.readLine()) != null) {
            output.append(line + "\n");
        }

    } catch (Exception e) {
        e.printStackTrace();
        // use logger
    }

    return output.toString();
} 

这就是我调用方法executeCommand("sh scripts/mytestscript.sh");

的方法

我面临的问题是当我搬到Windows系统时,我必须在Windows机器上安排这项工作。必须创建一个.bat文件来执行这样的命令:

executeCommand("cmd /c start scripts\\mytestscript.bat");

现在,这将打开Windows上的cmd终端并执行第一个命令,但在测试完成后,不会执行第二个命令。我必须手动关闭终端,然后执行第二个不需要的命令。

有没有办法实现这个目标?如何在Windows中使用android的批处理文件执行多个命令?在Windows上执行.sh脚本的任何替代方法?

我已经完成了Running multiple adb shell commands in batch file,但它与我想要的不同。

0 个答案:

没有答案