转载地址:http://testerhome.com/topics/1666
本来今天想写下在有源代码的情况下,如何对应用进行自动化测试,但是今天活儿太多,就先不写了,可能很多同学都已经在网上搜到过相关的内容,包括在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关注多一些,将来也会对其他的自动化工具做一些研究,也会写出来,我觉得做任何一种职业,态度是非常重要的,如果总是觉得测试没有地位,没有前途,那么转行做其他的就会有地位,有前途?地位和前途,都是靠自己的能力和努力来积累的,有些时候测试之所以没有地位,主要还是在于做测试的人,所以,对于咱们这些测试人员,一定要对自己有信心,无论开发多么牛逼,都需要测试去找出他们的问题,在开发和产品面前,该强势的时候一定要强势,不能总是因为觉得测试的地位不好,而忽略掉本该有的立场!