solo自动测试

上一篇 / 下一篇  2012-02-01 15:25:38 / 个人分类:amdroid工具之solo自动测试

整理了一份robotium使用总结文档,有兴趣的同学可以看看,有问题一块交流学习

注:文中图片上传失败,完整文档见附件。

1. 环境搭建

1.1 资源下载及安装

1.1.1 JDK:Jdk-6u13-windows-i586
    地址:http://svr-android/share/Android/jdk-6u13-windows-i586-p.exe,安装。

1.1.2 IDE:Eclipse:Eclipse-SDK-3.4-win32
    地址:http://svr-android/share/Android/eclipse-java-ganymede-win32.zip,解压,无需安装。

1.1.3 Eclipse插件ADT安装
    在装好eclipse后,选择菜单Help>Software Updates>Available Software>Add,添加ADT路径http://dl-ssl.google.com/android/eclipse/,选择Developer Tools,点击next即可。

1.1.4 Android sdk
    地址:http://svr-android/share/Android/,下载,解压。

1.2 环境配置
1.2.1 java环境变量配置
    依次点击:“我的电脑”-(右键)“属性”-“高级”-“环境变量”,弹出Windows的“环境变量”配置卡。
在“系统变量”栏下执行三项操作:
①新建“Java_Home”,设置其值为 JDK所在的绝对路径(例如 D:\Program Files\Java\jdk1.5.0_04)。
②新建“Classpath”(如果已有,则直接编辑),设置其值为 .;%Java_Home%\lib (若值中原来有内容,用分号与之隔开)。注意路径前的符号为.;不能漏掉
③新建“Path”(如果已有,则直接编辑),值: %Java_Home%\bin; (若值中原来有内容,用分号与之隔开)。
在命令行输入javac,显示它的用法则可以说明该环境已经配置成功。

1.2.2 andoid sdk
启动eclipse,点击window->preferences->android,在SDK Location输入SDK路径,点击Apply,就可以了。

1.3 下载robotium源码
http://code.google.com/p/robotium/downloads/list取最新源码及API说明文档。

1.4 创建工程
1)创建一个adnroid test project。在Eclipse 里,单击 File --> New --> Project --> Android Test Project --> an existing Android project 选择要测试的工程,选中后,project name...等等会自动填写完整--->finish。Project namet也可自己输入。

2)链接Robotium库:test工程右键-->build path-->config build path->Libraries->Add JARs->找到放库的工程路径。

2. 使用前准备

2.1识别各类控件
只说明了较常见的控件。

2.1.1 Form. widgets
以下为效果图及对应的名称:

CheckedTextView效果图如下:

2.1.2 composite
GridView:酷盾主页的九宫格就是通过gridview实现的,效果图如下:

ListView:类型黑名单列表就是通过listview实现的,整个列表时一个list,list里边的每个Item包括两个textview和一个checkbox,效果图如下:

ScrollView可以让它内部的数据显示不下的时候出现滚动条,如上图所示,当超出一屏时,出现滚动条。

2.1.3 images&media
ImageView:以下效果图里的背景就是ImageView

ImageButton效果图如下:

2.1.4 time&date
TimePicker:效果图中设置时间部分


DatePicker:效果图中设置日期部分

2.2熟悉Robotium API
    熟悉robotiumAPI方法,可以先知道它支持哪些操作,方便使用。可以查看robotium的API文档。
2.3测试对象源码
    能拿到源码前提下,可以先根据测试需求,查看UI对应的layout及xml下的xml文件,了解界面上控件类型及属性。
3. 问题总结
1)有些button没有string,没有text,只能通过index来click这样很不直观,而且button的index并不是固定的,有可能随着控件重新加载,顺序也有可能发生变化,无法保证测试结果。查看了robotium源码,发现大多数click方法最终都是通过传入参数转成view,再调用clickOnView,于是参照着写了一个通过button的ID来click的方法。Button的ID需要查看测试对象的源码中获取。比如导航中就有菜单栏大多数据button就是这种类型的。

2)listview动态添加item如何判断添加成功。可从添加前及添加后Item个数判断,先确定添加item的属性,再通过相应的方法获取item。比如添加一个item可能需要三个textview,那么通过getCurrentTextViews(View)前后获取到的个数差就相差三个。比如添加黑名单到黑名单列表。

3)有些EditText输入时调出输入法,但有些EditTextl输入时不会调出输入法,如果调出了输入法,需要goBack()关闭输入法才可进行下一步操作。比如手机防盗输入密码会调出输入法,酷盾帐号登录或是注册时不会调出输入法。

4)有些控件是开发自已写的,robotium没有相应的API可用,可以使用clickOnScreen()大概预估一个x,y值,0坐标在左上角。比如备份还原中从备份界面切换到酷盾帐号界面,黑名单中进入黑名单列表。

5)点击listview中随机添加的item。随机添加的item无法得知text,则可以通过clickInList(int line)。比如黑名单列表。

6)有些界面robotium提供的滚动功能不起作用,需要找当前activity屏幕之外的button或是其他view时,可以通过solo.sendKey()发送向上、向下或是左右移动焦点找到需要点击的button或是其他view。

4. 结果判断
4.1 waitForText
    该方法适用于点击操作后需要一点时间才返回结果的结果判断。比如联网操作,可以设置适当的延时,等待返回结果,判断结果更加正确。

4.2 assertActivity
    该方法适用于activity时,可以判断点击操作切换Activity是否正确,可以与waitfortext配合使用。

4.3 searchText+assert
    当有editText时,输入内容后,可通过searchText查找输入内容是否是预期结果,再将返回结果判断。
注:有些editText的内容无法通过searchText,原因暂时没找到。比如:手动添加黑名单时的名称及号码的输入框。

5. 执行
    有两种方式,一种是通过eclipse;一种是通过命令行。

5.1 eclipse
    Run as Android JUnit Test,可以跑整个测试工程,也可以跑单个测试用例

5.2 命令行
adb install ****Test.apk
adb shell am instrument testpackagename/android.test.InstrumentationTestRunner
抓取log的关键字是TestRunner。

TAG:

引用 删除 zcxnl88   /   2012-04-23 20:07:56
请问下LZ,robotium中的ClickOnText支持中文吗?
 

评分:0

我来说两句

日历

« 2024-05-26  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 16154
  • 日志数: 18
  • 建立时间: 2012-01-30
  • 更新时间: 2012-06-07

RSS订阅

Open Toolbar