最近因为业务需要学习了下Sword Android测试框架,因为是第一次接触无线自动化,现将学习过程记录如下
1. 基础环境的搭建
1) JDK6,Android SDK需要JDK5或者是更高的版本,本机装的是jdk6。(安装步骤略)
2) Maven的安装(安装步骤略)
3) ECLIPSE的安装,本机装的是eclipse3.7(安装步骤略)
4) Android SDK的安装:下载地址:http://developer.android.com/sdk
下载完成后,将adt-bundle-windows-x86.zip解压放到一个方便的位置(如:D:\Android\adt-bundle-windows-x86),将SDK的目录添加到Windows的path环境变量中:在桌面上右击“我的电脑”,依次点击【属性】>【高级】>【环境变量】。双击【系统变量】里面的Path项,将Android SDK中tools和platform-tools目录的完整路径添加到这里。检查SDK是不是安装成功运行 android –h 如果有类似以下的输出,表明安装成功:
5) ADT的安装
启动eclipse,进入菜单中的 "Help" -> "Install New Software",点击Add...按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http://dl-ssl.google.com/android/eclipse。如下图所示:
确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。 如下图所示:
然后就是按提示一步一步next。 完成之后选择Window > Preferences... 在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径 ,点击Apply、OK。配置完成。
6) 创建AVD
为使Android应用程序可以在模拟器上运行,必须创建AVD。在Eclipse中。选择Windows > Android virtual Device Manager,点击左侧面板的Android Virtual Devices,再右侧点击New ,填入AVD name,Devices,Target的API, Skin随便选,Hardware目前保持默认值 点击Create AVD即可完成创建AVD,如下图所示:
7) ApkTool的安装
下载地址:
http://code.google.com/p/android-apktool/downloads/list
下载下来后,将以上2个文件全部解压,放在电脑上任一位置,如放D:\Android中,将apktool1.5.0文件夹中的apktool.jar放进D:\Android\apktool-install-windows-r04-brut1,在环境变量的path中增加ApkTool的命令行工具的路径,如:设置成功后,点击开始->运行->cmd 输入apktool,出现下图:
则安装成功。
2.创建maven工程,如图:
修改pom.xml文件,增加
<dependency>
<groupId>com.taobao.test</groupId>
<artifactId>sword.android.client</artifactId>
<version>0.1-SNAPSHOT</version>
</dependency>
注:如果是非淘宝的setting.xml的话,则还需要在setting.xml中增加
配置
3. 生成重签名被测Apk以及测试Apk
在maven工程中建一个java类,如APK.JAVA,新增如下代码:
点击运行,运行结束后会在被测Apk所在的文件目录中新生成两个Apk, 其中后缀为.sword.signed.apk的是重新签名的被测Apk,后缀为.sword.test.apk的是测试的Apk,将新生成的两个apk安装到手机,安装的工作是一次性的,在测试代码开发调试过程都不需要再重新安装,只有更新被测Apk或升级sword框架时才需要重新生成并安装, 如果需要更新被测Apk,将resignApk变量设置为true,如果需要升级sword框架,将createTestApk变量设置为true
4.生成对象库。
将手机与PC机相连,手机设置成USB调试模式,在pc机运行->CMD->输入adb devices,如图
检查是否有驱动,有则如上显示,才能进行后续工作,没有,则需要安装驱动。
新建java类,在java类增加如下代码,packageName为测试包名称,activityName为需要生成对象库的Activity名称,savePath为生成对象库文件的路径
执行这个java类,将会在savePath上生成“Activity完整名字.library”的package,package下生成两个类,如下图
5.使用对象库
生成对象库之后我们可以直接使用这个对象库类,通过start方法启动Activity
如:
MainActivity2 mainActivity2 = MainActivity2.start(driver);
mainActivity2.editText_searchedit.setText(searchKeyword);
mainActivity2.imageView_searchbtn.click();
也可以不用生成的对象库,直接写
6.创建测试用例,下面是没有使用生成对象库直接写的测试用例,如图所示:
点击运行,运行结果如下:
注意,在运行测试用例过程中,手机需与PC机相连,运行时框架会自动启动测试Apk的instrumentation,并打开主Activity,对主Activity中id为searchedit的EditText输入值,再点击id为searchbtn的ImageView, 然后等待搜索结果的Activity打开,打开后获取搜索list的总行数,最后验证总行数是否大于1
------------------------------------------------------------------------------------