Robotium自动化测试介绍
活动时间:2016年9月29日 QQ群视频交流
活动介绍:TMQ在线沙龙第九期分享
本次分享的主题是Robotium自动化测试介绍。
想知道活动分享了啥吗?往下看吧!
活动嘉宾
嘉宾简介
陈航特,腾讯测试工程师,负责Android应用宝的UI功能自动化测试和接口自动化测试,有丰富的UI自动化实践经验,对Robotium有着较深入的研究,参与《腾讯Android自动化测试实战》编写。
分享主题
问答环节
1、提问:业务流程比较复杂的功能,例如涉及数据库的数据更新的,如何设计自动化测试用例?
答:这里的数据库更新指服务端吧?针对服务端需要配置、更新类的用例,一种可以在服务端配合,通过白名单形式,即测试机访问到的总是指定的数据。
另一种在服务端开通修改数据库的接口,用例在需要修改数据库时,通过发送http接口请求完成数据库的更新操作。
2、如何拿到被测APK签名?
答:被测APK的签名文件一般存放于被测工程,需要找开发团队。
3、问题:Robotium有时抓取控件是上一层的,不是很稳定,有什么好的方法吗
答:获取控件,该控件如果在当前界面有唯一的资源id,那么通过id就可以获取。如果有多个id,则可以获取父节点中的控件,再往下获取。
如果当前界面显示了,但获取的仍是上一个界面的控件,需要看看等待时间是否合适,或者获取到控件后根据控件的是否显示、坐标等来过滤
4、问题:Robotium框架是否可以用于做录制回放工具,有什么好的思路?
答:可以的,Robotium官网就做有一个录制回放工具robotium-recorder,可以参考
5、混合应用怎么切换context
答:对于Robotium来说,是不需要切换context的,进入到Web界面后,就可以获取该Web界面的元素了。
6、如何在Robotium里使用junit4里的参数化测试,目前Android并不支持junit4
答:目前Android是支持junit4的,可以参考AndroidJUnit4及AndroidJUnitRunner。另外也可以通过自定义InstrumentationTestRunner,然后执行用例时通过adb shell am instrument命令行方式传参给用例。
7、提问:云测平台的自动化测试是否有用到robotium?
答:Robotium是基于Instrumentation模式的测试,也是应用比较广泛的一款Android端自动化测试框架,一般云测平台都会支持。以腾讯优测为例,就支持在云测平台中支持运行Robotium形式的自动化测试用例。
8、操作DOM元素时候,如何知道h5页面元素已经加载完成,能否用监听webview加载完成回调的方法
答:点击后可以加个循环等待,等待某个条件出现后则跳出这个循环等待,这个条件可以是判断有些特征的Web元素是否出现、判断webview的Progress进度条、webview是否加载完成等等,具体使用哪种方式做为判断条件可能得看具体场景。
9、刚才说的ROBOTIUM同时在多手机运行,需要指定devices吗?还是运行一个命令就在已连接的多台手机运行了
答:默认是在执行命令时,同时运行连接在同一PC上的所有手机,如果有额外需要,也可以通过修改Spoon在GIT上的源码自定义实现指定devices功能。
10、提问 如果是没有源码的情况下,测试类还是要继承ActivityInstrumentationTestCase2吗?看了下api24,这个类被抛弃
答:是的,继承于ActivityInstrumentationTestCase2,或者继承于其它的继承自InstrumentationTestCase的类,例如SingleLaunchActivityTestCase等等。
API24起,确实抛弃了ActivityInstrumentationTestCase2,官方API上推荐ActivityTestRule,这也是Android的一个趋势吧,把test相关的都以android.support工具包形式提供。
获奖名单
ID:宋振华--测试 (22****96)
ID:小狼--自动化测试 (576****67)
ID:刘若翘 -- 测试(113****140)
恭喜以上三位同学获得TMQ本次沙龙活动听众奖;
本次奖品是由TMQ 官方出品、本期嘉宾参与编写的《腾讯Android自动化测试实战》新书哦