一种跨操作系统实现计算机监控测试手机客户端的方法和系统
技术领域
本发明涉及手机客户端监控和测试领域,更具体地说,涉及一种跨操作系统实现计算机监控测试手机客户端的方法和系统。
背景技术
使用计算机实现对手机客户端的监控和测试可以及时发现手机客户端平台运营的问题,采用业务拨测方式是一种行之有效的监控测试手段。但是手机客户端应用的手机操作系统较多,例如IOS,Android,Windows等,底层开发平台与探测机器操作系统不一致,给监控和测试工作带来很大困难。目前的技术解决方案有如下两种方式:
1、针对不同的手机操作系统,通过对手机客户端用户界面(UI)页面元素的获取,根据提前录制的脚本,对元素进行操作,最后对结果页面进行关键字匹配或者图像比对的形式进行验证;
2、利用机械装置,比如机械臂,基于坐标的方式,通过改变坐标来控制机械臂的移动来模拟真实用户的点击,拖拽,划屏等操作,再配合以高清摄像头对手机客户端的显示界面进行拍照,与事先录制的脚本中的图片进行图像比对,获得手机客户端当前的运行状态来实现手机客户端的监控测试。
对于上述第一种基于获取手机页面元素的软件控制方法,其主要缺陷在于:
1)涉及的操作版本和操作系统众多,需要分别对手机操作系统开发不同的监控测试系统,需要攻克的技术难题较多;
2)手机应用程序页面元素的加载与网页不一样,很多时候无法顺利获取一个手机应用程序的页面元素;
3)版本过多以及基于页面元素的方式脚本维护量较大,大大增加系统运维成本。
对于上述第二种基于机械装置的物理控制方法,其主要缺陷在于:
1)脚本维护量较大,并且要求坐标精确,脚本制作复杂;
2)局限性大,需要定制专门的机械臂装置,需要再特定场合下进行使用;且基于物理方式运行时间较长;结果的判定取决于摄像头的画面截取质量等限制;
3)增加设备成本,由于设备是定制的,摄像头质量较高,大大增加成本。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述脚本开发与维护量大,需要添加额外的设备导致成本提高等缺陷,提供一种跨操作系统实现计算机监控测试手机客户端的方法和系统。
本发明解决其技术问题所采用的技术方案是:提供一种跨操作系统实现计算机监控测试手机客户端的方法,所述手机客户端上安装有底层转换模块,所述方法包括以下步骤:
S1、所述计算机向所述手机客户端发送第一监控测试指令,所述第一监控测试指令基于计算机操作系统底层语言;
S2、所述底层转换模块将所述第一监控测试指令转换为第二监控测试指令,所述第二监控测试指令基于手机操作系统底层语言;
S3、所述手机客户端接收并执行所述第二监控测试指令后,将手机操作系统的各接口进行映射生成第一监控测试报告,并向所述计算机发送所述第一监控测试报告,所述第一监控测试报告基于所述手机操作系统底层语言;
S4、所述底层转换模块将所述第一监控测试报告转换为第二监控测试报告,所述第二监控测试报告基于所述计算机操作系统底层语言;
S5、所述计算机接收所述第二监控测试报告。
优选地,所述底层转换模块是基于Java本地调用的底层转换模块。
优选地,计算机操作系统是基于Java语言开发的,手机操作系统是基于C/C++语言开发的。
优选地,步骤S2进一步包括:
S21、所述底层转换模块接收所述第一监控测试指令;
S22、识别所述计算机操作系统,并基于所述计算机操作系统调用相应的动态链接库文件;
S23、访问所述动态链接库文件,基于所述第一监控测试指令及所述动态链接库文件生成所述第二监控测试指令,所述第二监控测试指令基于所述手机操作系统底层语言。
优选地,相应的所述计算机操作系统为Windows时,所述动态链接库文件是.dll文件,相应的所述计算机操作系统为Linux时,所述动态链接库文件是.so文件。
优选地,步骤S4进一步包括:
S41、所述底层转换模块接收所述第一监控测试报告;
S42、访问所述动态链接库文件,基于所述第一监控测试报告及所述动态链接库文件生成所述第二监控测试报告,所述第二监控测试报告基于所述手机操作系统底层语言。
优选地,在步骤S5之后还包括以下步骤:
S6、所述计算机分析所述第二监控测试报告,当所述第二监控测试报告是非法结果时,向用户进行告警,并记录监控测试动作的相关日志信息。
本发明还提供一种跨操作系统实现计算机监控测试手机客户端的系统,所述系统包括:
手机操作系统映射模块,用于将手机操作系统的各接口进行映射;
底层转换模块,用于将所述第一监控测试指令转换为所述第二监控测试指令,以及将所述第一监控测试报告转换为所述第二监控测试报告。
优选地,所述底层转换模块包括:
动态链接库,用于调用所述手机操作系统的底层库生成所述动态链接库文件;
底层转化接口,用于基于所述动态链接库文件与所述第一监控测试指令生成所述第二监控测试指令,以及基于所述动态库链接文件与所述第一监控测试报告生成所述第二监控测试报告。
优选地,所述系统还包括:
非法监控测试报告处理模块,用于当所述第二监控测试报告是非法结果时,向用户进行告警,并记录监控测试动作的相关日志信息。
实施本发明的跨操作系统实现计算机监控测试手机客户端的方法和系统,具有以下有益效果:基于不同计算机操作系统的计算机通过手机客户端内置的底层转换模块,模拟手机客户端上真实用户进行的操作,实现对基于不同手机操作系统的手机客户端的统一监控测试功能,使其脚本配置工作量得以减小,同时回避了逐一编写特定计算机操作系统与手机操作系统之间的监控测试脚本的繁琐过程,降低了监控测试难度,其脚本编写与维护简单,极大节省了人工维护的成本,并且无需关注UI的渲染过程或添加额外的硬件设备作支撑,在不增加设备成本的前提下提高了监控测试的精确度与可靠性。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的跨操作系统实现计算机监控测试手机客户端第一实施例的系统图;
图2是本发明的跨操作系统实现计算机监控测试手机客户端的底层转换模块的功能框图;
图3是本发明的跨操作系统实现计算机监控测试手机客户端第一实施例的方法流程图;
图4是本发明的跨操作系统实现计算机监控测试手机客户端第二实施例的系统图;
图5是本发明的跨操作系统实现计算机监控测试手机客户端第二实施例的方法流程图;
图6是本发明的跨操作系统实现计算机监控测试手机客户端第三实施例的系统图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
图1是本发明的跨操作系统实现计算机监控测试手机客户端第一实施例的系统图,如图1所示,本发明的系统包括作为监控测试指令发送端和监控测试报告接收端的计算机1,以及作为监控测试指令接收端和监控测试报告发送端的手机客户端2,在手机客户端2上安装有用于将第一监控测试指令转换为第二监控测试指令,以及将第一监控测试报告转换为第二监控测试报告的底层转换模块21,和用于将手机操作系统的各接口进行映射的手机操作系统映射模块22。计算机1及手机客户端2之间的连接关系,可采用无线连接或有线连接的现有通讯协议标准及设备。在本实施例中,上述计算机1包括但不限于由一台或多台由个人电脑(PC)、服务器及数据库所组成的控制部分,用于实现对移动终端的控制与交互过程,业务指令的下发过程,以及对接口的传参调用功能。上述控制部分的操作系统选择范围涵盖Windows、Linux等当前主流计算机操作系统,或者其他由Java语言开发的操作程序。由于上述操作系统及程序的底层库部分皆采用Java语言编写,该语言所具有的的跨平台性使得程序可以在编译后不用经过任何更改,就能在任何硬件设备条件下运行。用户在计算机的人机界面上下达控制指令后,该指令将以Java格式向手机客户端发送,且其从底层库接口所接收发自手机客户端的反馈信息亦是Java格式的,计算机1将存储该反馈信息的结果内容并作进一步的验证分析。
对于手机客户端2,其采用的手机客户端操作系统包括iOS、Android、Windows Phone、Symbian以及BlackBerry OS等主流系统。目前,上述手机操作系统的现有底层开发语言主要采用基于C/C++代码编写而成,因此,手机上所安装的手机操作系统映射模块22,其主要功能是将各不同版本手机操作系统的相应指令,根据内置的转换规则,统一输出为C/C++格式的数据报文,并通过底层转换模块21的进一步数据格式转换,最终发送至计算机1。
图2是本发明的跨操作系统实现计算机监控测试手机客户端的底层转换模块的功能框图,如图2所示,底层转换模块21包括动态链接库211以及底层转化接口212。为了适应底层开发语言在不同操作系统以及上层展现形式上的应用,手机操作系统的底层接口层会形成多个动态链接文件,所述动态链接文件的格式适用于不同计算机所使用的用于控制手机客户端的计算机操作系统。例如,针对Linux操作系统,底层接口层所形成的动态链接文件为.dll格式;针对Windows操作系统,该动态链接文件为.so格式。上述不同格式的动态链接文件组成了动态链接库211。底层转换模块在探测到计算机操作系统的基础上,可以自动在动态链接库211中调用与计算机操作系统相适配的动态链接文件作为应用程序编程接口(API),计算机端的用户只需传入一个特定参数,即可调用相应的业务接口,从而实现计算机与手机客户端的通讯互联。
对于底层转化模块21,其本身是采用Java本地调用(JNI)技术所实现的。JNI是一种使得运行于Java虚拟机(JVM)上Java代码可以调用本地应用程序或被本地应用程序调用的程序框架,采用C/C++及其他汇编库语言写成。具体地说,其首要目的是在特定的平台上采用Java通过JNI方法调用本地文件,而JNI方法是以动态库文件的形式存放的,通过调用本地的动态库文件,使Java可以实现和本地机器的信息对接,调用系统各接口的方法。在本实施例中,底层转化接口212采用JNI方法,通过调用动态链接库211中的与探测计算机操作系统相适配的动态库文件为API,实现计算机控制端的Java格式的底层库数据与手机客户端2的C/C++格式的底层库数据的交互。
现有解决跨操作系统实现手机客户端监控的技术方案,如基于获取手机页面元素的软件控制方法,不仅需要将UI元素的转换脚本预存于手机操作系统的业务应用层,还必须于该手机操作系统的表现层设定一个UI元素提取单元;而对于基于机械臂的物理控制方法,除了在业务应用层置入虚拟坐标程序,其附加的机械臂装置与高解析度摄像头亦是必不可少的硬件组成。相比之下,本发明所采用的技术方案,只需在操作系统的业务应用层植入一底层转化模块21,而无需关注UI的渲染过程,提高了客户端监控的成功率,配合其他监控手段可以获得良好的监控效果;而且无需额外的硬件设备做支撑,极大地降低了监控成本。本发明的底层转化模块21通过将数据下发至基础层,通过一组包括接口管理、传输管理、加密解密、压缩解缩的数据处理,实现对该手机操作系统应用支撑平台上的系列业务的访问,包括业务功能域、运营管理域以及业务集成域,所述业务集成域具体包括接口管理,接口安全以及数据转换等操作,并最终将转译为底层语言的数据包通过各接口系统传输至外部计算机控制系统,或者存储于内置数据库中,作为进一步数据分析的依据。
图3是本发明的跨操作系统实现计算机监控测试手机客户端第一实施例的方法流程图。在本实施例中,本发明的发明方法包括以下步骤:
S1、所述计算机向所述手机客户端发送第一监控测试指令,所述第一监控测试指令基于计算机操作系统底层语言;
S2、所述底层转换模块将所述第一监控测试指令转换为第二监控测试指令,所述第二监控测试指令基于手机操作系统底层语言;
S3、所述手机客户端接收并执行所述第二监控测试指令后,将手机操作系统的各接口进行映射生成第一监控测试报告,并向所述计算机发送所述第一监控测试报告,所述第一监控测试报告基于所述手机操作系统底层语言;
S4、所述底层转换模块将所述第一监控测试报告转换为第二监控测试报告,所述第二监控测试报告基于所述计算机操作系统底层语言;
S5、所述计算机接收所述第二监控测试报告。
在步骤S1中,用户在计算机1的计算机操作系统上下达第一监控测试指令,该第一监控测试指令既可以通过人机交互界面输入,也可以是从计算机1的本地数据库中或外部互联网数据库中调用。该第一监控测试指令基于计算机操作系统的底层语言,为Java格式的数据流,并通过计算机1的接口以有线或无线的方式发送至手机客户端2。
在步骤S2中,手机2中的底层转换模块21将接收到Java格式的第一监控测试指令数据包进行分析,根据该第一监控测试指令的数据标签或传入参数自动识别发出信息的计算机1所使用的计算机操作系统,并相应调用动态链接库211中与计算机操作系统所适配的动态链接文件,如对于Windows操作系统调用.dll文件,而对于Linux操作系统则调用.so文件,利用Java语言的反射(reflection)机制,将Java对象转换为C/C++程序,即第二监控测试指令。
在步骤S3中,手机客户端2接收并执行所述第二监控测试指令后,通过参数设置,将不同手机操作系统的各个接口进行映射,从而可以直接在上层通过参数设置进行各不同手机操作系统版本的监控和测试工作,并生成基于手机操作系统的底层语言,即C/C++语言的第一监控测试报告,发送向计算机1。
在步骤S4中,手机客户端2中的底层转换模块21将基于C/C++语言的第一监控测试报告转换为基于Java语言的第二监控测试报告,其转换方法类似于步骤S2,即采用Java语言的反射机制,把从C/C++程序中获得的数据自动的转换成Java对象。
在步骤S5中,计算机1接收上述基于Java语言的第二监控测试报告,根据反馈数据进行进一步的数据分析及处理。
图4是本发明的跨操作系统实现计算机监控测试手机客户端第二实施例的系统图。本实施例与本发明的第一实施例的区别在于,计算机1中添加了一个非法监控测试报告处理模块10,用于在业务调用失败,返回的结果不是合法结果时,启动自动告警程序并进行相关日志信息的记录工作。
图5是本发明的跨操作系统实现计算机监控测试手机客户端第二实施例的方法流程图。在本实施例中,本发明的发明方法包括以下步骤:
S1、所述计算机向所述手机客户端发送第一监控测试指令,所述第一监控测试指令基于计算机操作系统底层语言;
S2、所述底层转换模块将所述第一监控测试指令转换为第二监控测试指令,所述第二监控测试指令基于手机操作系统底层语言;
S3、所述手机客户端接收并执行所述第二监控测试指令后,将手机操作系统的各接口进行映射生成第一监控测试报告,并向所述计算机发送所述第一监控测试报告,所述第一监控测试报告基于所述手机操作系统底层语言;
S4、所述底层转换模块将所述第一监控测试报告转换为第二监控测试报告,所述第二监控测试报告基于所述计算机操作系统底层语言;
S5、所述计算机接收所述第二监控测试报告;
S6、所述计算机分析所述第二监控测试报告,当所述第二监控测试报告是非法结果时,向用户进行告警,并记录监控测试动作的相关日志信息。
本实施例与本发明的第一实施例的区别在于,所述计算机1在接收到第二监控测试报告后,加入了对监控测试动作合法性的自动判别方法,该方法利用计算机1中的非法监控测试报告处理模块10,当业务调用失败返回的结果不是合法结果时,进而对该非法业务经行告警,使得用户及时获知受监控客户端是否运行正常;该模块还将进行相关日志信息的记录工作,用户通过查询历史记录可以对发生非法业务调用的相关信息实施排查。
图6是本发明的跨操作系统实现计算机监控测试手机客户端第三实施例的系统图。该实施例利用上述跨操作系统实现计算机监控测试手机客户端的方法,对目标的手机客户端2进行余额查询业务拨测。在本发明的其他实施例中,上述业务拨测还包括但不限于短信业务拨测、彩信业务拨测、无线应用协议(WAP)业务拨测、交互式语音应答(IVR)业务拨测、流媒体业务拨测等基础业务拨测和增值业务拨测服务。在本实施例中,作为控制部分的计算机1由三部分组成:拨测调度服务器11,数据库12,以及探测服务器13。用户在计算机1上下达拨测指令后,拨测调度服务器11调度一个余额查询业务,并发送至数据库12,探测服务器13从数据库12中主动探测到该余额查询业务,将第一监控测试指令发送至手机客户端2的底层转换模块21,利用如上述的基于JNI转化接口技术的底层库语言转换方法,将解析后的余额查询指令下发至手机操作系统。在本实施例中,手机客户端2还设置有一目标应用接口23,通过目标应用接口23访问手机客户端2外部的目标应用服务器14,从而以远程控制部分的计算机1模拟用户操作的形式对目标应用程序进行访问,并且接收余额查询结果。该余额查询结果在返回手机操作系统的同时,以手机操作系统底层库语言的形式转换为第一监控测试报告,再一次通过本发明中底层转换模块21解析为第二监控测试报告并发送至探测服务器13。探测服务器13最终将记录了模拟查询业务余额的拨测报告存放于数据库12中,供前台展示分析使用。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。