手机测试Robotium实战教程(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-03 03:43:03

点击下载

作者:杨志伟

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

手机测试Robotium实战教程

手机测试Robotium实战教程试读:

前言

移动互联网近几年呈现出井喷式的发展,技术方面也跟着发生了快速的变化,作者于2011年开始接触Android自动化方面的测试,在这几年的工作、学习和实践中,碰到了不少的测试问题,在不断地遇到问题、解决问题、思考的实战过程中也积累了不少经验,虽然现在网络上有不少关于Android自动化测试方面的资料,但都比较零散,没有系统性地介绍,学习者看了以后还是一知半解,且市面上Android自动化测试方面的书也很少,基于此,就萌发了这样一个想法,把这几年工作实践中用的一些技术、实践心得、工具梳理汇总一下,然后通过书的形式和各位同行分享各种测试技术,这不但对自己是一种提升,也可以帮助读者一同提高软件测试水平。

起先我将整理的内容发布到了百度阅读上,网友看了给出的反馈很不错,很多网友都不习惯在线阅读,纷纷来信表达想看纸质图书,所以,这本书就应运而生了。

Robotium是一款开源的自动化测试框架,可以支持native和hybrid的自动化测试,它的API简单明了,使用起来简单方便,用它做软件测试速度也快。本书主要讲解了用Robotium进行移动测试的技术和技巧,包括移动端自动化测试开发环境搭建、建立测试工程、Robotium测试实例、自动化测试脚本编写、测试框架编写、测试代码批量运行、持续集成、代码覆盖率展现、常见错误及解决方法等知识,帮助读者尽快学会用Robotium进行移动测试的技术。

这是一本偏向实践性的书籍,在实践过程中多多少少会碰到一些问题,所以作者特意为方便读者答疑创建了一个QQ群,用来交流阅读本书过程中遇到的问题,QQ群号:323269785。

本书用到的源代码都可以从网站下载(http://qun.qzone.qq.com/group#!/323269785/share),本书每个章节所用到的工具或者代码都会放到这个网址对应章节的文件夹下,读者可自行选择下载。

由于本人水平有限,书中存有漏洞和错误在所难免,欢迎读者针对本书出现的不足之处提出您的宝贵意见或者建议,可以把您的反馈发送到我的GMAIL 邮箱:if1else0@gmail.com。以便以后修订完善。编辑联系邮箱:zhangtao@ptpress.com.cn。

希望本书能给您在Android自动化测试方面带来一些帮助,谢谢大家的阅读。编著第1章自动化测试简介1.1 何为自动化测试

什么是自动化测试?在一些人眼中,觉得自动化测试是一种比较高大上的东西。但在我看来,自动化测试其实就是通过一定的编程手段,自动执行本来需要手动执行的一系列测试的活动。只要有一定的编程基础,人人都可以参与到自动化测试中来,享受到自动化测试带来的便捷性。现在有很多商业的、开源的自动化测试工具可以更好、更容易地帮助我们进行自动化测试,因此,自动化测试的门槛并没想象中高。

举个小例子来说明自动化测试是怎样让我们的生活变得美好的。测试组长A对测试组员B和C说:“有个Bug不好重现,为了节约时间,你们两个人分别测一百次,看看会不会重现这个Bug,这个测试优先级比较高,要尽快哦。”B二话不说,埋头苦测,把喝水和上厕所的时间都给省了。C测试之前想了一下,这些测试也不是太复杂,我调用×××工具的几个API 就可以解决问题了,测试程序中再加个 for 循环不就完事了,二话不说,二十分钟后,就调试好这个测试程序。

半天过去了,B好不容易抬起了头,终于把这个让人烦的第一百次给测试了,一想到还有好几个user story的测试用例要设计,不禁悲从中来。而此时的C呢,把需要设计的测试用例弄得差不多了,正悠闲地喝着咖啡呢。

上面的例子一点也不夸张,在现实的工作中很常见,可见掌握一些自动化技能,对工作效率的提高是有很大帮助的。1.2 自动化测试和手动测试的对比

自动化测试与手动测试相比,具有以下方面的优势。

1.执行速度快

自动化测试比手动测试速度要快很多,在用例数目多的情况下,这种优势会更加明显。

假设有一个测试用例,需要执行上百次,若手动测试执行,会很枯燥乏味,也会很疲惫,但自动化测试是用机器来执行测试,优势会很明显,它可以成千上万次、昼夜不分地重复执行都没任何问题,

还可以通过多增加硬件支持,缩短运行时间。例如,本来是一台手机运行1000个用例,多增加一台手机,就能缩短一半的运行时间,比多增加一个人来手动运行性价比高很多。

2.可靠性高

手动测试免不了一些人为的失误,如某个测试人员因为生病了状态不好,执行Case的过程中就更容易发生一些差错,重复性的次数越多,就越容易发生错误。

自动化测试通过编程执行,确保每次执行的操作都是唯一的,非0就是1,不像手动测试那样还受一些外在因素的制约。

3.复用性高

举个Android平台的例子,我们都知道Android平台厂家多,碎片化严重,而兼容性测试又非常重要,这时,自动化测试只需要将脚本放到不同的设备或者OS 上逐个运行,查看结果是否有问题即可,但手动测试必须用人力去验证应用的兼容性,压力会比较大。

4.节省人力资源

如果自动化程度高,就可以更好地把测试人员解放出来,节省一定的人力成本。或者让这部分解放出来的测试人员有更多时间去做其他一些有利于保障产品质量的活动。

列举了这么多自动化测试的优点,但不能因此否认手动测试的价值,首先,并不是所有的用例场景都可以进行自动化测试,因为一些技术上的限制,做到 100%自动化测试是不现实的,或者说是性价比不高的。很多测试场景用手动测试会比较适合,如一些用户体验方面的用例和一些视觉感官上面的测试等,切勿只用自动化测试,尽量做到自动化了的测试会真的给实际工作带来了效率上的提升。1.3 移动端自动化测试工具的选择

之所以需要选择,是因为可选项太多了,不同的平台,会有很多不同的自动化测试工具供选择,其中既有商业性的收费工具,也有开源免费的自动化测试工具。

这本书的主题Robotium就是其中一种开源的自动化测试框架,在正式展开前,先看看当下还有哪些在Android测试方面比较常用的测试框架可供选择。1.3.1 Appium

Appium也是一种自动化测试框架,可以用来测试natvie、hybrid和mobile web APP,Appium最吸引人的一点是,它既支持Android方面的自动化测试,又支持iOS方面的测试。

它还支持使用不同的编程语言编写测试代码,但这种便捷性是以牺牲一部分执行速度换来的,因为这需要额外的转换时间,转换成对应的可操作的底层的测试框架。Appium在Android方面底层使用的测试框架是uiautomator和instrumentation,iOS则使用Apple提供的UIAutomation。明白了这点,也就不奇怪为什么Appium可以支持跨进程地操作iOS的测试了。

Appium 经常被“吐槽”的还有一点,就是稳定性还有待提升,但它的这些优点也是很明显的,参与的人越来越多,贡献的力量也就越大,经过一段时间的发展,相信 Appium会更加稳定和流行。

读者可以访问Appium的官方网站http://appium.io/,在这里可以获得关于它的一些详细介绍。

国内TesterHome社区也有不少Appium方面的资料和讨论。1.3.2 uiautomator

uiautomator 是 Google 官方提供的一款自动化测试框架,其主要特点是支持跨进程的操作,这一点极大地方便了对应用外控件的操作。

当然了,uiautomator在提供便捷性的同时,也存在着一些不足,如只支持Android SDK Platform、API 16及以上的。除此之外,它对WebView的支持也不好。

还有一点就是调试很不方便,要调试首先需要在启动的命令行配置好调试项后才能进行,启动后还需在Eclipse中新建Remote Java Application选项,相对来说比较麻烦。虽然也可以通过输出Log的形式来调试,但不如其他工具有插件支持调试方式便捷。

uiautomator 的编译运行也比较麻烦,测试代码一有修改,就需要重写、编译产生 jar 文件,然后还要将jar文件Push到手机指定的目录下才能使用,虽然可以通过批处理文件将这些步骤封装起来,但还是略显麻烦。

想了解更详细的信息,请到它的官方网站,那里可以查看uiautomator的API详细介绍、命令行运行uiautomator的参数及命令解释,以及一些入门的例子。

官方网站:http://developer.android.com/tools/testing/testing_ui.html。1.3.3 Robotium

Robotium 也是一款开源的自动化测试框架,可以支持 native 和 hybrid 的自动化测试, API使用起来简单方便,执行速度也快。

但Robotium有一个比较大的局限性就是不支持跨进程的操作,但也有相应的解决方案,后面章节会介绍到。

Robotium 在 ADT 插件的支持下,可以很简单地在 Eclipse 下调试运行,这一点比uiautomator便捷多了。

Robotium 官方网站的wiki 标签下还提供了一些简单易懂、容易上手的示例项目,在这里也可以查看Robotium的API文档,Robotium的方法命名很直观,一般通过方法名就可以知道这个方法所能实现的功能。

最后,Robotium是开源的,托管在GitHub https://github.com/RobotiumTech/Robotium。

它的代码量不大,可以很容易地进行二次开发,然后定制出自己需要的功能。

当然还有其他的自动化测试框架可供选择,如monkey、monkeyrunner、Testdroid(商业)、Eggplant(商业)等,每种工具都有优缺点,关键在于根据产品的特性,选择一款适合的自动化测试工具,不要盲目跟风,合适才是最重要的,当然可以混合使用多种自动化测试工具来克服一些工具本身的局限性,以便得到更好的自动化测试效果。第2章测试开发环境搭建2.1 JDK安装及其环境变量配置

因为要用到Java 语言,所以JDK是首先需要安装的。可以通过下面的链接,选择对应平台的JDK版本进行下载。

http://www.oracle.com/technetwork/java/javase/downloads/index.htm。

本书所有的例子选择在JDK 8平台下进行。

运行下载的JDK安装文件,根据提示完成安装。在安装完毕后,设置环境变量。设置环境变量的目的是可以在任意路径下执行javac/java等工具。(1)在计算机桌面选中计算机后单击鼠标右键,在弹出的菜单中选择“属性”项,打开“系统属性”对话框,选择“高级”选项卡,单击“环境变量”按钮,如图2.1所示,在“环境变量”对话框中单击“新建”按钮,添加JAVA_HOME,变量值为JDK的安装目录,如JDK的安装目录为D:\Program Files\Java\jdk1.8.0_11,则添加的环境变量如图2.2所示。(2)将JAVA_HOME下的bin文件添加到Path中,选中Path系统环境变量,单击“编辑”按钮,如图2.3所示,在Path最后面添加%JAVA_HOME%\bin;,如图2.4所示。(3)添加完环境变量后,可以打开Windows命令处理程序窗口,执行命令java -version验证环境变量是否添加成功,如果添加成功,则显示安装的Java版本号,如图2.5所示。图2.1图2.2图2.3图2.4图2.52.2 Eclipse的安装

可根据个人喜好选择对应的集成开发工具,本书是在Eclipse IDE下进行的。Eclipse可从http://www.eclipse.org/downloads/下载。

因为后续章节还要用到Web项目的创建,所以,本书选择下载Eclipse IDE for Java EE Developers版本,如果单纯用来开发Java SE项目,选择标准的Eclipse版本即可。解压下载的压缩包,找到“eclipse.exe”文件双击即可运行。2.3 Android SDK的安装及环境变量配置

进行 Android 开发或者自动化测试,Android SDK 是必不可少的。Android SDK 可以从http://developer.android.com/sdk/index.html下载。

如果没有特别的要求,可以选择下载混合的下载包,里面包含 Eclipse、ADT 和Android SDK。本书是单独下载SDK安装程序。双击运行安装程序,安装完毕后,在安装目录下运行“SDK Manager.exe”,在弹出的窗口中选中 Tools 文件夹,下载最新版本的Android SDK Tools、Android SDK Platform-tools 和 Android SDK Build-tools,选中需要的Android SDK 版本,可根据需要选择是否下载源码或者样例代码,这里选中整个版本文件夹,如选中 Android 4.3(API 18)文件夹。然后选中 Extras 文件夹,单击“安装”按钮 Install 23 packages,如图2.6所示。图2.6

如果出现如图2.7所示的错误,则说明该下载URL被封锁。图2.7

访问被限制了,可以通过其他方式解决,如可以使用收费的VPN,也可以使用一些免费的软件。

现在介绍如何使用GoAgent来下载。GoAgent的下载和配置这里就不详细讲解了,网上搜索一下就会出现很多帮助文章,本机用的GoAgent都配置好了,到时候只需从网盘下载,然后解压使用即可。

如果想自己动手配置一个专属的GoAgent,从网上搜索帮助文件,按照步骤操作即可。

将从网盘下载的GoAgent压缩包解压缩到本地磁盘,会出现如图2.8所示的local和server两个文件夹。

进入local文件夹,找到goagent.exe可执行文件,双击运行即可。

运行成功后,可以在底部任务栏右侧看到图2.9所示的图标。图2.8图2.9

需要下载时,只需选中该图标,单击鼠标右键,在弹出的菜单中选择“设置 IE 代理”,然后可以自由切换任意一个代理,如图2.10所示。图2.10

使用完毕后,记得设置禁用代理,避免访问一些国内站点速度过慢或者无法访问。

上面介绍的是通过底部任务栏图标来操作的,也可以下载一个浏览器插件来设置和关闭代理,插件的名字是SwitchySharp,如果想通过这种浏览器插件的形式来使用GoAgent也可以自行到网上搜索帮助文件,这里就不详细介绍了。

因此,如果出现下载浏览器插件不成功的,或者想访问一些被屏敝了的站点,就可以先打开GoAgent,然后设置代理即可。

安装完毕后,添加ANDROID_HOME环境变量,如图2.11所示。图2.11

将ANDROID_HOME下的tools和platform-tools添加到 Path 下,添加方法与上面将 JAVA_HOME的bin文件夹添加到Path下类似,添加如下的配置到Path。 ;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;2.4 ADT插件的安装

ADT 是为了便于在 Eclipse 下开发Android 应用的一款插件。与安装其他Eclipse插件类似,可以在Eclipse Help菜单下选择Install New Software选项,然后输入插件地址进行下载,如图2.12所示。图2.12

通过这种方式如果安装失败,可下载ADT的安装包,然后在图2.12 的对话框中单击Archive按钮,找到下载下来的压缩包,按照提示安装即可。ADT压缩包可通过下面的地址下载:

http://developer.android.com/sdk/installing/installing-adt.html。2.5 Genymotion

如果读者使用过Android自带的模拟器,应该会对它有深刻印象,本章主要介绍一个非自带的模拟器 Genymotion。 它启动快,也很容易使用。它提供收费版本的同时,也提供免费的版本。收费版本和免费版本的差异可以从以下的链接查看:

https://www.genymotion.com/#!/pricing。

要下载免费的版本,可以从以下链接选择对应的版本下载:

https://www.genymotion.com/#!/download。

如果没有安装过Virtual Box,可以单击如图2.13所示的链接下载。图2.13

单击图2.13链接后,弹出图2.14所示的对话框。

单击Create account按钮,然后填写注册信息,注册一个账号即可(如果没有注册过的话),如图2.15所示。

单击Create account按钮,注册填写的邮箱会收到一封邮件,单击邮件中的链接,打开如图2.16所示的页面,单击Continue按钮,即可下载。

安装包下载下来后,运行安装文件,按提示一步步安装即可。安装过程中还会安装Virtual Box,同样也按默认方式安装即可。

安装完启动后如图2.17所示。图2.14图2.15

现在没有虚拟设备,只需要单击Add按钮,然后添加需要的设备即可,如现在想添加Nexus 5,就可以按照下述步骤进行,如图2.18所示。

然后单击Next按钮,按提示完成添加即可。添加完Nexus 5后如图2.19所示。图2.16图2.17图2.18图2.19

启动成功后的界面如图2.20所示。

接着执行adb devices,可以查看到这台设备,如图2.21所示。

随便找一个apk文件,然后执行adb install命令,看是否安装成功,如图2.22所示。

观察模拟器应用界面,“豆瓣”应用成功安装上去了,如图2.23所示。图2.20图2.21图2.22图2.23

也可以在Eclipse中安装Genymotion插件,依次单击 Help→Install new software项,然后单击Add按钮,打开“Add Repository”对话框,在Name文本框中输入一个名称,如Genymotion ,在Location文本框中输入插件地址:http://plugins.genymotion.com/eclipse/,如图2.24所示。图2.24

安装完成后,可以在Eclipse观察到如图2.25所示的小图标。

单击图2.25中的小图标,可以打开设置Genymotion目录的窗口,如图2.26所示。图2.25图2.26

可以选择需要启动的模拟器,如图2.27所示。图2.27

如果没有真的机器的话,Genymotion是个不错的选择。第3章Robotium入门3.1 Robotium简介

Robotium是一款开源的Android自动化测试框架,它提供的jar文件封装了很多便捷的方法,调用这些方法可以很方便地操作App上的控件,如单击控件、长按控件、拖动控件、给控件赋值、文本搜索等。在本书写作时,Robotium的版本已经到了5.2.1。

Robotium也提供录制工具,可以先试用,这个录制回放工具是收费的,需要295美元,有条件的读者可以购买,用来帮助快速编写测试代码。

更多关于Robotium的详细介绍可到它的官方网站了解:

https://code.google.com/p/Robotium/。

因为Robotium是开源的,代码托管在GitHub上,所以,也可以通过阅读、研究开源代码,进行二次定制开发。

托管地址为:

https://github.com/RobotiumTech/Robotium。

有些Robotium的方法通过API文档还是不能很好理解的话,可以阅读源代码了解其具体的实现逻辑,这样可以更好地加深对Robotium方法的理解,进而更加熟练地使用这些方法来进行自动化测试。3.2 Robotium版 “Hello World”3.2.1 导入被测试源码

Robotium官方网站给出的示例已经很详尽了,这里就不重复介绍了,直接拿过来用即可。首先下载被测试App的源码,这是一个简易计算器的源码,下载地址如下:

https://Robotium.googlecode.com/files/AndroidCalculator.zip。

如果上面的URL被封了,可以从本书给的百度网盘地址根据章节下载。在Eclipse左侧的Project Explore区域单击鼠标右键,在弹出的菜单中选择Import项,如图3.1所示。

找到下载的源码压缩包,导入Eclipse,如图3.2所示。

导入的项目如果有红色的错误提醒,可以选中项目,单击鼠标右键,在弹出的菜单中选择“属性”项,然后选中Android选项,在右侧选中一个Project Build Target,如图3.3所示。

通过上面的步骤就可以成功导入计算器源码了,如图3.4所示。

单击Next按钮,在新出现的窗口中选择刚才导入的计算器源码项目。图3.1图3.2

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载