CN102567198B - 对应用程序在物理系统环境中进行测试的系统及其方法 - Google Patents
对应用程序在物理系统环境中进行测试的系统及其方法 Download PDFInfo
- Publication number
- CN102567198B CN102567198B CN201010616099.XA CN201010616099A CN102567198B CN 102567198 B CN102567198 B CN 102567198B CN 201010616099 A CN201010616099 A CN 201010616099A CN 102567198 B CN102567198 B CN 102567198B
- Authority
- CN
- China
- Prior art keywords
- physical system
- environment
- application program
- program
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种对应用程序在物理系统环境中进行测试的系统和方法,其中系统包括本地运行环境单元,用于为应用程序提供本地的运行环境;模拟物理系统环境单元,用于对实际的物理系统环境进行模拟,生成模拟的物理系统环境;应用程序调用测试单元,用于根据程序测试指令,调用相应的被测应用程序,并将调用的被测应用程序在本地运行环境单元提供的本地的运行环境中进行运行;以及将在本地的运行环境中运行的该被测应用程序设置到所述模拟物理系统环境单元生成的模拟的物理系统环境中运行,并根据运行情况,获得针对该调用的被测应用程序在实际的物理系统环境中进行测试的测试结果。
Description
技术领域
本发明涉及应用程序开发技术领域,尤其是涉及一种对应用程序在物理系统环境中进行测试的系统及其方法。
背景技术
随着互联网技术的不断发展,基于客户端/服务器(C/S,Client/Server)、浏览器/服务器(B/S,Browser/Server)两种界面模式的成熟,使得互联网中的Web应用层出不穷,如电子商务网站的繁荣,社交网络软件(SNS,SocialNetwork Software)的兴起等。
但在上述不同的Web应用中都需要程序开发者的参与,而在开发Web应用程序时,需要开发者对网络、交互协议等有一定的了解,因此具有一定的技术门槛。同时开发者在正式开发应用程序之前,也必须为开发工作搭建相应的开发环境。开发环境搭建成功之后,开发者将根据开发环境所提供的标准库文件和应用程序所需要的逻辑进行编写程序。并在完成程序编写后,通过运行编写好的程序的方式,对程序进行查错。
在整个应用程序开发完成之后,开发者需要为该开发的应用程序创建一个应用开发环境和系统运行环境,例如搭建服务器,分配硬盘资源,申请IP地址和通用资源定位符URL等,以便让开发完成的应用程序能够向用户提供服务。
然而在将开发完成的应用程序设置到实际的物理系统中运行之前,还需要对应用程序在实际的物理系统中的运行情况进行测试,以估计应用程序需要被分配到的物理系统资源(如CPU资源和内存资源等)、以及根据运行情况对应用程序进行相应的调试。现有技术中在将开发完成的应用程序设置到实际的物理系统中进行测试时,必须为该应用程序构建相应的物理系统环境,而在脱离实际的物理系统环境时,就无法实现对开发完成的应用程序在物理系统中进行测试的目的。
发明内容
本发明实施例提供一种对应用程序在物理系统环境中进行测试的系统及其方法,以实现在脱离实际的物理系统环境时,也能够达到对应用程序在物理系统环境中进行测试的目的。
为解决上述问题,本发明实施例提出了一种对应用程序在物理系统环境中进行测试的系统,包括本地运行环境单元,用于为应用程序提供本地的运行环境;模拟物理系统环境单元,用于对实际的物理系统环境进行模拟,生成模拟的物理系统环境;应用程序调用测试单元,用于根据程序测试指令,调用相应的被测应用程序,并将调用的被测应用程序在本地运行环境单元提供的本地的运行环境中进行运行;以及将在本地的运行环境中运行的该被测应用程序设置到所述模拟物理系统环境单元生成的模拟的物理系统环境中运行,并根据运行情况,获得针对该调用的被测应用程序在实际的物理系统环境中进行测试的测试结果。
本发明实施例还提出了一种对应用程序在物理系统环境中进行测试的方法,包括步骤:对实际的物理系统环境进行模拟,生成模拟的物理系统环境;以及根据程序测试指令,调用相应的被测应用程序,并将调用的被测应用程序在预设的本地运行环境中进行运行;以及将在本地的运行环境中运行的该被测应用程序设置到所述模拟的物理系统环境中运行,并根据运行情况,获得针对该调用的被测应用程序在实际的物理系统环境中进行测试的测试结果。
本发明实施例通过在对应用程序进行物理环境测试的系统中预设模拟的物理系统环境,该模拟的物理系统环境通过对实际的物理系统环境进行模拟生成,并进而通过将待测的应用程序放置到该模拟的物理系统环境中运行,并根据运行情况得到测试结果,从而避免了现有技术中在将开发完成的应用程序设置到实际的物理系统中进行测试时,必须为该应用程序构建相应的物理系统环境的问题,进而实现了在脱离实际的物理系统环境时,也能够达到对开发完成的应用程序在物理系统中进行测试的目的。
附图说明
图1为本发明实施例提出的对应用程序在物理系统环境中进行测试的系统的具体组成结构示意图;
图2为本发明实施例中Element Store集合库中提供的日历组件显示服务示意图;
图3为本发明实施例中Element Store集合库中提供的拨号组件界面服务示意图;
图4为本发明实施例为实现对发送短消息的应用程序进行物理环境测试,而提供的一个模拟物理系统环境的架构示意图;
图5为本发明实施例中模拟网关的具体组成结构示意图;
图6为本发明实施例中创建终端模拟器的一个示意图;
图7为本发明实施例中创建界面模拟器的一个示意图;
图8为本发明实施例中调用显示的Phone界面示意图;
图9为本发明实施例中在调用显示的Phone界面中输入数字的示意图;
图10为本发明实施例中模拟终端的具体组成结构示意图;
图11、图12、图13为基于本发明实施例提出的系统实现对短消息发送的应用程序进行物理环境测试的测试处理示意图;
图14为本发明实施例提供的对应用程序在物理系统环境中进行测试的方法处理流程图。
具体实施方式
本发明实施例的实现思想为在对应用程序进行物理环境测试的系统中设置模拟物理系统环境单元,用于对实际的物理系统环境进行模拟,生成模拟的物理系统环境,这样就可以将待测的应用程序放置到该模拟的物理系统环境中运行,并根据运行情况得到测试结果,从而实现了在脱离实际的物理系统环境时,也能够达到对开发完成的应用程序在物理系统环境中进行测试的目的。
如图1所示,为本发明实施例提出的对应用程序在物理系统环境中进行测试的系统的具体组成结构示意图,其具体包括:
本地运行环境单元10,用于为编写好后的待测试应用程序提供本地运行环境11;本地运行环境单元10利用通用的沙箱技术为程序开发者提供模拟的网络侧应用运行环境以及调试应用环境,利用本地沙箱技术可以提供安全隔离、资源受限(如不可读取本地文件、打开Socket、创建线程)的本地运行环境,从而实现为待测试的应用程序提供其需要的安全限制等级的本地应用程序运行环境,并提供本地的数据访问以及持久化功能。
模拟物理系统环境单元12,用于对实际的物理系统环境进行模拟,以生成模拟的物理系统环境13;具体地该模拟物理系统环境单元12,针对已经在本地开发好的、且已经在本地运行环境11中运行的应用程序,通过预先编写好的测试桩函数模拟真实的物理系统中的各网元能力以及各网元之间的通信接口协议的API调用,从而实现模拟出真实的物理系统环境。这样本地待测试的应用程序在本地运行环境11中运行起来后,通过调用本地的虚拟网元能力及其之间的接口协议,就可以实现将待测试的应用程序放置到模拟的真实物理系统中进行测试的目的。
应用程序调用测试单元14,用于根据外界的应用程序测试人员输入的程序测试指令,调用相应的被测应用程序,并将调用的被测应用程序在本地运行环境单元10提供的本地运行环境11中进行运行后,将在本地运行环境11中运行起来的该被测应用程序设置到模拟物理系统环境单元12生成的模拟的物理系统环境13中运行,并根据运行情况,获得针对该调用的被测应用程序在实际的物理系统环境中进行测试的测试结果。具体地,获得的针对该调用的被测应用程序在实际的物理系统环境中进行测试的测试结果包括但不限于为:
(1)该被测应用程序需要对实际的物理系统环境占用的物理系统资源的估计结果,即应用程序调用测试单元14通过应用程序在模拟的物理系统环境13中的运行状态能够估计出该应用程序在后续部署到真实的物理系统之后,针对真实的物理系统环境的内存使用率、CPU使用率等性能指标。
(2)该被测应用程序正常运行在后续部署到的实际的物理系统环境中时,需要对该应用程序进行相应调试的结果,从而可以实现测试人员根据得到的该调试结果,对该应用程序进行相应的调试,以使调试修改后的应用程序在后续能够一次性的部署到真实的物理系统中。
可见,本发明实施例提出的系统通过在对应用程序进行物理环境测试的系统中设置模拟物理系统环境单元,用于对实际的物理系统环境进行模拟,生成模拟的物理系统环境,这样就可以将待测的应用程序放置到该模拟的物理系统环境中运行,并根据运行情况得到测试结果,避免了现有技术中对待测应用程序在真实的物理系统环境中测试时,必须连接真实的电信网络系统,基于真实的电信网络系统中的资源及其能力进行相应调试,从而带来的由于很多电信网络的封闭性使得测试过程不便和繁琐的问题,进而实现了在脱离实际的物理系统环境时,也能够达到对开发完成的应用程序在物理系统环境中进行测试的目的。
更进一步地,本发明实施例提出的系统针对开发的应用程序,还提出便捷快速的开发环境,以避免现有技术中在开发应用程序时,需要下载开发软件,且需要保证开发软件之间的兼容性,并针对下载的开发软件搭建开发环境,其开发步骤十分繁琐的问题,及其程序开发者在程序开发过程中缺乏现有的开发工具支持,开发效率低等问题。为避免这个问题,本发明实施例提出的系统可以进而包括:
工具仓库数据库17,用于提供至少一种业务功能对应的程序段;该数据库17可以但不限于包括下述4种集合库之一:
应用程序接口API集合库(API Store)171,用于提供至少一种API功能对应的程序段;该API Store集合库171即收集了各种API对应的程序段,以提供底层的各种开放能力,其与具体的开发语言类型无关,可以基于API直接进行编写。该集合库171中可以包括电信网络的API能力调用、底层IT资源的操作调用、通信方面的API调用等等。程序开发者可以在自己正在开发的应用程序中使用API Store 171中收集的各种能力/IT资源SDK,组织编写自己正在开发的业务逻辑。
功能集合库(Function Store)172,用于提供至少一种具有不完整业务逻辑的业务功能对应的程序段;该Function Store集合库172中收集了各种业务逻辑不完整的业务功能对应的程序段,其可以是以API结合业务场景形成的功能仓库集,每一个Function都是一段可以具备一定的业务逻辑的可以复用的代码程序段,比如短信的群发功能和失败重发功能对应的程序段。该FunctionStore 172中包括的每个业务逻辑功能对应的程序段是将API通过特定的语言进行封装,形成的其开发环境与各种API结合而生成的SDK。为了面向更多的开发者,可以开发多语言版本的SDK。由于Function Store 172中的每一个Function程序段不仅能够提供在互联网上的各种应用,还能够提供电信级的应用,比如发送短消息、多媒体消息、位置服务,3D渲染等业务功能,这样就使得对于不熟悉电信业务开发的程序开发人员而言,可以大大减少其开发各业务功能的工作量。
组件集合库(Element Store)173,用于提供至少一种具有完整业务逻辑的业务功能对应的程序段;该Element Store集合库173是收集了各种组件形成的仓库集,所谓组件Element,指具备完整业务逻辑的程序段。这样程序开发者就可以选择其需要的组件并将其直接嵌入到自己开发的应用程序中使用,使其成为应用程序的一部分。该Element Store集合库173可以但不限于包括SNS组件,点击呼叫组件,飞信组件,日历组件等。每一个组件都可以运行部署在互联网上的某台服务器中,其它程序开发人员可以将组件嵌入到IFrame框架中,使得该具备独立业务逻辑的组件能够融合到一个更大级别的应用程序中。
其中在页面显示应用中,可以将Element Store集合库173中包括的各个Element设置成Element树,并基于JavaScript动态语言开发该Element树结构,然后将开发出的Element树结构导入到Web Element显示界面中,当外界点击Web Element显示界面中的Element树时,会触发主窗体内Element的呈现,主窗体使用3个IFrame实现,功能分别为样式设置、Element实例和代码样例。显示界面中Element呈现区可以包括所有的Element,每个Element下面会有多种样式的Elements,以便程序开发人员快速选择相关的Elements。
具体地,显示界面中根据不同的Element内容将向程序开发用户呈现不同的显示页面,如图2所示,为本发明实施例中Element Store集合库中提供的日历组件显示服务示意图,如图3所示,为本发明实施例中Element Store集合库中提供的拨号组件界面服务示意图。下述以日历组件为例,来描述如何使用Element Store集合库173中提供的日历组件:
程序开发人员在Element Store集合库173提供的各个组件集合中,选择组件示例中的日历组件后,代码样例的IFrame中会显示如下的代码,开发人员可以直接将这部分代码拷贝并嵌入到自己开发的Web应用程序中,从而实现在其开发的应用程序中简洁的嵌入一个Web日历组件,从而避免了程序开发人员需要下载相关软件并搭建开发环境自己编写代码开发的难度:
<!--CMCC Calendar Element Code-->
<iframe frameborder=″0″marginwidth=″0″marginheight=″0″border=″0″style=″border:0;margin:0;width:300px;height:300px;″
src=″http://www.omp.com/calendar/embed?mode=AGENDA&;showTitle=0&;showTabs=0&;showPrint=0&;shoWCalendars=0&;wkst=1&;element=true&;src=usa en%40holiday.calendar.google.com″scrolling=″no″allowtransparency=″true″></iframe>
模板集合库(Project Store)174,用于提供至少一种具有完整业务逻辑的WEB应用建设模板对应的程序段;该Project Store集合库174是收集了各种模板对应的开发程序段而形成的仓库集,其中模板是指在SDK的基础上集成了业务开发框架和模板而形成的应用程序段,每一个应用模板,都是一具有完备业务逻辑的可商用的Web应用(譬如OA、SNS网站、门户网站、BBS论坛等Web应用程序)。这些应用模板都将被集成到Project Store集合库174中,程序开发者在开发各种WEB应用时,本发明实施例提供的系统可以通过向导的方式引导开发者进行Web业务的开发。例如程序开发人员可以在向导的指引下,通过连续点击Project Store集合库174中收集的各种基于模板的应用程序,并在点击的该应用程序模板的基础上进行代码的修订和功能的裁剪,以开发出相应功能的WEB应用程序。该种开发方式具有较好的重用性和扩展性,能够在非常高的程度上提高程序开发人员的开发效率。
本地开发环境单元16,用于为程序开发人员提供本地编写应用程序的环境,并提供对从上述工具仓库数据库17中选择的业务功能程序段进一步编写和组织的编写环境。具体地该本地开发环境单元16可以基于插件的方式嵌入Eclipse集成开发环境中,为程序开发者提供一个本地编写代码的环境,能够自动对程序开发者输入的特定代码进行语法分析、管理、调试、解释等。
可见,通过上述在本发明实施例提供的系统中增加本地开发环境单元16和工具仓库数据库17,可以较好的实现在开发应用程序时,无需程序开发者下载开发软件,并针对下载的开发软件搭建开发环境,程序开发人员可以重复使用系统提供的各种已经编写好的程序段,并在预先提供的开发环境中进行组织、功能剪裁和编写等操作,从而提升了程序的开发效率。
更进一步地,本发明实施例提供的系统还可以进而包括应用程序管理单元18,用于对程序开发人员已经开发好的本地应用程序所对应的代码和/或文档进行管理。该应用程序管理单元18还提供有开发所需要的管理工具集,包括开发环境更新及配置管理、开发者授权管理、版本及团队管理、缺陷及文档管理、资源管理、安全管理等功能。应用程序部署单元19,用于将根据应用程序调用测试单元14得到的测试结果进行调试后的被测应用程序,按照该测试结果进行设置后部署到按照该测试结果设置到实际的物理系统环境中。通过该应用程序部署单元19,程序开发者可以实现将根据测试结果进行调试后的应用程序通过一键点击的方式部署到实际的网络侧的系统环境中去,而无需在应用部署上费时费力,从而节约了将开发得到的应用程序运行到实际的网络系统中提供实际服务的时间。
下面将基于本发明实施例提供的对应用程序在物理系统环境中进行测试的系统,以对开发出的发送短消息的应用程序进行模拟物理系统环境测试为实施例,详细说明本发明系统的具体实现原理:
其中上述已经阐述,本发明实施例提供的模拟物理系统环境单元可以针对实际的电信网络能力,进行特殊的模拟功能。由于实际的电信网络具有封闭性特点和可管可控可运维的特点,其内部网络能力基本不允许随便接入和免费使用,本发明实施例提案中的模拟的物理系统开发环境,提供了各种实际的电信网络中的网元能力程序及其相关的测试工具程序,从而使得程序开发人员在脱离实际的网络系统环境下,依然可以对所开发的应用程序业务逻辑进行全面的物理环境测试。如图4所示,为本发明实施例为实现对发送短消息的应用程序进行物理环境测试,而提供的一个模拟物理系统环境的架构示意图,包括被测的应用程序,能力SDK,和基于软件程序设计的模拟网关(例如短消息网关、短消息中心设备等)、模拟终端等,该模拟的系统为基于软件程序模拟真实物理系统环境而生成的,基于软件程序模拟了实际物理系统中相应网关设备的能力和终端设备的能力、以及各个设备之间的通信接口协议等,以实现在脱离实际的物理环境时,也能基于该模拟的物理系统环境对开发出的应用程序进行物理系统环境测试,具体地,图4中各个组成部分的具体作用如下:
应用程序,提供业务逻辑的上层应用;
能力SDK,其为屏蔽底层通信协议的软件开发包,在真实的物理网络环境下,能力SDK会将上层应用程序的调用翻译为Web服务请求发送至模拟网关,并通过模拟网关使用各种通信能力或者获取返回的能力数据。在本提案模拟的物理系统测试环境中,能力SDK会通过配置文件得到其需要连接的模拟物理系统测试环境中的模拟网关,并由模拟网关为其提供服务;
模拟网关,模拟网关是对真实的能力网关进行简化和模拟得到的模拟网元设备,负责将能力SDK和模拟终端之间交互的消息进行协议转换并进行转发;它的组成结构如图5所示,其中包括北向Web服务接口模块、能力网关模拟模块和Socket通信模块,各个模块的具体作用如下:
北向Web服务接口模块负责提供真实能力网关所具备的Web服务接口,从而使模拟网关可以被上层的能力SDK调用,能力网关模拟模块是协助模拟终端工作的必要条件,具体负责模拟真实能力网关的各种业务逻辑处理功能,Socket通信模块以Socket通信的方式与模拟终端进行通信;在真实的网络环境下,网关设备会将消息发送到基站并与真实的终端进行信令交互和消息传递,而在本发明实施例中,模拟网关会将消息通过Socket通信方式发送到模拟终端的监听端口。
模拟终端,模拟终端是对真实的终端设备进行简化和模拟得到的网元设备,其通过与模拟网关进行交互实现各种通信业务功能。上层应用程序调用能力SDK,如果调用方式正确的话,则相关调用信息可以发送到模拟终端上进行展示,通过这种手段,可以在脱离真实的现网网络环境的情况下,对上层应用程序的业务逻辑以及能力SDK调用的合法性和正确性进行有效和快速的测试。其中模拟终端的具体功能描述如下:
终端创建能力:
1)用户可以创建一个或者多个手机终端模拟器。
2)提供电话号码设置功能,使模拟器能够向模拟网关进行注册。
3)用户可以在界面上随意地拖动和摆放终端模拟器的位置。
终端界面能力:
1)终端主界面,提供类似手机终端的主界面,用户可以点击短消息和多媒体消息图标来发送和接收短消息和多媒体消息。
2)短消息发送界面,提供短消息输入界面和发送功能界面。
3)短消息接收界面,当有短消息到达时,提供提醒界面和查看功能界面。
4)多媒体消息发送界面,提供多媒体消息输入界面和发送功能界面。
5)多媒体消息接收界面,当有多媒体消息到达时,提供提醒界面和查看功能界面。
模拟终端的各个功能实现方案分别如下所述:
终端创建能力,创建终端模拟器实例时,要求用户输入电话号码或者选择已经存在的电话号码,如果用户使用的是已经存在的电话号码,则终端模拟器会读入上次使用后留下的电话号码信息,如果用户输入一个新的号码,则保存这个号码以便下次选择使用,具体示意图如图6所示。
终端界面能力,通过手机终端的界面截图来制作界面模拟器。做法是在eclipse上扩展一个view,并在这个view里显示模拟器,通过点击界面模拟器上的相应按钮触发事件实现相应触发事件功能,具体如图7所示。以通过监听在界面模拟器上触发的鼠标事件来判断需要给使用者展现怎样的界面为例,需要首先确定界面模拟器上各个图标的位置信息,并将确定的位置信息保存在xml文件里,然后对界面模拟器添加MouseListener,那么当用鼠标点击界面模拟器时,就可以通过鼠标事件获取鼠标的当前位置,再加上存储好的图标位置信息,就可以判断使用者想要使用的功能信息,这样就可以转换到相应的实际界面中去。
以点击图7所示的主界面模拟器中的左下角的Phone图标为例:当MouseListener监听到MouseEvent发生时,于是调用handleEvent的方法来处理这个事件,在执行handleEvent时,发现鼠标点击位置位于Phone的图标位置上,于是就可以通过调用paintControl的方法来显示Phone的界面,调用出来显示的Phone界面示意图如图8所示。
在调用显示出的Phone界面中,继续监听MouseEvent,可以监听到数字输入事件,具体如图9所示。
其中为实现上述模拟终端的能力,本发明实施例提出的模拟终端的组成结构示意图如图10所示,包括Socket通信模块、消息解析模块、消息封装模块、UI事件处理模块和UI交互模块,其中各个组成部分的作用如下:
Socket通信模块,以Socket通信的方式,传递模拟终端和模拟网关之间交互的消息;
消息解析模块,从Socket通信模块获取来自模拟网关的下行消息(XML文档格式),并对获取到的消息进行解析,解析完毕之后送至UI事件处理模块进行后续的消息处理;
消息封装模块,从UI事件处理模块接收来自UI交互模块的上行消息,并对接收到的消息进行封装,然后通过Socket通信模块将封装好的消息送至模拟网关;
UI事件处理模块,该模块一方面接收来自消息解析模块的下行消息,并对接收到的消息进行判断和处理之后,通过UI交互模块进行消息的展示;另外一方面接收来自UI交互模块的上行消息,并将接收到的消息送至消息封装模块进行消息封装后送至模拟网关处理(模拟网关进而会将上行消息送至上层的应用程序)。
UI交互模块,该模块一方面接收来自UI事件处理模块的下行消息,并对接收到的消息进行UI展示,另外一方面接收来自用户输入的上行消息,并将接收到的上行消息送至UI事件处理模块进行消息的后续处理。
模拟终端基于上述各个组成部分,更为详细的消息业务处理流程如下:
当有消息到达模拟终端时,Socket通信模块会接收该消息,并送至消息解析模块进行分析消息的类型,如果是短消息或者为多媒体消息,则提取该消息中的具体内容,并将提取的具体内容封装成模拟终端能够使用的消息类型并保存下来,并在主界面模拟器上方产生一条提示信息告诉用户有新信息到达,用户点击这个信息进入查看消息的界面。如果只有一条新信息,则直接查看这条新信息;如果有多条新信息,则进入收件箱。在进入收件箱之后,UI交互模块负责分别读取消息内容并分别展示在UI界面上。
当模拟终端要发送消息时,例如当要发送一条短消息时,模拟终端首先将短消息编辑界面上用户输入的电话号码和文本内容封装成特定的消息对象实例,然后进而将其封装为基于XML的socket消息形式,并通过Socket通信模块送至模拟网关进行后续处理。当发送一条多媒体消息时,模拟终端首先把多媒体消息编辑界面上用户输入的电话号码、文本内容、附件等封装成特定的消息对象实例,然后进而将其封装为基于XML的socket消息形式,并通过Socket通信模块送至模拟网关进行后续处理。
可见,通过上述对模拟终端和模拟网关的详细介绍,可以看出在本发明实施例提出的测试环境中,由于融入了模拟网关和模拟终端,使得程序开发者摆脱了必须在现网环境下进行业务软件功能的测试的弊端,能够在应用开发的过程中快速有效地测试其开发的业务软件程序的能力SDK,即测试其调用的正确性以及调用效果,进而对其上层应用程序的业务逻辑进行测试和调整,从而可以有效的缩短测试时间,加快开发速度,避免对现网资源的过多占用。
更为具体地,如图11、图12、图13所示,为基于本发明实施例提出的系统实现对短消息发送的应用程序进行物理环境测试的测试处理示意图,图中在开发环境中,程序开发者可以调用模拟终端创建模块创建一个如图10所示的模拟终端,并为该模拟终端绑定一个手机号码。与模拟终端相对应,在开发环境中相应创建一个如图5所示的模拟网关,该模拟网关负责上层应用程序与模拟终端之间的通信。如图11、图12、图13所示,测试人员利用API Store中提供的短信发送API功能向指定的模拟终端号码(13811000001)发送测试短信,该测试短信从上层应用程序送至模拟网关,经由模拟网关送至模拟终端,并在模拟终端上显示出来。通过这样的测试流程,就可以实现在不依赖于真实网络环境的情况下,有效而直观的测试程序开发人员开发的短消息发送应用程序的正确性与合法性,并保证测试程序的设计逻辑畅通。
当然,上述仅是以对短消息发送应用程序进行模拟物理系统环境测试为例来说明的,本发明实施例提供的系统还可以应用于包括但不限于:对多媒体消息发送能力、点击呼叫能力、GIS能力、定位能力、Presence能力等的模拟物理系统环境的测试。
综上所述,基于本发明实施例提出的对应用程序在物理系统环境中进行测试的系统,程序开发人员可以使用该系统提供的本地开发环境以及工具仓库等集成化的业务开发能力和测试环境,进行应用程序的开发,从而避免了现有技术中需要人工进行开发环境的搭建并需要开发人员自己编写开发很多业务功能的弊端,较好地提升了程序开发的效率。
基于本发明实施例提供的该系统,程序开发人员在利用本发明系统提供的本地开发环境进行应用程序开发时,可以调用工具仓库中提供的各种业务功能,比如短消息业务功能、多媒体消息业务功能,位置服务业务功能等。程序开发结束后,开发人员可以将开发完成的应用程序运行在本地运行环境中,并在运行起来后部署到本地提供的模拟的物理系统环境中进行运行,从而在脱离实际的物理系统环境下实现对开发完成的应用程序进行在物理系统环境下的测试,以了解该应用程序在后续部署到真实的物理系统之后的各方面性能指标,并进而根据测试结果对应用程序进行相应的优化。此外,应用程序管理单元将在程序开发者开发应用程序的过程中随时配合其他各个单元的工作。程序开发者还可以利用应用程序部署单元实现将测试完成后的应用程序一键式部署到真实的物理网络环境中。由此可见本发明实施例提供的系统中的几个单元之间通过互相配合,可以保证程序开发者在开发应用程序以及对开发的应用程序进行测试时的方便,快捷。
相应的,本发明实施例还提供一种对应用程序在物理系统环境中进行测试的方法,如图14所示,为本发明实施例提供的对应用程序在物理系统环境中进行测试的方法处理流程图,具体实现过程如下:
步骤70,对实际的物理系统环境进行模拟,生成模拟的物理系统环境;具体地,可以通过对实际的物理系统环境中的各网元能力、以及各网元之间的通信接口协议基于软件程序进行模拟,来生成模拟的物理系统环境。
步骤72,根据外界程序测试人员输入的程序测试指令,调用相应的被测应用程序,并将调用的被测应用程序在预设的本地运行环境中进行运行;以及将在本地的运行环境中运行的该被测应用程序设置到所述模拟的物理系统环境中运行,并根据运行情况,获得针对该调用的被测应用程序在实际的物理系统环境中进行测试的测试结果。其中得到的测试结果包括但不限于该被测应用程序需要对实际的物理系统环境占用的物理系统资源的估计结果,和对该被测应用程序进行相应调试的结果等。
此外,对于待测试的应用程序的编写,本发明提供的方法可以预先提供一个本地编写应用程序的环境,并提供对从预设的存储有至少一个业务功能对应的程序段的工具仓库数据库中选择的业务功能程序段进一步编写和组织的编写环境。其中该预设的工具仓库数据库中包括但不限于为下述至少一种集合组成的工具仓库:
提供至少一种API功能对应的程序段的应用程序接口API集合库(APIStore);提供至少一种具有不完整业务逻辑的业务功能对应的程序段的功能集合库(Function Store);提供至少一种具有完整业务逻辑的业务功能对应的程序段的组件集合库(Element Store);提供至少一种具有完整业务逻辑的网站WEB应用建设模板对应的程序段的模板集合库(Project Store)。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种对应用程序在物理系统环境中进行测试的系统,其特征在于,包括:
本地运行环境单元,用于为应用程序提供本地的运行环境;
模拟物理系统环境单元,用于对实际的物理系统环境进行模拟,生成模拟的物理系统环境;所述模拟的物理系统环境包括:应用程序,用于提供业务逻辑的上层应用;能力软件开发包SDK,用于屏蔽底层的通信协议,并通过配置文件确定自身要连接的模拟网关,并接受确定的模拟网关为自身提供的服务;对真实的能力网关进行简化和模拟得到的模拟网关,用于将能力软件开发包SDK和模拟终端之间交互的消息进行协议转换并进行转发;对真实的终端设备进行简化和模拟得到的模拟终端,用于通过与模拟网关进行交互实现各种通信业务功能;
应用程序调用测试单元,用于根据程序测试指令,调用相应的被测应用程序,并将调用的被测应用程序在本地运行环境单元提供的本地的运行环境中进行运行;以及将在本地的运行环境中运行的该被测应用程序设置到所述模拟物理系统环境单元生成的模拟的物理系统环境中运行,并根据运行情况,获得针对该调用的被测应用程序在实际的物理系统环境中进行测试的测试结果。
2.如权利要求1所述的系统,其特征在于,还包括工具仓库数据库,用于提供至少一种业务功能对应的程序段;
本地开发环境单元,用于提供本地编写应用程序的环境,并提供对从所述工具仓库数据库中选择的业务功能程序段进一步编写和组织的编写环境。
3.如权利要求2所述的系统,其特征在于,所述工具仓库数据库包括下述至少一种集合库:
应用程序接口API集合库,用于提供至少一种API功能对应的程序段;
功能集合库,用于提供至少一种具有不完整业务逻辑的业务功能对应的 程序段;
组件集合库,用于提供至少一种具有完整业务逻辑的业务功能对应的程序段;
模板集合库,用于提供至少一种具有完整业务逻辑的WEB应用建设模板对应的程序段。
4.如权利要求1所述的系统,其特征在于,还包括应用程序管理单元,用于对本地应用程序对应的代码和/或文档进行管理。
5.如权利要求1所述的系统,其特征在于,还包括应用程序部署单元,用于将根据应用程序调用测试单元得到的测试结果进行调试后的被测应用程序,按照所述测试结果进行设置后部署到实际的物理系统环境中。
6.如权利要求1或5所述的系统,其特征在于,应用程序调用测试单元得到的测试结果包括该被测应用程序需要对实际的物理系统环境占用的物理系统资源的估计结果,和对该被测应用程序进行相应调试的结果。
7.如权利要求1所述的系统,其特征在于,所述模拟物理系统环境单元具体通过对实际的物理系统环境中的各网元能力、以及各网元之间的通信接口协议基于软件程序进行模拟,生成模拟的物理系统环境。
8.如权利要求1所述的系统,其特征在于,所述模拟网关具体包括:
北向Web服务接口模块,用于为能力软件开发包SDK提供真实能力网关所具备的Web服务接口,实现模拟网关能够被所述能力软件开发包SDK调用;
能力网关模拟模块,用于模拟真实能力网关的各种业务逻辑处理功能;
Socket通信模块,用于通过Socket通信的方式与模拟终端进行通信。
9.如权利要求1所述的系统,其特征在于,所述模拟终端具体包括:
Socket通信模块,用于以Socket通信的方式传递模拟终端和模拟网关之间交互的消息;
消息解析模块,用于从Socket通信模块中获取来自模拟网关的下行消 息,并对获取到的下行消息进行解析,并将解析后的下行消息发送到UI事件处理模块进行处理;
消息封装模块,用于从UI事件处理模块中接收来自UI交互模块的上行消息,并对接收到的上行消息进行封装,并通过Socket通信模块将封装后的上行消息送至模拟网关;
UI事件处理模块,用于接收来自消息解析模块的下行消息,并对接收到的下行消息进行处理之后通过UI交互模块进行下行消息的展示;以及接收来自UI交互模块的上行消息,并对接收到的上行消息进行处理后送至消息封装模块进行上行消息封装处理;
UI交互模块,用于接收来自UI事件处理模块的下行消息,并对接收到的下行消息进行UI展示,以及接收来自用户输入的上行消息,并将接收到的上行消息送至UI事件处理模块进行上行消息的后续处理。
10.一种对应用程序在物理系统环境中进行测试的方法,其特征在于,对实际的物理系统环境进行模拟,生成模拟的物理系统环境,所述模拟的物理系统环境包括:用于提供业务逻辑的上层应用的应用程序;用于屏蔽底层通信协议,通过配置文件确定自身要连接的模拟网关,并接受确定的模拟网关为自身提供的服务的能力软件开发包SDK;用于将能力软件开发包SDK和模拟终端之间交互的消息进行协议转换并进行转发的模拟网关;用于通过与模拟网关进行交互实现各种通信业务功能的模拟终端;
所述方法包括步骤:
根据程序测试指令,调用相应的被测应用程序,并将调用的被测应用程序在预设的本地运行环境中进行运行;以及
将在本地的运行环境中运行的该被测应用程序设置到所述模拟的物理系统环境中运行,并根据运行情况,获得针对该调用的被测应用程序在实际的物理系统环境中进行测试的测试结果。
11.如权利要求10所述的方法,其特征在于,还包括:
提供本地编写应用程序的环境,并
提供对从预设的存储有至少一个业务功能对应的程序段的工具仓库数据库中选择的业务功能程序段进一步编写和组织的编写环境。
12.如权利要求11所述的方法,其特征在于,所述工具仓库数据库中包括下述至少一种集合库:
提供至少一种API功能对应的程序段的应用程序接口API集合库;
提供至少一种具有不完整业务逻辑的业务功能对应的程序段的功能集合库;
提供至少一种具有完整业务逻辑的业务功能对应的程序段的组件集合库;
提供至少一种具有完整业务逻辑的WEB应用建设模板对应的程序段的模板集合库。
13.如权利要求10所述的方法,其特征在于,所述测试结果包括该被测应用程序需要对实际的物理系统环境占用的物理系统资源的估计结果,和对该被测应用程序进行相应调试的结果。
14.如权利要求10所述的方法,其特征在于,对实际的物理系统环境进行模拟,生成模拟的物理系统环境,具体包括:
通过对实际的物理系统环境中的各网元能力、以及各网元之间的通信接口协议基于软件程序进行模拟,生成模拟的物理系统环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010616099.XA CN102567198B (zh) | 2010-12-30 | 2010-12-30 | 对应用程序在物理系统环境中进行测试的系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010616099.XA CN102567198B (zh) | 2010-12-30 | 2010-12-30 | 对应用程序在物理系统环境中进行测试的系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567198A CN102567198A (zh) | 2012-07-11 |
CN102567198B true CN102567198B (zh) | 2014-12-10 |
Family
ID=46412666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010616099.XA Active CN102567198B (zh) | 2010-12-30 | 2010-12-30 | 对应用程序在物理系统环境中进行测试的系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567198B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593283A (zh) * | 2013-08-02 | 2014-02-19 | 北京君正集成电路股份有限公司 | 一种测试验证方法及装置 |
CN104932973B (zh) * | 2014-03-21 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 一种版本兼容测试方法和装置 |
CN105451258B (zh) * | 2014-09-26 | 2019-10-25 | 优视科技有限公司 | 一种测试处理方法及装置 |
CN105357323B (zh) * | 2015-12-11 | 2019-01-25 | 北京京东尚科信息技术有限公司 | 一种app中html5页面调试方法及装置 |
CN105516969B (zh) * | 2015-12-15 | 2019-03-05 | 中卓信(北京)科技有限公司 | 一种手机短信安全验证方法 |
CN105653338B (zh) * | 2015-12-30 | 2019-02-12 | Oppo广东移动通信有限公司 | 一种应用的更新方法及装置 |
CN106020960B (zh) * | 2016-05-30 | 2020-02-18 | 北京奇艺世纪科技有限公司 | 一种调用方法及装置 |
CN107423208A (zh) * | 2017-03-03 | 2017-12-01 | 上海斐讯数据通信技术有限公司 | 一种Android兼容性测试方法、装置及系统 |
CN110462530A (zh) * | 2017-03-31 | 2019-11-15 | 索尼公司 | 信息处理设备、信息处理方法、计算机程序和程序制造方法 |
CN107395586A (zh) * | 2017-07-17 | 2017-11-24 | 深信服科技股份有限公司 | 一种更新网络安全产品的方法、实验节点及相关系统 |
CN108809747B (zh) * | 2018-03-22 | 2020-11-06 | 苏州德姆斯信息技术有限公司 | 一种系统平台的模拟数据测试系统及其测试方法 |
CN108595337A (zh) * | 2018-05-07 | 2018-09-28 | 杭州有赞科技有限公司 | 一种Jar包的运行方法及系统 |
CN110519115B (zh) * | 2019-07-11 | 2022-05-17 | 深圳壹账通智能科技有限公司 | 网关接口测试方法、终端设备、存储介质及装置 |
CN110531962B (zh) * | 2019-08-06 | 2023-11-17 | 上海连尚网络科技有限公司 | 小程序的开发处理方法、设备及计算机可读存储介质 |
CN112214370A (zh) * | 2020-10-28 | 2021-01-12 | 京东数字科技控股股份有限公司 | 一种大屏终端的调试设备及方法 |
CN113051164A (zh) * | 2021-03-30 | 2021-06-29 | 北京梧桐车联科技有限责任公司 | 车载程序的测试方法、装置、设备及计算机可读存储介质 |
CN113438273B (zh) * | 2021-05-21 | 2022-08-16 | 中国科学院信息工程研究所 | 一种物联网设备中应用程序的用户级仿真方法及装置 |
CN117971672B (zh) * | 2024-01-31 | 2024-08-16 | 北京长木谷医疗科技股份有限公司 | 一种自适应测试方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1372662A (zh) * | 1999-07-09 | 2002-10-02 | 卡纳尔股份有限公司 | 运行和测试应用程序 |
CN101142550A (zh) * | 2003-11-13 | 2008-03-12 | 高通股份有限公司 | 计算设备中的动态模拟 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7954088B2 (en) * | 2005-03-23 | 2011-05-31 | Microsoft Corporation | Method and apparatus for executing unit tests in application host environment |
-
2010
- 2010-12-30 CN CN201010616099.XA patent/CN102567198B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1372662A (zh) * | 1999-07-09 | 2002-10-02 | 卡纳尔股份有限公司 | 运行和测试应用程序 |
CN101142550A (zh) * | 2003-11-13 | 2008-03-12 | 高通股份有限公司 | 计算设备中的动态模拟 |
Also Published As
Publication number | Publication date |
---|---|
CN102567198A (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567198B (zh) | 对应用程序在物理系统环境中进行测试的系统及其方法 | |
CN109857667B (zh) | 接口自动化测试方法、测试装置、测试设备及存储介质 | |
CN108345531B (zh) | 一种测试方法、装置及系统 | |
WO2020155777A1 (zh) | Ui自动化功能测试方法、测试装置、测试设备及存储介质 | |
CN106708899B (zh) | 自动埋点方法和装置 | |
CN104572043B (zh) | 一种对客户端应用的控件进行实时埋点的方法及装置 | |
CN102622211B (zh) | 一种应用程序开发的方法和装置 | |
CN101299862B (zh) | 一种电信业务生成环境系统 | |
CN106649107B (zh) | 安卓系统稳定性的自动化测试方法及装置 | |
KR20180038539A (ko) | 소프트웨어 개발 키트로 데이터 추적을 구현하는 방법 및 시스템 | |
CN104391786A (zh) | 网页自动化测试系统及其方法 | |
CN103246606B (zh) | Esb平台的性能测试方法和系统 | |
CN104579822A (zh) | 基于Http协议的移动应用自动化性能测试系统及方法 | |
CN103927253A (zh) | 多浏览器兼容性测试方法及系统 | |
CN104821954A (zh) | 一种跨平台远程过程调用方法 | |
CN104102578B (zh) | 测试方法及系统、操作端 | |
CN103544100A (zh) | 便携数据处理设备应用程序的测试方法、系统和客户端 | |
CN110515679A (zh) | 数据采集方法、装置、设备及存储介质 | |
CN105556505A (zh) | 遗产系统 | |
CN113535567B (zh) | 软件测试方法、装置、设备和介质 | |
CN104156213A (zh) | 安卓应用的运行方法及装置 | |
CN114860205A (zh) | 低代码开发平台的应用扩展系统、方法和装置 | |
CN111767229A (zh) | 性能测试方法、装置和设备 | |
CN109542754A (zh) | 移动设备的接入方法、应用程序的调试方法、装置和系统 | |
CN106557411A (zh) | Android系统中Hybrid应用的测试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |