云计算 频道

基于服务器云:手机测试云快速构建方案

  【IT168技术】摘要:在移动技术快速发展的今天,移动应用程序的开发和测试技术日趋成熟,但是由于移动应用程序的自身特点,应用程序最终是要运行在各种不同厂家不同型号的智能移动终端上,因此,移动应用程序在发布前就需要在不同的移动终端上进行一定的测试。在一定规模的研发中心,数量众多的员工会分别提出不同型号的智能移动终端设备的需求,这对企业的管理和投资控制来说都面临挑战。同时,大量手机终端设备分散在开发和测试人员手中,也带来资产和IT的安全管理的问题。为了解决这些问题,并提高移动终端设备的利用率并节约成本,一些有一定规模的研发中心会搭建手机测试云来提供基于真机的云测试服务。本文介绍了一种基于服务器云的手机测试云快速搭建和部署方式,主要包括如下的内容:

  2 手机测试云背景简介

  2 云平台硬件架构介绍

  2 手机测试云的服务平台构建

  2 总结

  一、 手机测试云背景介绍

  随着移动智能手机和智能平板的普及,移动智能设备已经成为个人工作和生活中的提升效率和协作的新工具。移动应用开发者们通过移动技术为人们创造一个更加移动化、整合的甚至跨界的工作生活模式。从目前的发展趋势看,移动应用会日益扩展到人们日常的工作的生活的每一个角落,为人们的各种工作和生活场景提供无缝衔接。

  1.1手机测试中的问题和需求

  在整个行业的移动化浪潮影响下,即便是一些传统的企业,越来越多的通过移动应用来优化工作流程提升工作效率。以笔者所在的研发中心为例,各个开发团队都开始为自己的系统提供一些移动应用的支持,因此相关的测试问题也随之而来。

  研发中心有很多不同的开发团队,不同的团队对于手机的需求和测试工具的需求都不尽相同。

  缺乏测试设备,大多的测试团队总是感觉自己测试的手机和平板数量型号不够多,有时甚至有人拿自己的手机进行相关的测试。

  由于不同的团队直接物理手机设备不方便共享,因此每个团队测试的型号都非常有限,同时导致手机设备的利用率也是不够高,整体有一定的重复和浪费。

  从有需求开始到拿到需要的手机需要比较长的时间,如必要的财务审批流程和采购流程等。

  若一个团队手机较多的话,需要有专人进行管理,工作重复枯燥且浪费精力。

  由于手机设备控制在不同的员工手里,手机设备缺乏必要的IT合规性管理。

  若租赁和使用外部的平台,租赁费用会非常高,同时由于受到网络性能的影响,测试的反应速度难以满足需求。

  1.2手机测试云的优势

  如果在企业内部搭建一个手机测试云,就可以把大多数的手机放到企业的数据中心,让用户通过网络远程使用手机完成相关的测试工作。这么做可以得到如下的益处。

  手机设备可以分时共享,这样所有的用户都可以得到更多型号的手机完成自己的测试工作。

  通过共享,可以提高手机的利用率,这样整体上可以降低企业的在手机采购上面的投资。

  集中管理手机设备后,也可以集中相关的采购和管理过程,确保IT合规性的管理。

  用户可以在需要的时候申请需求的手机,降低用户在管理手机方面的工作量,提升完成本职工作的效率。

  l 提供自动测试的功能可以缩短测试周期提高测试效率。

  当然,手机测试云也是有一定的局限性的,像是重力感应,视频,拍照,GPS等方面的测试还是需要用户把手机拿在手里测试方便。因此,企业在确定是否搭建手机测试云的时候,要根据自己的应用场景来判断。

  在如上所述的背景情况下,本文介绍了如何在企业内部基于服务器云的环境,快速搭建用于支持开发和测试的手机测试云。在图1-1中,可以大概看出搭建手机测试云之后对用户行为模式的影响,以及对于整个企业和具体用户的益处。

基于服务器云的手机测试云快速构建方案
▲图1-1. 手机测试云搭建前后示意图

  二、 云平台硬件架构介绍

  为了能够实现手机测试云的快速搭建,同时具备一定的灵活性,稳定性和可用性,笔者建议在服务器云的基础之上来搭建手机测试云,就硬件需求来说,除了手机、USB Hub和WAP无线路由器,其他的需求跟常见服务器云的需求基本一致。

基于服务器云的手机测试云快速构建方案

  图2-1. 手机测试云架构示意图

  从图2-1 手机测试云架构示意图可以看出,在服务器云的基础之上,先搭建手机测试云平台,再通过手机测试云的接口层,通过可以灵活调度整个云中的资源,可以对不同用户提供不同类型的服务。这样,既保证了手机测试云中设备资源的灵活共享,又能够满足不同类型用户的多样化需求。同时,有效的分层隔离对于后期的服务扩容和优化也具有较强的灵活性。

  2.1整体硬件架构搭建

  下图2-2是笔者建议的手机测试云的整体硬件平台架构图,跟常见的服务器云类似,区别就是拓展了USB Hub,无线接入设备和需要的智能手机和平板设备。在该图中,无线接入设备用于所有智能手机和平板的WIFI接入,可以满足用户的网络访问需求;USB HUB把智能手机和平板接入到Hypervisor的硬件服务器上,在实现智能设备的USB连接的同时,还解决了设备的供电问题。

