最近我一直在用robotium来设计android的自动化。我想在原有的设计基础上加入很多以前我做自动化的设计。首先说下我的设计理念:测试模板
    测试用例1
        记录测试时间
        调用或者启动adb打印日志进程,延时后杀掉进程
        打开日志文件,记录日志最后的光标位置。
        执行自动化实施用例代码        假如对比结果报错,调用或者启动adb打印日志进程,延时后杀掉进程
        打开日志文件,把上次记录光标的位置到尾部的日志取出来,保存到相关地方       在这个过程中,我打算用批处理调用adb和tcl,尽量用java为主的设计整个方案:
所以问题来了,在一般的自动化测试模板:
public class NotePadTest extends ActivityInstrumentationTestCase2<Calculator> {  private Solo solo;  public NotePadTest() {  super("com.android.calculator2", Calculator.class);  }  public void setUp() throws Exception {  solo = new Solo(getInstrumentation(), getActivity());  }  @Override  public void tearDown() throws Exception {  try {  solo.finalize();  } catch (Throwable e) {  e.printStackTrace();  }  getActivity().finish();  super.tearDown();  }  public void testcase() throws Exception {
   }在testcase中,想通过Runtime.getRuntime().exec来调用我制作好的打印和记录日志尾部的bat。以下是问题:
1.我发现在这个testcase中,执行除solo外的东西他都没有去执行,如何能够在我用robotium跑自动化时能够插入此操作?
2.我启动了一个bat,同时我想获取他的pid号,请问如何执行?
3.在java中,如何杀掉pid进程。由于我是从tcl脚本自动化转战java的自动化,所以希望能够得到各位大神帮助,谢谢

解决方案 »

  1.   

    经过一段时间的研究,我这个理论是比较难的。首先我忽略了他们的测试原理,是把代码制作成2个apk,从自动化apk来测试应用程序apk,我这里涉及的windows的一些操作明显是行不通的。现在我在项目中尝试下把自动化做到linux层,让自动化apk来执行linux下的adb命令。这样我的自动化设计方向才有点眉头