热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《精通移动App测试实战:技术、工具和案例》一1.6创建模拟器

本节书摘来自异步社区《精通移动App测试实战:技术、工具和案例》一书中的第1章,第1.6节,作者于涌,王磊,曹向志,更多章节

本节书摘来自异步社区《精通移动App测试实战:技术、工具和案例》一书中的第1章,第1.6节,作者 于涌 , 王磊 , 曹向志,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.6 创建模拟器

在我们日常进行自动化测试脚本开发时,会经常调试测试脚本,既可以在实际的物理手机设备上进行调试,也可以通过创建一个或者多个手机设备模拟器来进行调试。

创建模拟器的方法有很多,既可以通过Eclipse的工具条按钮创建,也可以直接启动AVD Manager创建,还可以通过命令创建,这几种方式都可以。

如图1-32所示,单击Eclipse工具条的“手机”图标或者选中“Window >Android Virtual Device Manager”菜单项,也可以直接双击Android SDK目录下的“AVD Manager.exe”文件,都能启动“Android Virtual Device(AVD)Manager”应用,如图1-33所示。


68b8c01aef05eec1d2144ba9ffe6f45140744b92

单击“Create…”按钮,将弹出图1-34所示对话框。


f1480834327d9ddf8b016f313c93443eed6c7363

这里,我们要创建一个名称为“Galaxy_Nexus_4.4.2”的安卓虚拟设备,依次在对应的界面输入或者选择如下信息,如图1-35所示。


387c2e785716a3c724120539b1ae344bfeb73026

下面对图1-35所示的相关信息项进行讲解。“AVD Name”表示安卓虚拟设备名称,也就是我们的模拟器名称,这里我们给其命名为“Galaxy_Nexus_4.4.2”。大家在起名字的时候,最好使模拟器的名称有意义并和后续设备对得上,同时最好能够将模拟器应用的系统版本标示出来,这样看起来就一目了然了。“Device”表示设备,我们从其下拉列表框中选择“Galaxy Nexus (4.65'',720 x 1280:xhdpi)”,代表设备的型号是“Galaxy Nexus”,而括号内部的“(4.65'',720 x 1280:xhdpi)”,表示手机主屏幕大小为4.65英寸,主屏分辨率为720 x 1280像素。“Target”表示Android系统的版本信息和对应的API版本号,“Android 4.4.2 - API Level 19”中“-”前面的信息即为Android系统版本信息,而后面的是API的版本号。“CPU/ABI”表示应用处理器的型号信息,列表框提供了目前的两款主流处理器型号,即ARM (armeabi-v7a)和Intel Atom (x86)。“Keyboard”表示键盘,后面的复选框“hardware keyboard present”表示是否支持硬件键盘。“Skin”英文的原意是皮肤的意思,在这里表示模拟器外观和屏幕尺寸,其下拉列表框提供了一些不同屏幕分辨率,如HVGA、QVGA、WVGA等选项,这些术语都是指屏幕的分辨率。“Front Camera和Back Camera”表示前、后置摄像头,有的时候我们要模拟它。若要选择前置摄像头“Front Camera”,请在下拉框中选择“Webcam0”,其会调用电脑的摄像头;而后置摄像头则选择下拉框的任意一项即可。我们可以根据想要的效果来进行设置。“Memory Options”表示内存选项,“RAM:1024”表示其有1GB的内存,RAM(Random Access Memory,随机存取存储器,又称作“随机存储器”)是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中程序的临时数据存储媒介。Android系统是运行在Dalvik虚拟机上的,“VM Heap”就是指虚拟机最大占用内存,也就是单个应用的最大占用内存,这里其值为64,代表64MB。“Internal Storage”表示内部存储,即手机自带存储大小为200MB,内部存储就是将数据保存在设备的内部存储器中。“SD Card”表示SD卡的大小,其单位默认也是MB,当然如果我们需要选择其他存储单位,也可以从下拉列表中进行选择。单击“OK”按钮,对上述设置进行保存,则创建了一个名称为“Galaxy_Nexus_4.4.2”的模拟器,如图1-36所示。


4b058045a5d1f9059daac2cc511448a6a1cdbc85

我们可以根据自己的需要添加多个模拟器设备,关于如何使用模拟器设备这里想和大家一起来分享一下。

(1)模拟器在我们没有物理手机设备时,对调试测试脚本程序非常有帮助;

(2)模拟器的执行效率要比同配置的真实手机设备低;

(3)模拟器因为其相关的参数可配置,所以可以模拟操作系统版本的升级情况;

(4)模拟器因为其相关的参数可配置,所以建议大家执行测试脚本用例时可以在低版本的系统测试其兼容性问题;

(5)模拟器和真实的物理设备还是有差别的,所以强烈建议大家在做实际的自动化测试时还是要用真实的物理设备。

前面我们建立了一个模拟器,下面将给大家讲解,如何来启动这个模拟器。

首先,在“Android VirtualDevices”列表中,选择我们刚才建立的“Galaxy_Nexus_4.4.2”模拟器,然后单击“Start…”按钮,如图1-37所示。


2e1fa0ceeaaff3b2199fbee47282708896ec1933

在弹出的图1-38所示界面中,单击“Launch”按钮。


c9d7b99d6c4ff8be6f163b31757c53e95814a7a2

随后弹出图1-39所示对话框,我们不需要对该对话框进行任何操作,接下来耐心等待。

C:UsersADMINI~1.USEAppDataLocalTempSNAGHTML1d0d800.PNG

图1-39 “Launch Options”对话框信息

由于计算机配置的不同,模拟器启动所耗费的时间也不尽相同,通常来说其启动时间要大于两分钟,所以需要大家有一定的耐心,这也是我们提倡使用真实物理设备的一个原因,当模拟器启动后,将显示图1-40所示界面信息。


f879f30c55afd17349634e709245d8e73262b54f

从图1-40中,我们不难看出其界面和手机显示屏幕没有差异,可以通过鼠标单击“锁”图标,按住鼠标向右划动对模拟器进行解锁,解锁后的界面如图1-41所示。


dfda027d34a7d20fe9d1b71b9b73ab1c44910189

模拟器同样具备Home键、Back键、最近启用的应用程序键等,它和我们平时应用的手机设备的功能无差别,Home键能够使我们在任何时候都可以回到桌面,Back键则返回到上一个界面,最近启动的应用程序键可以展示最近启用过的应用程序列表供选择,当然在操作的过程中可能会涉及一些输入操作,这时我们笔记本上的键盘就成为了输入设备。



推荐阅读
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 本文介绍了使用C++Builder实现获取USB优盘序列号的方法,包括相关的代码和说明。通过该方法,可以获取指定盘符的USB优盘序列号,并将其存放在缓冲中。该方法可以在Windows系统中有效地获取USB优盘序列号,并且适用于C++Builder开发环境。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有