很多想自己动手写框架的同学都知道,appium 使用图形界面启动,实在是不方便,如果使用框架测试思路,我们就需要让这个进程默默的运行在后台。

而目前 aapium 这个进程也有些不稳定,也就是我之前有提到的内存溢出,最好是写一个初始化方法,在一组 20 个 case 运行完毕,就执行一下这个初始化方法。

回到题目。
1、kill 掉之前的旧进程 node.exe,adb.exe,chromedriver.exe,使用 cmd 命令运行 appium 进程
AppiumRun.bat 内容如下,各位可根据自己的目录调整


@echo off
d:
cd D:\Appium
taskkill /im node.exe /f
taskkill /im adb.exe /f
taskkill /im chromedriver.exe /f
D:\Appium\node_modules\.bin\appium.cmd
exit

2、使用 vbs 调用 cmd 命令文件,让这个窗口运行在后台

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c d:\AppiumRun.bat",0

3、使用自己的代码,我这里使用 java,调用这个 vbs 脚本

// 初始化,启动APPium进程
public void baseInIt() {
    String[] cpCmd = new String[] { "wscript", "D:\\AppRun.vbs" };
    // String path = "D:\\AppRun.vbs";
    Runtime run = Runtime.getRuntime();
    try {
        logger.info("----------初始化,启动APPium进程----------");
        run.exec(cpCmd);
        TimeUnit.SECONDS.sleep(5);
        logger.info("----------初始化,启动APPium进程 ok----------");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

解决此问题。

我遗留一个问题是,appium 的参数传入,我现在还不清楚,请其他同学指出。


↙↙↙阅读原文可查看相关链接,并与作者交流