使用Appium GUI版手动点击
就是在cmd line 启动Appium
如果要实现CI,使用Appium GUI是不可行的,因为如果在跑case的过程中Appium session无法创建必须重启Appium server,也无法自动获取相应的参数直接启动Appium
那么这个时候只能使用command line
PS:使用command line需要把Appium相关加入到环境变量
在path 添加
;C:\Program Files (x86)\Appium\node_modules\.bin;
然后在command line验证一下
如果出现这个,说明Appium使用默认参数启动成功
其实这个默认启动的是:C:\Program Files (x86)\Appium\node_modules\.bin\appium.bat
使用默认的参数,如果想使用指定的ip和port log等内容需要加参数
比如使用:
C:\Users\Test>appium -a 127.0.0.1 -p 1235
info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d)
info: Appium REST http interface listener started on 127.0.0.1:1235
info: [debug] Non-default server args: {"address":"127.0.0.1","port":1235}
info: Console LogLevel: debug
具体参数这里不再详解,可以使用appium --help
那么好了,直接使用Java调用这个command的就好了
于是写了就这样:
public void excuteCMD(String comand) { Runtime rt = Runtime.getRuntime(); RuntimeExec rte = new RuntimeExec(); StreamWrapper error, output; try { Process proc = rt.exec(comand); error = rte.getStreamWrapper(proc.getErrorStream(), "ERROR"); output = rte.getStreamWrapper(proc.getInputStream(), "OUTPUT"); BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream())); String s; while ((s = stdInput.readLine()) != null) { System.out.println(s); if (s.contains("Appium REST http")) { System.out.println("STARTED!"); } } error.start(); output.start(); error.join(3000); output.join(3000); System.out.println("Output: " + output.message + "\nError: " + error.message); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } |