精通移动App测试实战 技术 工具和案例(软件测试丛书)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-31 04:01:40

点击下载

作者:于涌 王磊 曹向志

出版社:人民邮电出版社

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

精通移动App测试实战 技术 工具和案例(软件测试丛书)

精通移动App测试实战 技术 工具和案例(软件测试丛书)试读:

前言

本书是测试专家、畅销书作者多年实战经验的总结,涵盖主流的测试工具,包括众多的测试实例,涵盖单元测试、功能测试、性能测试、UI测试、手游测试、自动化测试、测试用例管理、持续集成等移动测试中用到的所有实战技术,是一本贴近实战的移动端测试参考大全。本书主要内容如下。

书中讲解了单元测试,介绍了JUnit框架、单元测试实施、创建基于Android的测试项目和应用JUnit对Android项目进行单元测试;讲解了Android 提供的一个通用的调试工具ADB,借助这个工具,可以很好地调试开发的程序,包括ADB相关指令实例讲解、获取手机处理器信息指令实例讲解、手机模拟器相关的一些操作命令实例讲解、模拟器相关命令实例讲解、创建Android项目相关命令实例讲解、基于控制台命令行相关命令使用;讲解了Android系统自带的一个命令行工具Monkey,Monkey可以向被测试的应用程序发送伪随机的用户事件(如按键、触屏、手势等),Monkey测试是一种测试软件稳定性、健壮性的快速有效的方法。包括Monkey工具使用、Monkey测试示例、Monkey相关参数讲解、Monkey相关命令介绍、Monkey脚本执行等;结合实例讲解了由Google开发、用于Android系统自动化测试的MonkeyRunner工具,包括MonkeyRunner工具使用、MonkeyRunner测试示例、MonkeyRunner脚本手工编写、MonkeyRunner样例脚本等;书中还讲解了一款Android自动化测试框架Robotium,它主要针对Android平台的应用进行黑盒自动化测试,提供了模拟各种手势操作(如点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。用Robotium结合Android官方提供的测试框架可以达到对应用程序进行自动化测试的目的,如用Robotium实现对APK或有源码的项目实施测试、用Robotium Recorder 录制脚本、用Robotium获取控件,以及测试用例脚本的批量运行和持续集成等;讲解了UI测试工具UIAutomator,它包含了创建UI测试的各种API和执行自动化测试的引擎;UIAutomator接口丰富、易用,可以支持所有Android事件操作,非常适合做UI测试;Appium 是一个自动化测试开源工具,支持 iOS 和 Android平台上的移动原生应用、移动Web应用和混合应用测试;Appium 是一个跨平台的工具,它允许测试人员使用同样的接口基于不同的平台(iOS、Android)编写自动化测试脚本,这样大大增加了 iOS 和 Android 测试用例的复用性,还讲解了自动化测试工具Appium实战、Appium环境部署、Appium元素定位的3个利器、多种界面控件的定位方法、多种界面控件的操作方法、捕获异常和创建快照等;书中最后结合案例讲解了移动平台的性能测试,性能测试的8大分类,移动端的性能指标,移动端性能测试工具,如手机端的性能监控工具Emmagee、LoadRunner在移动端性能测试中的应用等。TraceView 是 Android 平台自带的一个很好用的性能分析工具,它可以通过图形化的方式让我们了解要跟踪的应用程序的性能;Systrace 是 Android 4.1(API:16)以后引入的一个用于做性能分析的工具,该工具可以定时收集和监测Android设备的相关信息,它显示了每个线程或者进程在给定的时间里占用CPU的情况;Emmagee是网易杭州研究院QA团队开发的一个简单易用的Android性能监测工具,主要用于监控单个手机应用的CPU、内存、流量、启动耗时、电量、电流等性能状态的变化,且用户可以自定义配置监控的采样频率及性能的实时显示,并最终生成一份性能统计文件;LoadRunner的最新版本为LoadRunner 12.0,结合目前移动市场性能测试的需要,LoadRunner 也提供了一些基于移动平台的协议和相应的工具,本书中都会有讲解。

写作过程中,作者倾尽全力,由于时间紧,加之水平有限,书中错误在所难免,诚请广大读者给予指正,以便再版时修正完善,本书答疑QQ群为191026652,本书编辑联系邮箱为zhangtao@ptpress.com.cn。

本书适合测试初学者、测试工程师、测试经理、移动开发人员和游戏开发人员学习使用,也可以作为大专院校相关专业师生和培训学校的教学用书。第1章Android系统基础内容介绍

工欲善其事必先利其器,因为本书主要是针对移动平台讲解测试方面的内容,所以对移动平台目前主流的Android系统有一个了解十分必要,下面我们就一起来了解一下这个操作系统相关的知识内容。1.1 Android系统介绍

Android一词的原意指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号。布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。1.2 Android系统架构

从图1-1中我们不难发现Android的系统架构采用了分层的架构,分为4个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。那么它们每层都是用来做什么的呢?1.应用程序层

应用层是用Java语言编写的运行在Android平台上的程序,比如一些手机游戏和基于手机端的应用等,如图1-1所示,最上面的Applications层。图1-1 Android系统架构图2.应用程序框架层

应用程序框架层是编写Google发布的核心应用时所使用的API框架,开发人员可以使用这些框架来开发自己的应用程序,这样可以简化程序开发的架构设计,如图1-1所示,第二层,即Application Framework层,其提供的主要API框架如下。

活动管理器:主要用来管理应用程序声明周期,并提供常用的导航退回功能。

窗口管理器:主要用来管理所有的窗口程序。

内容提供器:它可以让一个应用访问另一个应用的数据,或共享它们自己的数据。

视图管理器:主要用来构建应用程序,比如列表、表格、文本框及按钮等。

通知管理器:主要用来设置在状态栏中显示的提示信息。

包管理器:主要用来对Android系统内的程序进行管理。

电话管理器:主要用来对联系人及通话记录等信息进行管理。

资源管理器:主要用来提供非代码资源的访问,例如本地字符串、图形及布局文件等。

位置管理器:主要用来提供使用者的当前位置等信息,如GPRS定位。

XMPP Service:XMPP服务。3.系统运行库层

系统运行库层主要提供Android程序运行时需要的一些类库,这些类库一般是使用C/C++语言编写的。另外,该层还包含了Android运行库。如图1-1所示,第三层,系统运行库层中包含的主要库如下。

libc:C语言标准库,系统最底层的库,C语言标准库通过Linux系统来调用。

Surface Manager:主要管理多个应用程序同时执行时各个程序之间的显示与存取,并且为多个应用程序提供2D和3D图层的无缝融合。

SQLite:关系数据库。

OpenGL|ES:3D效果的支持。

Media Framework:Android系统多媒体库,该库支持多种常见格式的音频、视频的回放和录制。

WebKit:Web浏览器引擎。

SGL:2D图形引擎库。

SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持。

FreeType:位图及矢量库。

系统运行库层中还包含了一个Dalvik虚拟机,相对于桌面系统和服务器系统运行的虚拟机而言,它不需要很快的CPU计算速度和大量的内存空间。因此,它非常适合在移动终端上使用。4.系统内核层

Android的核心系统服务基于Linux 2.6内核,该内核拥有安全性、内存管理、进程管理、网络协议栈和驱动模型等。同时它也作为硬件和软件栈之间的抽象层,而Android更多的是需要一些与移动设备相关的驱动程序,比如显示驱动、USB接口驱动、蓝牙驱动、电源驱动、Wi-Fi驱动等,如图1-1所示,最下面即为该层。1.3 Android权限系统

Android操作系统其实是一个多用户的Linux操作系统,每个Android应用都使用不同的用户,运行在自己的安全沙盘里。系统为应用的所有文件设置权限,这样一来只有同一个用户的应用可以访问它们。每个应用都有自己单独的虚拟机,这样应用的代码在运行时是隔离的,即一个应用的代码不能访问或意外修改其他应用的内部数据。

每个应用都运行在单独的Linux进程中,当应用被执行时,Android都会为其启动一个Java虚拟机,因此不同的应用运行在相互隔离的环境中。Android系统采用最小权限原则确保系统的安全性。也就是说,每个应用默认只能访问满足其工作所需的功能,而不能访问其无权使用的功能。那么我们要实现移动平台的自动化测试时,比如应用Robotium,就涉及到它和被测试应用的交互,如果是上面的机制是不是意味着我们没有办法实施自动化测试呢?当然能够解决该类问题,不同的应用可以运行在相同的进程中,要实现这个功能,就必须保证应用使用相同的密钥签名、在AndroidManifest.xml文件中为这些应用分配相同的Linux用户ID。同时,如果应用需要用到照相、Wi-Fi、蓝牙、SD卡的读写操作等都需要进行授权。1.4 Android相关的一些属性简介

Activity(活动):我们在后续的图书内容阅读过程中经常会看到这个词,那么什么是活动呢,就像我们在操作一些应用软件,比如Word,它出现的每一个功能界面,比如在编辑文件、改变字体大小后,我们单击工具条的“保存”按钮;或者是一个拼车的手机应用,我们约车的时候,其也会提供一个界面,需要我们指定出发的地点、目的地、出发时间等信息,单击“确认预约”按钮。它们都是软件系统和我们用户的一个交互,这个和我们交互的界面就叫一个“活动”。

Service(后台服务):后台服务通常没有交互的图形界面,是多用于处理长时间任务,而不影响前台用户体验的组件。如我们一边看着“微信”应用的朋友圈内容,一边欣赏着手机的音乐,怡然自得的时候是否知道其有一个后台播放音乐的服务呢?

Content Provider(内容供应组件):内容供应组件用来管理应用的可共享部分的数据。例如,应用将数据存储在文件系统或者SQLite数据库中,通过内容供应组件,其他的应用也可以对这些数据进行查询。例如,我们手机自带联系人信息,其他的应用只要有相应的权限就可以通过查询内容供应组件来查询该联系人的相关信息。

Broadcast Receivers(广播接收组件):在 Android 里面有各种各样的广播,电池的使用状态、电话的接收和短信的接收等都会产生一个广播,应用程序开发者也可以监听这些广播并做出程序逻辑的处理。1.5 搭建Android开发环境

基于移动平台的自动化测试,通常都需要我们有一定的语言基础、单元测试基础和IDE(Integrated Development Environment,集成开发环境)。软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。它是集成了代码编写、编译、调试和分析等一体化的辅助开发人员开发软件的应用软件,目前应用比较广泛的IDE有VisualStudio、Eclipse等。

根据工作环境和个人喜好不同,既可以在Windows系统环境下部署Android开发环境,也可以在Linux系统环境下部署Android开发环境,关于这方面的资料在互联网上可大量查询。鉴于目前大多数测试人员应用Windows系统,这里主要以Windows 7系统环境为例,向大家讲解如何在Windows 7 64位系统环境下搭建Android开发环境。1.5.1 JDK的安装与配置

Android应用程序开发使用Java语言,所以我们首先要搭建Java程序开发运行环境。Java的开发环境称为JDK(Java Development Kit),是Sun Microsystems针对Java应用开发人员开发的产品,JDK已经成为使用最广泛的Java SDK(Software Development Kit,软件开发工具包)。

可以访问“http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html”这个地址来下载最新的JDK,如图1-2所示。图1-2 JDK下载界面信息

从图1-2中我们可以看到Oracle 提供了基于不同操作系统的JDK包,这里因为我们应用的是Windows 7 64位的操作系统,所以要下载图1-2所示的“jdk-8u45-windows-x64.exe”文件。

接下来双击“jdk-8u45-windows-x64.exe”文件,将出现图1-3所示界面。图1-3 JDK安装向导-安装程序

单击“下一步”按钮,将出现图1-4所示界面。图1-4 JDK安装向导-定制安装

单击“下一步”按钮,将出现图1-5所示界面,这里我们选择其默认的安装目录,不做改变。图1-5 JDK安装向导-目标文件夹

单击“下一步”按钮,将出现图1-6所示界面,开始安装JDK的相关文件。图1-6 JDK安装向导-进度

待相关文件安装完成后,将出现图1-7所示界面,表示JDK已安装到Windows 7操作系统,单击“关闭”按钮。图1-7 JDK安装向导-完成

接下来,开始配置Windows系统相关环境变量,鼠标右键单击桌面的“计算机”图标,在弹出的快捷菜单中选择“属性”菜单项,将弹出图1-8所示对话框,单击“环境变量”按钮。图1-8 系统属性对话框

单击弹出的“环境变量”对话框中“系统变量”下的“新建”按钮,如图1-9所示。在弹出的图1-10所示对话框中新建一个系统环境变量,其变量名为“JAVA_HOME”,因为我们将JDK安装在“C:\Program Files\Java\jdk1.8.0_45”,所以对应的变量值为“C:\Program Files\Java\jdk1.8.0_45”。图1-9 环境变量对话框图1-10 新建系统变量对话框

在系统变量列表中找到“Path”变量,在变量值最后加入运行Java应用中的一些可执行文件所在的路径“;C:\Program Files\Java\jdk1.8.0_45\bin”,如图1-11所示。图1-11 编辑Path环境变量

再新建一个名称为“CLASSPATH”的系统环境变量,变量值为“.;%JAVA_HOME%\lib\ tools.jar;%JAVA_HOME%\lib\dt.jar”,相关的详细配置信息如图1-12所示。图1-12 编辑CLASSPATH环境变量

最后,验证JDK安装、设置是否成功,在控制台命令行下输入“java -version”,若出现图1-13所示信息,则表示安装、部署成功。图1-13 命令行控制台下运行“java -version”的显示信息1.5.2 Android SDK的安装

Android SDK是Google提供的Android开发工具包,在我们开发Android 应用的时候,需要通过引入其工具包来使用Aandroid相关的API。

通过访问" http://developer.android.com/sdk/index.html”下载Android SDK,如图1-14所示。图1-14 Android SDK不同系统版本下载地址

这里,我们下载其推荐的版本,单击“installer_r24.2-windows.exe”链接进行下载。选中接下来弹出的图1-15所示界面的“I have read and agree with the above terms and conditions”复选框,单击“Download installer_r24.2-windows.exe”按钮。图1-15 “Download installer_r24.2-windows.exe”的显示信息

文件“installer_r24.2-windows.exe”下载完成后,运行该文件,弹出图1-16所示界面,单击“Next”按钮。图1-16 “Android SDK Tools Setup”对话框信息

在后续安装路径中,我们选择安装到“E:\android-sdk”,如图1-17所示。图1-17 “Android SDK Tools Setup-Choose Install Location”对话框信息

安装完成后,在弹出的图1-18所示对话框中单击“Finish”按钮,启动“Android SDK Manager”应用,如图1-19所示。图1-18 “Android SDK”安装完成后对话框

在弹出的“Android SDK Manager”应用对话框中,我们可以选择需要安装的API版本和相应的工具包相关信息,然后单击“Install 40 packages”按钮,如图1-19所示。图1-19 “Android SDK Manager”对话框信息

在弹出的图1-20所示对话框中,选择“Accept”和“Accept License”单选按钮,单击“Install”安装已选择的内容。图1-20 “Choose Packages to Install”对话框信息

在安装过程中,将显示安装进度、下载速度等相关信息,如图1-21所示。当然,我们选择的内容越多,相应的安装时间也就越长。图1-21 下载进度相关信息1.5.3 Eclipse的安装

通过访问“http://www.eclipse.org/downloads/?osType=win32”下载Eclipse,如图1-22所示。图1-22 Eclipse的Windows 版本下载地址

这里选择下载其64位的版本,单击“Windows 64 Bit”链接,将弹出图1-23所示界面。单击方框所示下载“eclipse-java-luna-SR2-win32-x86_64.zip”文件。图1-23 Eclipse的Windows 版本下载镜像相关信息“eclipse-java-luna-SR2-win32-x86_64.zip”文件下载完成以后,用WinRAR等工具打开它,将其包含的“eclipse”文件夹进行解压,如图1-24所示。这里,我们将其解压到“E:”根目录下。图1-24 “eclipse-java-luna-SR2-win32-x86_64.zip”压缩包相关信息1.5.4 ADT的安装与配置

Android ADT的全称是Android Development Tools,它是Google提供的一个Eclipse插件,用于在Eclipse中提供强大的、高度集成的Android开发环境。在Eclipse中并不能直接开发Android程序,需要安装ADT插件,下面我们就来讲解如何安装ADT插件。

首先,打开Eclipse,单击“Help>Install New Software”菜单项,显示图1-25所示对话框信息。图1-25 “Install”对话框信息

单击图1-25所示对话框右侧的“Add”按钮,在弹出的图1-26所示对话框中Name栏输入“ADT”,Location栏输入“http://dl-ssl.google.com/android/eclipse/”,单击“OK”按钮,对其进行保存。图1-26 “Add Repository”对话框信息

稍等片刻后,将出现图1-27所示界面信息,我们可以从图1-27所示的“Developer Tools”下的选项中选择要安装的选项,然后单击“Next”按钮。图1-27 “Install”对话框信息

在弹出的图1-28所示对话框中,单击“Next”按钮。图1-28 “Install-Install Details”对话框信息

在弹出的图1-29所示对话框中,单击选择“I accept the terms of the license agreements”,然后单击“Finish”按钮。图1-29 “Install-Review Licenses”对话框信息

这里需要提醒的是Android SDK和ADT相关包下载过程比较耗时,大家还需要有耐心。

接下来,开始配置ADT相关内容,启动Eclipse,单击“Windows>Preferences”菜单项,显示图1-30所示对话框。单击“Android”页,在SDK Location中输入或者单击“Browse”按钮选择“E:\android-sdk”(也就是我们Android SDK安装位置文件夹)。单击“OK”按钮对上述设置进行保存。图1-30 “Preferences”对话框信息1.5.5 集成版本的下载

上面章节我们详细讲解了Windows 7系统环境下Android开发环境的搭建过程,是不是觉得很复杂?

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载