基于服务器云的手机测试云快速构建方案
▲图2-2. 手机测试云硬件平台架构图

  下表给出了搭建上述云硬件架构所需要的示意硬件清单

  表2-1:硬件配置表(建议配置,用户可以需要灵活调整)

基于服务器云的手机测试云快速构建方案

  2.2移动智能手机设备跟服务器云的物理连接

  在上图中,所有的移动智能手机设备都是通过USB Hub连接到xServer的USB端口,其他的物理连接跟常规的服务器云搭建是一样的,下面重点介绍跟手机的相关连接部分。

  在图2-2中,手机可以通过USB Hub连接到服务器云的Hypervisor的host上面,通过在Hypervisor上的配置,可以把相关的USB端口挂接到某个具体的虚机上,这样就可以实现特定的虚机跟智能手机设备的USB连接。同时,由于在整体架构中配置了无线接入设备,虚机还可以通过网络访问到该智能手机设备。这样,手机测试云的服务提供方,可以在虚机上面部署自己的服务,其他相关的后台服务也可以部署在该服务器云中。

基于服务器云的手机测试云快速构建方案
▲图2-3. 智能手机设备跟服务器云的连接示意图

  2.3移动测试服务跟智能手机连接图

  在实现了智能手机跟服务器云的连接后,如下图2-4所示,通过在Hypervisor上面的USB端口切换,可以实现把连接某特定移动智能手机的USB端口加载到不同的虚机上面,通过虚机内部的驱动识别后,虚机就可以直接通过USB端口跟智能手机设备实现连接。当然,根据该手机的WIFI网络IP地址,该虚机也可以通过网络跟移动智能手机实现连接。这样,通过网络和USB的双重连接,手机测试云的服务提供者,便可以在虚机里面部署需要的应用,通过USB和网络连接智能手机,给用户提供相关的服务。

基于服务器云的手机测试云快速构建方案
▲图2-4. 移动测试服务跟智能手机连接图

  通过上述的介绍可以发现,在服务器云的基础上,手机测试云的硬件平台搭建事实是非常简单的。在实现了智能手机设备跟虚机以及虚机里面的应用成功连接之后,手机测试云平台部署就可以基于该服务器云中的虚机来实现。

  三、 手机测试云的服务平台构建

  本节会讨论手机测试云的服务平台部署,为了便于理解,将先介绍部署方式,然后再介绍需要部署的相关功能节点和功能介绍。

  3.1手机测试云平台的部署方式

  考虑到中大型企业的研发中心有很多种不同类型的开发测试团队,不同的团队的开发和测试需求和方法也不尽相同,因此,为了实现在后期不同服务的灵活扩展,在部署手机测试云平台时,笔者建议采用如图3-1所示的部署方式实现。

基于服务器云的手机测试云快速构建方案

  图3-1. 手机测试云平台部署方式示意图

  在图3-1中,在部署时各层功能如下

  智能设备层:该层就是USB连接的物理层,在确保USB Hub接口的在Hypervisor里面被识别后,关注一下USB Hub的接口命名规则即可,这个便于后期的智能手机设备管理。

  连接控制层:该层包括两部分,网络连接控制比较简单,可以在WAP里面配置采用MAC地址IP绑定的方式,这样就可以通过IP识别别到具体的手机;对于USB连接控制,则需要在Hypervisor里面开发一个小的Script应用(或者通过API也可以),根据每个手机对应的USB port名称,在需要的时候把具体的USB设备绑定到具体的虚机,或者把把存在的绑定关系解除,这样就可以实现通过软件控制手机在不同的虚机之间切换。

  虚机服务层:这一层是整个手机测试云平台部署的重点,主要应该包括两种类型的节点

  1. 整个手机测试云的底层管理和控制,尤其是针对智能手机设备的管理和控制节点,应该部署在相应Hypervisor的虚拟里面。

  2. 提供手机测试云服务的后台逻辑业务节点,尤其是需要跟手机保持直接USB连接的节点。若需要提供多住类型的服务,则如图3-1中所示,多个服务之间不存在任何冲突,可以都部署在该层的虚机上。在有用户申请用到手机的时候,通过连接控制层把用户请求的手机挂接到该服务虚机即可以提供服务。

  可以简单的总价一下该虚机服务层,就是所有需要检测、管理、控制和使用智能手机的应用,都需要部署在这一层。

  用户服务层:该层是对用户提供服务的一层,比如服务的portal entry,用户管理,数据库,消息服务等等,这些节点是为了满足最终服务呈现和管理的功能,跟智能手机设备没有直接的连接关系。在部署的时候,可以根据IT部门的规划,部署在专门的服务器中,当然,也可以全部都部署在手机测试云所依赖的服务器云中。

  采用如上所述的分层部署方式,一方面可以保证在部署调测时不同节点的灵活性,也包括整个手机测试云后期业务扩展的灵活性,另一方面,这样可以有效的隔离不同类型的服务,不同层节点之间的依赖,降低相互干扰,增强整体系统的健壮性。

  3.2手机测试云平台常见功能模块

  手机测试云是构建在服务器云之上的,也是一种基于云的服务,因此,其基本的功能模块跟服务器云的也会比较类似。图3-2给出了一些手机测试云的基本组件,下面给出了相关组件的基本功能介绍。

