说到Robotium自动化测试,可能小伙伴们都是耳熟能详的,作为老测试老说,怎么能不了解了解呢,所以最近两天学习了一下,具体内容主要包括基础的环境搭建,使用的工具是eclipse,adt文件包(adt-bundle-windows-x86_64_20140101\sdk\platform-tools),开发阶段的自动化我还不清楚,只是找到一个使用现成的apk进行自动化测试的方法,下面就详细介绍一下,以备使用时查询:
首先说说优点:从测试的角度上看,仅需要apk安装包的方式,主要有以下几个优点:
a.测试人员无需在Eclipse中搭建复杂的Android开发环境(基本的Android SDK和Java环境还是必需的。)
b.在app还没开发完全的情况下,测试人员可以根据大致的app功能,把自动化开发框架建好,以利于后期对具体功能展开自动化脚本的开发。
c.在进行自动化测试时,即使不用到持续集成,也可以较为方便地测试迭代中的app——只需要在测试设备上(模拟机或者手机)安装最新的app即可。
1.首先能就是搭建环境,要搭建环境那么环境变量就不可少,可以参考Android和JAVA的环境变量的添加方法,这里不详细说了
2.我使用的是之前朋友给的一个ADT包里面的eclipse和sdk来做搭建的环境,如果有可以直接使用,很方便
3.从开发同事那里得到最近的apk的包,使用resigner工具对此测试包进行重签名(很简单,直接把apk拉到resigner工具中就可以)
重签名方法:
a使用工具re-sign.jar重签名工具
b把需要安装的apk包放到一个创建的目录(随便创建一个就可以file)中,把re-sign.jar也放在该目录下
c双击打开re-sign.jar,把需要重签名的apk拉到re-sign.jar上,系统会自动实现重签名的操作,并自动生成一个结果,这个结果中有package name和MainActivity要记录备用,如下图
d给重签名的文件命名成target apk 名字
4.把重签名的apk放置到adt-sdk-platform_tools的文件夹下,路径为:xxx/adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\platform-tools
5.使用数据线把手机和电脑连接起来,接下来就实现把重签名的apk安装到实机中去,方法:
a.打开命令提示符:cmd
b.使用cd .../sdk/platform-tools
c.进入目标的文件夹下后使用adb命令来安装apk,命令行如下:
adb install testapp.apk(重签名的目标apk安装包名字)
看到Success,说明apk已经安装成功了
ps:在安装apk之前,要确认老包已经卸载了,此命令不支持覆盖安装,所以不卸载就安装系统执行命令后会提示说安装失败,failuer
6.接下来就要使用eclipse来实现脚本的执行了
在eclipse中新建一个Android Test Project进行配置,使得自动化脚本与要测试的apk进行关联
1)首先要修改Android Test Project下的AndroidMainTest.xml文件,使得粗体标注的package名与resign生成的名字一致》
中间的<instrumentation>脚本是需要手动添加的,之前会自动生成一段代码,但是instrumentation是不会自动生成出来的
<instrumentation
android:name = "android.test.InstrumentationTestRunner"
android:targetPackage = "com.example.mobile.testedapp"/>
2)在自动化脚本测试类中,声明初始类,也要与resign生成的main activity类名一致
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.example.mobile.testedapp.MainActivity"
7.这样就可以在eclipse中的Android Test Project 中开发自动化脚本并在安装好的apk基础上运行了
--我在实际执行时遇到一个问题,总是提示java语法错误,让我打开那个sdk manager工具,我尝试了下载新的sdk也不行,所以我重新下载了一个更新的adt包才解决这个问题。