anthony.wang 发表于 2012-9-3 11:21:43

基于Android平台应用程序的关键字驱动自动化测试 – 理论、工具和实践(三)

本帖最后由 anthony.wang 于 2012-9-12 11:01 编辑

TestDroid则通过流行的开源工具Eclipse作为脚本编辑器。它以Eclipse插件的形式存在。通过该插件来录制脚本、回放脚本。录制的脚本可以生成Robotium或MonkeyRunner脚本语言。这些脚本语言对于开发工程师来说也许会很熟悉,因为有不少安卓开发工程师自己也会用这些工具来制作一些简单的自动化测试脚本用于每日脚本构建(Daily Build)后的冒烟测试(Smoke Test)。对于测试工程师来说,上手这类Jave或Python语言视乎要比QTP所用的VB Script要稍微吃力一点,且对于Eclipse这类开发工具的使用熟练程度也不及QTP。尽管如此,对于在语言和工具的学习曲线这方面的开销,比起日后Eclipse所能提供的强大而灵活的脚本编辑能力来说,应该也是值得的。 DroidPilot则是完全自己开发的脚本解析器,选用的语言也是VB Script。而且它也提供了一种脚本设计器,这种设计器可以通过点选界面对象和针对对象的操作,来构建测试流程,并把设计好的测试流程转换成为脚本语言。这种设计器虽然可以快速构建简易的测试流程,但是对于复杂一点的测试逻辑,还需要测试工程师自己在脚本中完善。但无论如何,这个动作已经大大简化了测试工程师的代码量,且操作效率甚至比录制更灵活,因为它可以在任意操作步骤之间增加或删减步骤,且能调整操作步骤的前后顺序。1.
并发控制多台设备 – 脚本一次编译,可跨设备执行PerfectoMobile号称拥有市面上所有智能手机(iOS, Android, Blackberry…),而且这些手机部署在全球不同国家。用户登录Web控制台后,可以对这些手机进行任意操作:打电话、发短信、安装/卸载被测应用等。它不但等做到测试脚本跨设备执行,甚至还可以跨平台执行,因此,可以说,他在兼容性测试方面还是考虑的比较全面的。然而,似乎有一点遗憾的是,制作好的脚本并不能并发的在多台设备上执行,而是需要手工选择设备执行。而且,对于被测应用的部署也是一样的,缺乏批量部署这样的功能。这可能限制了并发性兼容性测试的工作效率。 TestDroid由于是使用Eclipse插件形式工作,这个插件在录制和回放脚本的时候同一时间只能链接一台机器。尽管这样做对于脚本的编辑和调试来说已经够用了,但还无法满足批量设备的兼容性测试。因此,他们又额外开发了一个在线平台,用户只需要将开发好的脚本和被测应用上传到他们的服务器,这些应用和脚本就会被自动部署于服务器端的大量安卓设备,并执行测试。最后,用户会收到兼容性测试报告。 DroidPilot有专门的脚本编辑工具Script Designer,而且这个工具也是限定了只能连接一台设备进行脚本编辑和回放。如果需要连接多台设备进行兼容性测试的话,就需要用到DroidPilot的另一款工具——AutoRunner。通过这款工具 ,用户可以将多个脚本在多台设备上执行回放,还可以设置按设备顺序回放,还是多设备并发回放。并且还能自定义回放起始时间。2.
与其它测试工具的整合 – 测试用例管理、缺陷跟踪PerfectoMobile在Web端是没有整合任何测试管理工具的,纯粹是提供设备给用户使用,用于制作测试脚本和回放。近年由于新开发的QTP Plug-in,使得它能借助HP测试管理工具Quality Center用于管理测试脚本和跟踪缺陷。 TestDroid由于走的是开源工具路线,可以借助Eclipse的相关插件来达到管理测试脚本的效果。例如,使用Eclipse的svn插件,可以使得脚本保存于svn数据库,有利于测试团队协同工作。但是对于缺陷跟踪管理这一块,似乎还没有明确的工具整合进来。 DroidPilot在设计之初就考虑到了与一些开源测试管理工具的整合,例如,用TestLink作为测试用例管理,用Bugzilla/Mantis作为缺陷管理工具。因此,DroidPilot提供了与这些开源工具之间对接的http协议接口。实践探讨完上述关于不同测试工具的使用特点,更准确的说,是安卓应用自动化测试工具的特点,我们不妨来实践(其实是模拟)一个移动应用的测试过程。这里我们选用API Demo作为被测应用,选用DroidPilot作为测试工具。分析被测应用被测应用API Demo 使用标准Android SDK作为开发控件,且被测应用未加扰码,因此,界面上所有元素可以被DroidPilot识别。对于一些非标准Android SDK控件开发的应用,这里有两种情况:一种情况控件完全由自己开发,如果是这种情况,DroidPilot完全无法识别对象;另一种情况是在标准控件基础上做了二次开发,这样的话DroidPilot只能识别到原生SDK那一层。对于这两种情况,都可以联系DroidPilot开发团队为非标准控件度身定制专属插件,用于识别被测控件。对于扰码问题,正如上述《前置条件》章节所描述的,DroidPilot本身是无能为力的,只能请开发团队去掉扰码,打包一个不加扰码的测试包给测试团队使用了。
下一篇:
基于Android平台应用程序的关键字驱动自动化测试 – 理论、工具和实践(四)
http://bbs.51testing.com/thread-804247-1-5.html

求魔求魔 发表于 2012-9-3 18:19:12

- - - -!
我来看看的

anthony.wang 发表于 2013-1-22 12:12:41

:L

fengerapple 发表于 2013-1-25 17:21:08

Thank you very much for sharing!The good man!The good life of peace!
页: [1]
查看完整版本: 基于Android平台应用程序的关键字驱动自动化测试 – 理论、工具和实践(三)