基于服务器云的手机测试云快速构建方案

  图3-2. 手机测试云平台功能模块示意图

  1.底层管理部分

  这部分主要是用于底层的资源管理

  智能手机设备识别:该模块主要是能够智能识别出USB端口连接的手机相关信息,识别出相关的型号、配置、序号等等,并能够在初始化之后,在服务运营过程汇总,手机被重新插拔后,能够自动识别,并在后台更新相关的数据。

  智能手机设备管理:该模块主要是提供跟手机相关的管理功能,如把手机跟虚机建立连接或者断开连接,上传下载文件,安装应用等,测试启动和环境清理等。

  智能手机服务管理:该模块主要是面向上层的不同手机测试云的服务模块,会根据不同模块的需求,给出当前空闲的手机列表,并根据需要给实现手机和虚机的连接和断开。同时维护所有手机的使用状态和不同服务模块对手机的使用情况。

  服务器云资源管理:该模块主要是用于底层服务器云的资源调度和管理,比如,虚机的建立删除,配置更新,开机关机等等。

  服务器云的服务管理:该模块主要是面向上层不同手机测试云的服务模块,根据各服务模块的需求,给出底册相关的资源调度和管理命令。同时该模块会管理各个服务和虚拟的关系及其状态。

  2.中间接口相关部分

  这部分只要是实现相关模块的上连下同。

  资源管理接口:该模块封装了所有底层的资源和设备管理和调度相关的管理命令,对外以API接口的方式提供服务。主要包括虚拟相关的API接口,智能手机相关的API接口,服务相关的API接口。

  消息管理模块:该模块为常见通用模块,用于连接整个手机测试云的相关模块,实现数据和命令的流转。

  3.手机测试云服务相关部分

  这部分主要是有针对性的提供不同类型的手机测试云服务。

  服务节点:这些服务通过跟手机有连接的虚机来提供,可以根据企业里面研发中心的特点和需求,有针对性的来提供。

  服务Portal:针对不同的服务节点,可以提供单独或者集成的用户服务portal入口。

  下面是一些常见手机测试云的服务

  表3-1:常见服务类型

基于服务器云的手机测试云快速构建方案

  4.用户管理相关部分

  这部分主要是用于用户的管理,跟普通的服务器云基本一致。

  用户管理:用于管理用户的相关信息,及其所属的组织结构。相关信息会用于后期的计费统计。

  权限管理:用于管理用户的相关权限,配置用户可以访问哪些手机测试云的服务,以及,能够访问哪些智能手机。

  访问管理:用于用户访问的验证和日志管理等。

  5.后台管理相关部分

  这部分主要是手机测试云的后台管理部分,跟普通的服务器云基本一致。

  计量计费管理:该模块主要是记录不同服务不同用户所占用的服务器云的资源和智能手机资源,并根据相关的价格策略生成计费报告。

  容量性能管理:该模块主要用于管理系统的容量和性能管理,确保系统正常运行,同时也便于管理员的维护管理。

  数据管理:该模块是数据库节点,用户存储管理整个系统的相关数据。

  系统检测:该模块主要用于整体系统的状态和异常检测,并能在出现异常时在管理界面给出警告信息。

  上述的手机测试云相关功能模块仅仅是笔者的建议,在具体的手机测试云搭建过程中,可以根据实际情况和管理需求灵活定制。

  四、总结

  本文给出了一种基于虚拟化技术,在服务器云上快速搭建手机测试云的办法。通过这种方法,在已经具备私有服务器云的企业里面,可以通过很少的投资就可以完成手机测试云的硬件平台搭建。通过分层的部署方式和合理选择相关的模块,可以根据需要逐步完善和丰富手机测试云的服务内容。

  从目前的发展趋势看,以后移动应用会更加灵活和便捷,渗透到人们的工作和生活的各种场景,人们对各种移动应用的依赖会越来越重,当然对移动应用的要求也越来越高。开发部署合适的手机测试云服务,除了能够有效的降低企业手机采购成本,同时基于自动化的测试平台,还可以提升开放测试的效率,扩大产品的测试范围,提升产品的质量,并能够缩短相关移动应用的发布周期。

4
相关文章