Java控制Appium server start/stop

发表于:2016-1-14 09:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:to be crazy    来源:51Testing软件测试网采编

  相信很多人都会遇到这种场景,在进行appium自动化的时候用Windows OS,不好实现后台运行,每次启动Appium server
  使用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();
}
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号