很多想自己动手写框架的同学都知道,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 的参数传入,我现在还不清楚,请其他同学指出。