本来今天想写下在有源代码的情况下,如何对应用进行自动化测试,但是今天活儿太多,就先不写了,可能很多同学都已经在网上搜到过相关的内容,包括在 Robotium 官方网站上也有看到过,所以,这里就简单说一下与 APP 控件相关的方法,便于利用控件 ID 进行操作。
1、通过控件 ID 点击打开 VIEW,这个方法在具体的使用中,我自己用的较多,只要知道了控件的 ID,就可以对控件进行操作,个人认为比较方便。如果有更好的方法,可以告诉我,一起学习下!

/* 通过ID点击打开VIEW
 * clickCtrlById(String s,int t)
 * s:Id(hierarchviewer)触摸按键的id,字符串格式
 * t:timedelay 触发按键后,停留多久(ms)
 * TARGET_PACKAGE_ID,是一个宏变量,字符串格式,定义了目标APK的包名
*/
 public int clickCtrlById(String s, int t )
 {
     int ctrl;
     View v;
     if( s == "")
     {
         return -1;
     }
     ctrl = solo.getCurrentActivity().getResources().getIdentifier(s,"id","com.leju.platform");
     v = solo.getView(ctrl);
     solo.clickOnView(v);
     solo.sleep(t);        
     return 0;
 }

2、知道了文本框 ID 后,可以通过下面的方法,直接在文本框中填写相应的数据,我认为这个方法比直接使用 solo.entext(int index,String text) 这种方式要好很多。

/* 通过ID输入文本内容
 * enterTextById(String id,String s,int t)
 * id:Id(hierarchviewer)获取的文本框id,字符串格式id
 * s:需要输入的文本信息
 * t:timedelay 触发按键后,停留多久(ms)
*/
public int enterTextById(String id,String s,int t)
 {
     int ctrl;
     EditText v;

     if( s == "")
     {
         return -1;
     }

     ctrl=solo.getCurrentActivity().getResources().getIdentifier(id,"id",solo.getCurrentActivity().getPackageName());
     v=(EditText)solo.getView(ctrl);

     solo.enterText(v,s);
     solo.sleep(t);
     return 0;

 }

还有一些其他方法,等后面有时间再写上来。可能有些方法大家都已经用到过,我在这里写出来的原因主要是想把一些好的方法分享一下,顺便也记录一下,如果发现写的有问题,请大家一定要指正出来,我会认真修改的!
我个人认为,未来自动化还是有一定用处的,现在可能只是对 robotium 关注多一些,将来也会对其他的自动化工具做一些研究,也会写出来,我觉得做任何一种职业,态度是非常重要的,如果总是觉得测试没有地位,没有前途,那么转行做其他的就会有地位,有前途?地位和前途,都是靠自己的能力和努力来积累的,有些时候测试之所以没有地位,主要还是在于做测试的人,所以,对于咱们这些测试人员,一定要对自己有信心,无论开发多么牛逼,都需要测试去找出他们的问题,在开发和产品面前,该强势的时候一定要强势,不能总是因为觉得测试的地位不好,而忽略掉本该有的立场!


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