基于B/S的终端应用自动拨测系统设计和实现
2014-11-17严关武黎宏剑黄广文
严关武,黎宏剑,黄广文
(中国移动通信集团广东有限公司中山分公司,广东 中山 528403)
1 引言
随着科技、通信网络、移动互联网的快速发展,移动终端和应用的数量呈现爆炸式增长。移动终端品牌、机型繁多,同一应用在不同移动终端上可能存在不同的运行状态。为保证应用在移动终端上功能的正确性、性能的稳定性以及良好的用户体验,终端厂商、移动应用开发商和移动运营商需对移动终端上的应用进行大量拨测。目前的拨测以人工方式为主,拨测人员通过装载有SIM卡的移动终端访问应用并记录拨测结果。庞大的拨测量、众多拨测人员的参与,使得人工拨测方式不仅耗费人力和拨测资源,而且存在拨测资源使用率不高、易丢失、拨测效率低、拨测结果统计不准确等问题。
为改变该弊端,针对人工拨测的不足,本文提出基于B/S的终端应用自动拨测系统,通过对拨测终端、拨测SIM卡等拨测资源的统一管理和调度,提高了拨测资源的利用效率;同时通过对拨测任务的自动化执行,自动输出拨测结果并形成拨测指标报表,提高拨测工作的质量和效率,有效地节省了时间和人力,最终节约了拨测成本。
2 系统总体设计
2.1 系统技术架构
本系统采用B/S架构,用户无需接触真实的拨测资源,所有拨测资源在后台统一集中管理、调配,用户只需利用内部网络,通过前端浏览器访问系统。通过FLASH和图像技术,用户在前端虚拟移动设备的操作映射到后端真实移动终端的按键和触屏,进行拨测脚本编辑、指标设定和任务执行。系统技术架构如图1所示。
系统技术架构包括硬件层、通信层、业务层、采集层和应用层。
图1 系统技术架构
硬件层:包括SIM卡池、终端设备池,负责实现终端应用拨测的响应、执行。
通信层:通过模拟映射实现屏幕、按键等操作的传输,采用协议驱动实现应用拨测。
业务层:实现各类终端应用、SP业务的执行拨测。
采集层:负责进行拨测数据的采集分析、统计。
应用层:负责实现用户界面的接入呈现、业务控制、任务制定等人机交互接口以及其他系统接口。
2.2 系统网络拓扑
系统网络拓扑如图2所示:
图2 系统网络拓扑
用户通过PC上的浏览器基于局域网访问后台服务器,系统程序部署在应用服务器。SIM卡池模块通过SIM卡槽延长线与终端电路板相连,负责SIM卡的集中管理,供终端池模块随机调用。终端池和服务器模块通过TCP/IP协议进行组网连接,负责拨测终端的集中管理和分配。终端池模块与SIM卡池模块之间支持灵活调度和配置。
2.3 系统功能结构
系统包括基础管理、脚本管理、任务管理、统计报表和系统管理五大模块,具体如图3所示。
(1)基础管理模块
包括参数设置、设备管理、SIM卡管理、SIM卡绑定、消息模板等子功能。参数设置提供对终端FLASH图片中区域标识的按键设置功能。设备管理提供设置终端池中手机终端基础信息的功能,包括手机终端ID、设备名称、OS版本、IP地址、位置、占用情况等信息。SIM卡管理提供编辑SIM卡池中的SIM卡信息的功能,包括卡池编号、号码、品牌、套餐描述等信息。SIM卡绑定提供设置SIM卡与手机终端绑定状态的功能。消息模板包括告警模板和通知模板,设置自动拨测任务正常执行或者异常执行时的信息通知格式和内容。
(2)脚本管理模块
包括新建脚本和脚本查询2个子功能。在新建脚本功能中,拨测人员选择终端设备后,浏览器会呈现一个FLASH模拟器画面,拨测人员可以直接通过鼠标在FLASH模拟器上进行真实的操作,包括按键、屏幕点击、长按、拖动、开关机等动作,可以直接在浏览器界面上进行在线脚本编辑、调试。脚本编辑不限制特定的业务、流程和指标,拨测人员只需根据测试需求进行脚本编辑,并提供常用业务的脚本模板。脚本查询提供对已新建脚本的多条件组合查询,并可以对某一脚本进行复制和运行。
图3 系统功能结构
(3)任务管理模块
包括新建任务和任务查询2个子功能。在新建任务功能中,拨测任务设定任务的名称和描述,选择脚本后,可以设定任务周期性执行或者某个时间点执行,可以关联某一号码或某一品牌,并设定执行次数。任务查询提供对所有状态任务的多条件查询。多任务同时执行时,按照任务的优先级、占用资源情况进行排序,优先级高的任务先执行。任务执行完后,释放所占用的资源。对于拨测失败的任务,提供重新执行机制。
(4)统计报表模块
包括资源使用统计、拨测结果统计、业务量统计等子功能。资源使用统计提供多维度的拨测终端和SIM卡使用的统计报表。拨测结果统计提供各拨测任务执行结果、各项指标情况的统计报表。业务量统计提供系统访问、脚本创建、任务执行等指标的统计报表。
(5)系统管理模块
包括模块管理、角色管理、用户管理、日志管理等子功能。模块管理提供系统功能菜单的编辑并和角色关联;角色管理设置系统的角色信息和用户、设备关联;用户管理设置系统的使用用户;日志管理提供系统详细的访问和操作记录信息。
3 系统关键技术设计
3.1 组网连接设计
所有终端采用专属的硬件连接板进行连接、组网。硬件连接板一端通过电信号连接手机,与手机运行的嵌入式操作系统无关,可以连接和控制任何类型的移动终端;硬件连接板另一端采用了专用的高速LAN接口,并提供标准的HTTP软件接口协议,可以被任何第三方软件调用和控制。每个硬件连接板需要占用子网内的一个独立的IP地址。
硬件连接板的功能指标如下:
◆采用非介入式方法,对手机软件运行环境没有影响;
◆提供标准的HTTP协议接口,可与任意第三方软件集成;
◆可以模拟对手机按键的短按、长按操作;
◆可以模拟对手机触屏的Tap、Tap and Hold、Drag和Draw操作;
◆可以模拟对手机电池的插入和拔出操作;
◆可以模拟对手机的开机和关机操作;
◆可以模拟对手机USB电缆的插入和拔出操作;
◆可以抓取手机的屏幕显示,支持BMP或压缩格式;
◆可以抓取手机输出的音频和视频信号,支持用户定义的格式。
3.2 自动拨测设计
将所有终端资源进行集中管理,基于TCP/IP的设计,用户通过浏览器随时进行远程接入,申请任意终端的控制,按任意预定流程将待测试的业务转换成测试脚本,利用图像及文字识别技术,实现终端屏幕自动分析及验证,完成整个测试流程的自动拨测、识别和过程记录,实现在浏览器中即可完成真实终端的所有控制。
终端池的自动拨测基于以下原理进行设计:
◆通过主程序自动控制移动终端的键盘、旋钮和触摸屏,以模拟双手操作;
◆使用智能OCR及图片识别技术来模拟双眼进行内容识别和逻辑判断;
◆模拟最终用户使用手机的真实操作方式,获取最终用户使用手机的真实体验;
◆程序设计独立于待测试业务和指标,业务流程由脚本定义,实现所有业务和指标的自定义测试;
◆整个自动测试过程都是基于UI(用户接口)/MMI(人机接口)完成。
3.3 脚本图形化编辑设计
脚本图形化编辑通过FLASH技术实现。脚本编辑模块是基于RIA理念、采用Flex技术、依托FlashPlayer的“桌面”级网络应用程序。程序整体采用板块独立型框架结构,按视图区域划分成多个独立板块,板块间的信息交换采用字符命令附加参数的形式,由板块管理器统一调度,大大降低了板块间的耦合度,可任意拆除、新增板块。同时采用了分层式结构对显示对象进行分层,主要显示对象位于里层,提示性对象位于外层,主次分明,方便对各层的显示对象进行管理。
为了使结构灵活化,降低各功能部分的耦合度,脚本编辑模块根据功能的不同,划分为资源列表、视图管理、用例编辑、属性面板、设备模块、日志记录等6个子模块,每个子模块继承IBlock接口,子模块间的通信方式为字符串消息附带参数的形式由BlockManager统一调度。
脚本编辑模块对手机的屏幕、按键、外壳进行了封装,再将这3部分进行“完全对象”封装构成一个完整而独立的手机模型构造器,构造器动态提取模型数据并建立模型,模型对象的完整性提高了对模型的可控程度。用例编辑以树形结构展现,脚本录制时激活操作延时计时器,根据实际操作的间隔自动填充每个步骤之间的延时时间,同时自动识别用户对手机模型的操作行为。
3.4 通信网关设计
系统提供对手机单击、长按、拖到、触屏等操作的统一控制接口,采用C语言封装。具体流程为:
(1)通信网关对外接口接收上层调用手机控制请求,发送给身份验证模块,并记录日志;
(2)身份验证模块对请求进行身份合法性验证后发送给数据验证模块;
(3)数据验证模块对请求进行数据有效性验证,有效请求发送给协议适配模块,无效请求反馈给通信网关对外接口进行响应;
(4)协议适配模块调用消息路由将请求发送给对应终端进行处理并响应结果。
3.5 任务自动执行设计
采用进程池模式,通过后台守护端口,实时接收任务,完成任务调度和任务执行。具体流程为:
(1)守护端口监听,等待任务命令,命令到达时,分摊任务到任务执行进程;
(2)任务执行进程对任务进行解析,调用相关脚本、终端和SIM卡,如资源空闲则执行任务输出结果,否则进入队列等待,等资源空闲时再执行。
3.6 非功能性设计
(1)系统易用性设计
系统采用B/S结构,通过IE浏览器,用户可以方便地进行系统的相关操作,符合用户日常互联网操作习惯,同时采用Flex技术,实现手机控制。
(2)系统性能设计
核心通信程序采用C代码实现,通过MemCache解决资源锁定和占用;数据存储采用结构文件方式,提高查询、读写效率;数据库SQL语句拼写采取优化措施,提高执行效率。
(3)安全性设计
系统安全性设计主要从以下3个层次进行设计:
◆系统级安全。支持IP端的访问限制,登录时间段的限制,连接数的限制,特定时间段内登录次数的限制。
◆平台资源访问控制安全。对程序资源的访问进行安全控制,在客户端上,为用户提供和其权限相关的用户界面,仅出现和其权限相符的菜单、操作按钮;在服务端则对URL程序资源和业务服务类方法的调用进行访问控制。
◆数据域安全。对不同权限的用户,对所能访问操作的数据域进行功能限制,所有交互数据和报表数据都采用加密算法进行加密,确保数据安全。
4 系统实现
根据上文的设计,对基于B/S的终端应用自动拨测系统进行开发实现。操作系统使用Freebsd8.0-RELEASE,数据库使用MySQL5.5.9,WEB服务器软件使用apache-2.2.17,WEB开发技术采用php-5.2.17+memcache-1.4.5+Flex,客户端使用IE8.0或Firefox3.0及以上的浏览器。SIM卡池设计成16卡槽、4通道,可以同时与4台终端进行通信。终端池包括基于Android的三星I9008、基于iOS的iPhone4、基于Windows Phone的诺基亚920T和基于Symbian的诺基亚E62等4款手机。WEB系统包括3个主要模块,分别为WEB服务模块、数据服务模块和通信服务模块,根据实际需求,部署在同一个服务器。
下面给出系统实现的部分截图。
(1)SIM卡池
SIM卡池示意图如图4所示。
(2)脚本编辑页面
脚本编辑页面示意图如图5所示。
图4 SIM卡池
图5 脚本编辑页面
图6 拨测指标统计报表
(3)拨测指标统计报表
拨测指标统计报表示意图如图6所示。
5 结束语
基于B/S的终端应用自动拨测系统弥补了现有人工拨测的不足,自动拨测比手工拨测可靠性更高,自动拨测可在任何时间内进行,提高了拨测效率、降低了拨测成本。
[1]李洪,渠凯,邱墨楠.移动业务拨测实现方式探讨[J].电信技术, 2009(12): 41-43.
[2]曾新民.增值业务拨测系统的研究与实现[J].广东通信技术, 2008,28(6): 47-49.
[3]黄昭文.数据业务拨测网络开发与实施[J].广东通信技术, 2006,26(2): 51-56.
[4]王其敏.移动业务拨测报表系统的设计与实现[D].北京: 北京邮电大学, 2010.
[5]李雪生.基于EJB与Hibernate的业务拨测系统的研究与实现[D].武汉: 武汉理工大学, 2009.