CN104536890B - 测试系统、方法和装置 - Google Patents

测试系统、方法和装置 Download PDF

Info

Publication number
CN104536890B
CN104536890B CN201410830143.5A CN201410830143A CN104536890B CN 104536890 B CN104536890 B CN 104536890B CN 201410830143 A CN201410830143 A CN 201410830143A CN 104536890 B CN104536890 B CN 104536890B
Authority
CN
China
Prior art keywords
source code
server
call request
version
test
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
Application number
CN201410830143.5A
Other languages
English (en)
Other versions
CN104536890A (zh
Inventor
窦锦帅
谭国斌
于胜军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiaomi Inc
Original Assignee
Xiaomi Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201410830143.5A priority Critical patent/CN104536890B/zh
Publication of CN104536890A publication Critical patent/CN104536890A/zh
Application granted granted Critical
Publication of CN104536890B publication Critical patent/CN104536890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本公开是关于一种测试系统、方法和装置,属于计算机技术领域。所述系统包括:发布服务器和执行服务器;发布服务器用于接收开发设备提交的第三方应用的测试版本的源代码,将该源代码发布至执行服务器;执行服务器用于执行源代码,当接收到开放平台服务器发送的调用请求时,根据调用请求将源代码的执行结果发送给开放平台服务器,并根据调用请求的处理情况采集仿真测试数据。解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过构建仿真测试环境,对第三方应用的测试版本进行正式发布前测试,可提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。

Description

测试系统、方法和装置
技术领域
本公开涉及计算机技术领域,特别涉及一种测试系统、方法和装置。
背景技术
目前许多网络运营商都为第三方开发商提供用于第三方应用接入的开放平台,第三方开发商可以利用开放平台提供的基础接口,将自身开发的第三方应用接入开放平台,以实现为开放平台的用户提供服务。
在运营过程中,开放平台可采用回调第三方应用所提供的服务接口的方式,调用第三方应用的服务接口为登录至开放平台的客户端提供服务。可见,第三方应用的功能实现依赖于开放平台的回调,两者之间存在强依赖关系。
然而,正是由于第三方应用与开放平台之间的强依赖关系,导致第三方应用只有在正式发布后才能预览其功能是否正常。换句话说,第三方应用在正式发布前无法进行全面的测试,而在正式发布后的运营过程中势必会存在较多问题和故障。
发明内容
为了解决第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题,本公开实施例提供了一种测试系统、方法和装置。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种测试系统,所述系统包括:发布服务器和执行服务器;
所述发布服务器,被配置为接收开发设备提交的第三方应用的测试版本的源代码;将所述源代码发布至所述执行服务器;
所述执行服务器,被配置为执行所述源代码;当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器;根据所述调用请求的处理情况采集仿真测试数据;
所述系统还包括:测试运维设备;
所述发布服务器,被配置为向所述测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理;
所述测试运维设备,被配置为将所述可视化编辑界面进行显示;获取对应于所述操作入口的操作指示;根据所述操作指示对所述配置文件进行编辑。
可选的,所述发布服务器,还被配置为从源代码库中选取一份测试版本的源代码,所述源代码库中包含至少一份测试版本的源代码;根据所述配置文件向所述执行服务器发送被选取的源代码的版本号;
所述执行服务器,还被配置为接收所述发布服务器发送的所述版本号;从所述发布服务器中获取与所述版本号对应的源代码。
可选的,所述发布服务器,还被配置为解析预存的makefile配置文件以调用tentakel脚本,所述tentakel脚本用于根据tentakel配置文件向所述执行服务器中运行的分布式版本控制系统Git客户端发送远程调用请求,所述远程调用请求中携带有所述被选取的源代码的版本号;
所述执行服务器,还被配置为通过所述Git客户端接收所述远程调用请求;通过所述Git客户端根据所述远程调用请求中携带的所述版本号,从所述发布服务器中获取与所述版本号对应的源代码。
可选的,所述发布服务器,还被配置为生成所述可视化编辑界面对应的超链接;将所述超链接添加至内容管理系统CMS中;
所述测试运维设备,还被配置为登录所述CMS;打开所述CMS中包含的所述超链接,并将所述可视化编辑界面进行显示。
可选的,所述发布服务器,还被配置为在所述执行服务器获取与所述版本号对应的源代码后,向所述执行服务器发送脚本调用请求;
所述执行服务器,还被配置为接收所述脚本调用请求;根据所述脚本调用请求执行预定脚本;其中,所述预定脚本用于执行重启服务进程和更新数据库两者中的至少一项,所述服务进程用于在重启后执行获取的所述源代码中的代码文件,所述数据库用于在更新后保存获取的所述源代码中的数据库文件。
可选的,所述仿真测试数据包括:所述调用请求的状态码、所述调用请求的响应格式、所述调用请求的响应时间中的至少一项。
根据本公开实施例的第二方面,提供了一种测试方法,所述方法包括:
从发布服务器中获取第三方应用的测试版本的源代码;
执行所述源代码;
当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器;
根据所述调用请求的处理情况采集仿真测试数据;
其中,所述发布服务器还被配置为向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
可选的,所述从发布服务器中获取第三方应用的测试版本的源代码,包括:
接收所述发布服务器发送版本号,所述版本号是所述发布服务器的源代码库中的一份测试版本的源代码的版本号,所述源代码库中包含至少一份测试版本的源代码;
从所述发布服务器中获取与所述版本号对应的源代码。
可选的,所述方法还包括:
接收所述发布服务器发送的脚本调用请求;
根据所述脚本调用请求执行预定脚本;
其中,所述预定脚本用于执行重启服务进程和更新数据库两者中的至少一项,所述服务进程用于在重启后执行获取的所述源代码中的代码文件,所述数据库用于在更新后保存获取的所述源代码中的数据库文件。
可选的,所述仿真测试数据包括:所述调用请求的状态码、所述调用请求的响应格式、所述调用请求的响应时间中的至少一项。
根据本公开实施例的第三方面,提供了一种测试方法,所述方法包括:
接收开发设备提交的第三方应用的测试版本的源代码;
将所述源代码发布至执行服务器,所述执行服务器用于执行所述源代码,当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器,并根据所述调用请求的处理情况采集仿真测试数据;
所述方法还包括:
向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
可选的,所述将所述源代码发布至执行服务器,包括:
从源代码库中选取一份测试版本的源代码,所述源代码库中包含至少一份测试版本的源代码;
根据所述配置文件向所述执行服务器发送被选取的源代码的版本号,所述执行服务器用于从发布服务器中获取与所述版本号对应的源代码。
可选的,所述根据预存的配置文件向所述执行服务器发送被选取的源代码的版本号,包括:
解析预存的makefile配置文件以调用tentakel脚本;
通过所述tentakel脚本根据tentakel配置文件向所述执行服务器发送所述被选取的源代码的版本号。
可选的,所述向测试运维设备提供可视化编辑界面,包括:
生成所述可视化编辑界面对应的超链接;
将所述超链接添加至内容管理系统CMS中,所述CMS用于在所述测试运维设备登录所述CMS时,向所述测试运维设备提供所述超链接。
根据本公开实施例的第四方面,提供了一种测试装置,所述装置包括:
代码获取模块,被配置为从发布服务器中获取第三方应用的测试版本的源代码;
代码执行模块,被配置为执行所述源代码;
结果发送模块,被配置为当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器;
数据采集模块,被配置为根据所述调用请求的处理情况采集仿真测试数据;
其中,所述发布服务器还被配置为向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
可选的,所述代码获取模块,包括:接收子模块和获取子模块;
所述接收子模块,被配置为接收所述发布服务器发送的版本号,所述版本号是所述发布服务器的源代码库中的一份测试版本的源代码的版本号,所述源代码库中包含至少一份测试版本的源代码;
所述获取子模块,被配置为从所述发布服务器中获取与所述版本号对应的源代码。
可选的,所述装置还包括:
请求接收模块,被配置为接收所述发布服务器发送的脚本调用请求;
脚本执行模块,被配置为根据所述脚本调用请求执行预定脚本;
其中,所述预定脚本用于执行重启服务进程和更新数据库两者中的至少一项,所述服务进程用于在重启后执行获取的所述源代码中的代码文件,所述数据库用于在更新后保存获取的所述源代码中的数据库文件。
可选的,所述仿真测试数据包括:所述调用请求的状态码、所述调用请求的响应格式、所述调用请求的响应时间中的至少一项。
根据本公开实施例的第五方面,提供了一种测试装置,所述装置包括:
代码接收模块,被配置为接收开发设备提交的第三方应用的测试版本的源代码;
代码发布模块,被配置为将所述源代码发布至执行服务器,所述执行服务器用于执行所述源代码,当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器,并根据所述调用请求的处理情况采集仿真测试数据;
所述装置还包括:
界面提供模块,被配置为向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
可选的,所述代码发布模块,包括:选取子模块和发送子模块;
所述选取子模块,被配置为从源代码库中选取一份测试版本的源代码,所述源代码库中包含至少一份测试版本的源代码;
所述发送子模块,被配置为根据预存的配置文件向所述执行服务器发送被选取的源代码的版本号,所述执行服务器用于从发布服务器中获取与所述版本号对应的源代码。
可选的,所述发送子模块,还被配置为解析预存的makefile配置文件以调用tentakel脚本;通过所述tentakel脚本根据tentakel配置文件向所述执行服务器发送所述被选取的源代码的版本号。
可选的,所述界面提供模块,包括:生成子模块和添加子模块;
所述生成子模块,被配置为生成所述可视化编辑界面对应的超链接;
所述添加子模块,被配置为将所述超链接添加至内容管理系统CMS中,所述CMS用于在所述测试运维设备登录所述CMS时,向所述测试运维设备提供所述超链接。
根据本公开实施例的第六方面,提供了一种测试装置,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
从发布服务器中获取第三方应用的测试版本的源代码;
执行所述源代码;
当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器;
根据所述调用请求的处理情况采集仿真测试数据;
其中,所述发布服务器还被配置为向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
根据本公开实施例的第七方面,提供了一种测试装置,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
接收开发设备提交的第三方应用的测试版本的源代码;
将所述源代码发布至执行服务器,所述执行服务器用于执行所述源代码,当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器,并根据所述调用请求的处理情况采集仿真测试数据;
所述处理器还被配置为:
向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
本公开实施例提供的技术方案可以包括以下有益效果:
通过发布服务器将第三方应用的测试版本的源代码发布至执行服务器,并通过执行服务器将上述源代码的执行结果发送给开放平台服务器,以实现对第三方应用的测试版本进行仿真测试,并在仿真测试的过程中,通过执行服务器根据调用请求的处理情况采集仿真测试数据;解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的处理流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种实施环境的结构示意图;
图2是根据一示例性实施例示出的另一种实施环境的结构示意图;
图3是根据一示例性实施例示出的一种测试系统的结构方框图;
图4A是根据另一示例性实施例示出的一种测试系统的结构方框图;
图4B是根据一例子示出的一种测试系统的结构方框图;
图5是根据一示例性实施例示出的一种测试方法的流程图;
图6是根据另一示例性实施例示出的一种测试方法的流程图;
图7A是根据再一示例性实施例示出的一种测试方法的流程图;
图7B是根据再一示例性实施例示出的一种测试方法中步骤703的流程图;
图8是根据一示例性实施例示出的一种测试装置的框图;
图9是根据另一示例性实施例示出的一种测试装置的框图;
图10是根据一示例性实施例示出的一种测试系统的框图;
图11是根据一示例性实施例示出的一种装置的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种实施环境的结构示意图。该实施环境可以包括:开发设备110、发布服务器120、执行服务器130和开放平台服务器140。
开发设备110是第三方开发商的开发人员用于编写第三方应用的测试版本的源代码的设备。
开发设备110与发布服务器120之间可通过有线网络或者无线网络相连。开发设备110可通过上述网络连接将开发人员编写的源代码提交至发布服务器120中。发布服务器120用于接收并存储开发设备110提交的源代码。
发布服务器120与执行服务器130之间可通过有线网络或者无线网络相连。发布服务器120可通过上述网络连接将自身存储的源代码发布至执行服务器130中。该发布至执行服务器130的源代码可以是最新版本的源代码,也可以是某个旧版本的源代码。执行服务器130用于接收并执行发布服务器120发布的源代码。
执行服务器130与开放平台服务器140之间可通过有线网络或者无线网络相连。开放平台服务器140是网络运营商提供的服务器,用于为第三方开发商提供开放平台,供第三方开发商开发的第三方应用接入。
如图1所示,开放平台服务器140可通过有线网络或者无线网络与测试终端150相连。该测试终端150中运行有第三方应用的测试版本的客户端程序,以此实现对第三方应用的测试版本进行仿真测试。在仿真测试过程中,测试终端150中运行的客户端程序可以向开放平台服务器140发送服务请求;相应的,开放平台服务器140根据上述服务请求回调执行服务器130的服务接口,以实现为上述客户端程序提供服务。
在一种典型的应用场景中,开放平台可以是公众平台;相应的,第三方应用可以是公众号应用。其中,公众平台是指用于与公众号的关注者进行线上线下互动的开放平台,如微信公众平台、易信公众平台、来往公众平台、人人网公众平台等。公众号是公众号运营者在公众平台上申请的应用账号。公众号运营者在公众平台上申请公众号后,公众平台上的用户便可关注该公众号,或者与该公众号成为好友关系(也即成为公众号的关注者)。之后,公众号的关注者和公众号运营者可以以公众平台为媒介,进行文本、图片、语音、视频等全方位的沟通和互动。比如,公众号运营者可通过公众平台向关注者发送消息、接收关注者发送的消息、获取关注者的地理位置信息、向关注者提供各类服务等,形成一种主流的线上线下互动方式。
结合上述实施环境,当上述实施环境为公众号运营者构建的、用于对公众号应用进行仿真测试的仿真测试环境时,公众号运营者可以在公众平台上申请一个用于仿真测试的应用账号(后称为“仿真测试账号”),并将该仿真测试账号作为公众号应用的测试版本的应用账号。测试运维人员使用测试终端150关注该仿真测试账号后,便可对该公众号应用的测试版本进行功能预览和测试。
可选的,该仿真测试环境还可以包括:测试运维设备160。测试运维设备160与发布服务器120之间可通过有线网络或者无线网络相连。测试运维设备160是测试运维人员用于控制发布服务器120以对第三方应用的源代码版本进行管理的设备。
另外,如图2所示,在一种可能的实施方式中,执行服务器130可以包括:web(网络)服务器130a和DB(Database,数据库)服务器130b。其中,web服务器130a和DB服务器130b分别通过有线网络或者无线网络与发布服务器120相连,web服务器130a和DB服务器130b之间也通过有线网络或者无线网络相连,web服务器130a与开放平台服务器140之间也通过有线网络或者无线网络相连。发布服务器120用于将测试版本的源代码中的代码文件发布至web服务器130a,web服务器130a用于执行上述代码文件。发布服务器120还用于将测试版本的源代码中的数据库文件发布至DB服务器130b,DB服务器130b用于存储上述数据库文件。
另外,在一种可能的实施方式中,第三方应用的仿真测试环境11和正式运营环境12如图2所示。在正式运营环境12中,包括:开发设备110、发布服务器120、执行服务器130(可包括web服务器130a和DB服务器130b)、开放平台服务器140和用户终端170。正式运营环境12中各设备的连接关系与仿真测试环境11中各设备的连接关系相同,此处不再赘述。在正式运营环境12中,发布服务器120将第三方应用的正式版本的源代码发布至执行服务器130;执行服务器130用于接收并执行上述正式版本的源代码,并在接收到开放平台服务器140发送的调用请求时,根据调用请求将上述正式版本的源代码的执行结果发送给开放平台服务器140。另外,仿真测试环境11和正式运营环境12中的相同设备,可以是一台设备,也可以是两台互相独立的设备,本公开对此不作限定。
图3是根据一示例性实施例示出的一种测试系统的结构方框图,本实施例以该测试系统用于如图1或图2所示实施环境中进行举例说明。该测试系统可以包括:发布服务器320和执行服务器330。
发布服务器320,被配置为接收开发设备提交的第三方应用的测试版本的源代码;将上述源代码发布至执行服务器330。
执行服务器330,被配置为执行上述源代码;当接收到开放平台服务器发送的调用请求时,根据调用请求将源代码的执行结果发送给开放平台服务器;并根据调用请求的处理情况采集仿真测试数据。
综上所述,本实施例提供的测试系统,通过发布服务器将第三方应用的测试版本的源代码发布至执行服务器,并通过执行服务器将上述源代码的执行结果发送给开放平台服务器,以实现对第三方应用的测试版本进行仿真测试,并在仿真测试的过程中,通过执行服务器根据调用请求的处理情况采集仿真测试数据;解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的处理流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
图4A是根据另一示例性实施例示出的一种测试系统的结构方框图,本实施例以该测试系统用于如图1或图2所示实施环境中进行举例说明。该测试系统可以包括:发布服务器420和执行服务器430。
发布服务器420,被配置为接收开发设备410提交的第三方应用的测试版本的源代码;将上述源代码发布至执行服务器430。
开发设备410是第三方开发商的开发人员用于编写第三方应用的测试版本的源代码的设备。在本实施例中,对开发设备410的数量不作具体限定。开发人员可通过开发设备410将编写的源代码提交至发布服务器420中。相应的,发布服务器420被配置为接收并存储开发设备410提交的源代码。
发布服务器420将自身存储的源代码发布至执行服务器430中。比如,发布服务器420可将最新版本的源代码发布至执行服务器430中;或者,发布服务器420也可将某个旧版本的源代码发布至执行服务器430中,也即回滚。
可选的,源代码可包括代码文件和数据库文件。相应的,执行服务器430可包括web服务器430a和DB服务器430b。发布服务器420用于将代码文件发布至web服务器430a,还用于将数据库文件发布至DB服务器430b。当然,在其它可能的实施例中,执行服务器430还可包括用于实现其它功能的服务器,如用于实现搜索功能的search(搜索)服务器,对此本实施例不作具体限定。
需要说明的一点是:在本实施例中,仅按照不同的功能将执行服务器430划分为web服务器430a、DB服务器430b、search服务器等。对于一台服务器来说,其可仅实现一种功能,或者也可实现两种或者两种以上功能。换句话说,上述web服务器430a、DB服务器430b、search服务器和用于实现其它功能的服务器可分别为独立的服务器;或者,上述web服务器430a、DB服务器430b、search服务器和用于实现其它功能的服务器中的任意两种或者两种以上可集成为一台服务器,对此本实施例不作具体限定。
可选的,发布服务器420将源代码发布至执行服务器430的过程为:发布服务器420还被配置为从源代码库中选取一份测试版本的源代码,该源代码库中包含至少一份测试版本的源代码,根据预存的配置文件向执行服务器430发送被选取的源代码的版本号;相应的,执行服务器430被配置为接收发布服务器420发送的版本号,从发布服务器420中获取与该版本号对应的源代码。其中,被选取的源代码可以是最新版本的源代码,也可以是某个旧版本的源代码。发布服务器420中存储有各个版本的源代码,不同版本的源代码以版本号进行区分。比如,当发布服务器420需要将最新版本的源代码发布至执行服务器430以对该最新版本的源代码进行功能预览和测试时,发布服务器420可获取该最新版本的源代码的版本号,然后将该版本号发送给执行服务器430,执行服务器430接收到发布服务器420发送的版本号后,根据该版本号从发布服务器420中获取上述最新版本的源代码。
在一种可能的实施方式中,发布服务器420,还被配置为解析预存的makefile配置文件以调用tentakel脚本,该tentakel脚本用于根据tentakel配置文件向执行服务器430中运行的Git(分布式版本控制系统)客户端发送远程调用请求,该远程调用请求中携带有被选取的源代码的版本号。相应的,执行服务器430,还被配置为通过Git客户端接收远程调用请求;通过Git客户端根据该远程调用请求中携带的版本号,从发布服务器420中获取与版本号对应的源代码。
在本实施例中,可将Git系统集成于本实施例提供的测试系统中,以实现对源代码版本进行更为灵活高效的管理,包括源代码发布、回滚等操作。发布服务器420中可运行有Git服务端,该Git服务端用于存储和管理各个版本的源代码;相应的,执行服务器430中可运行有Git客户端。Git服务端向Git客户端发送携带有版本号的远程调用请求,Git客户端接收到上述远程调用请求后,从Git服务端中获取与版本号对应的源代码。
另外,还可通过make工具和tentakel工具的配合,实现将源代码从发布服务器420发布至执行服务器430中。其中,make工具用于解析makefile配置文件中的指令,makefile配置文件中包含有用于调用tentakel脚本的指令。tentakel脚本在被调用后开始执行,tentakel脚本用于实现将源代码发布至执行服务器430中。当执行服务器430包括web服务器430a、DB服务器430b、search服务器等不同服务器时,tentakel配置文件中可配置有不同服务器的角色关系,该角色关系包括不同服务器的类型和不同服务器之间的依赖关系等,tentakel脚本可根据tentakel配置文件决策将不同的源代码发布至不同的服务器中。比如,对于版本号为“AAA”的源代码,假设tentakel脚本根据tentakel配置文件中维护的角色关系,确定将该版本号为“AAA”的源代码发送至IP(Internet Protocol,互联网协议)地址为“BBB”的web服务器中,则tentakel脚本向该IP地址为“BBB”的web服务器中的Git客户端发送携带有“AAA”的远程调用请求,以使得Git客户端从Git服务端中获取版本号为“AAA”的源代码。
可选的,发布服务器420与执行服务器430之间可通过SSH(Secure Shell,安全外壳)协议进行通信,利用SSH协议可有效防止远程管理过程中的信息泄露问题,提高安全性。
另外,在执行服务器430从发布服务器420中获取与版本号对应的源代码后,发布服务器420还被配置为向执行服务器430发送脚本调用请求。相应的,执行服务器430还被配置为接收脚本调用请求,并根据该脚本调用请求执行预定脚本。其中,预定脚本用于执行重启服务进程和更新数据库两者中的至少一项。服务进程用于在重启后执行获取的源代码中的代码文件,数据库用于在更新后保存获取的源代码中的数据库文件。
执行服务器430,还被配置为执行上述源代码;当接收到开放平台服务器440发送的调用请求时,根据调用请求将源代码的执行结果发送给开放平台服务器440;并根据调用请求的处理情况采集仿真测试数据。
测试运维人员或者少量的测试用户可使用测试终端450下载并安装第三方应用的测试版本的客户端程序,在该客户端程序的运行过程中,可对第三方应用的测试版本进行功能预览和调试。在测试过程中,客户端程序可以向开放平台服务器440发送服务请求;相应的,开放平台服务器440接收到服务请求后,根据该服务请求回调执行服务器430的服务接口,也即向执行服务器430发送调用请求。执行服务器430执行源代码处理该调用请求,并向开放平台服务器440发送调用响应,该调用响应中携带有源代码的执行结果。可选的,执行服务器430可将执行结果封装为JSON格式(JavaScript Object Notation,一种轻量级的数据交换格式),并将完成格式封装后的执行结果发送给开放平台服务器440,这有利于提高数据的传输和解析效率。
另外,执行服务器430还需要根据调用请求的处理情况采集仿真测试数据,该仿真测试数据包括:调用请求的状态码、调用请求的响应格式、调用请求的响应时间中的至少一项。比如,执行服务器430与开放平台服务器440之间通常通过HTTP(Hypertext TransferProtocol,超文本传输协议)进行通信,当开放平台服务器440发送的HTTP调用请求的状态码为200或304时,表示该HTTP调用请求为正常请求;否则,说明执行服务器430服务故障。当HTTP调用请求的状态码为200或304时,继续检测该HTTP调用请求的响应格式是否符合预定响应格式;若符合,则说明执行服务器430服务正常;否则,说明执行服务器430服务故障。可选的,执行服务器430还可获取HTTP调用请求的响应时间,以对服务性能进行监测。
除上述通过调用请求的接收和响应角度对第三方应用的测试版本的服务性能进行测试之外,测试运维人员还可根据第三方应用的测试版本的客户端程序在测试终端450上的运行状况,对第三方应用的测试版本进行测试。比如,检测显示界面是否与预设显示界面相同、检测各个控件的功能是否与预设功能相同、检测客户端程序在运行过程中是否发生崩溃,等等。
在本实施例中,通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的工作流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
可选的,如图4A所示,本实施例提供的测试系统还包括:测试运维设备460。
发布服务器420,还被配置为向测试运维设备460提供可视化编辑界面,该可视化编辑界面中包含有用于对配置文件进行可视化编辑的操作入口。测试运维设备460,被配置为将可视化编辑界面进行显示;获取对应于操作入口的操作指示;根据操作指示对配置文件进行编辑。
其中,配置文件是指上述发布服务器420中存储的、用于实现对源代码版本进行管理(包括源代码发布、回滚等操作)的文件。如上述涉及的makefile配置文件、tentakel配置文件等。可视化编辑界面可以是web界面,该web界面中包含有用于对配置文件进行可视化编辑的操作入口。测试运维人员可根据测试运维设备460中显示的web界面,对配置文件进行可视化编辑。比如,对makefile配置文件中包含的指令进行可视化编辑,或者对tentakel配置文件中包含的不同服务器的角色关系进行可视化编辑,等等。
可选的,发布服务器420还被配置为生成可视化编辑界面对应的超链接,并将该超链接添加至CMS(Content Management System,内容管理系统)中。测试运维设备460还被配置为登录CMS;打开CMS中包含的超链接,并将可视化编辑界面进行显示。
其中,CMS是用于对企业内部资源进行统一管理的系统。具有登录权限的人员可通过登录账号和密码登录至CMS,以获取开发、测试或运维等工作时所需的各类资源。在本实施例中,通过将可视化编辑界面对应的超链接添加至CMS中,可实现向具有CMS登录权限的人员开放配置文件的查看和编辑权限,有利于对配置文件进行高质量的管理。
综上所述,本实施例提供的测试系统,通过发布服务器将第三方应用的测试版本的源代码发布至执行服务器,并通过执行服务器将上述源代码的执行结果发送给开放平台服务器,以实现对第三方应用的测试版本进行仿真测试,并在仿真测试的过程中,通过执行服务器根据调用请求的处理情况采集仿真测试数据;解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的处理流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
另外,本实施例提供的测试系统,还通过发布服务器向测试运维设备提供可视化编辑界面,实现了对配置文件进行可视化编辑,达到了简化开发流程和提升开发效率的效果。
在一个例子中,可构建如图4B所示的仿真测试环境,对公众号应用的测试版本进行发布前的仿真测试。其中,该仿真测试环境包括:开发设备41、发布服务器42、执行服务器43(可包括web服务器43a和DB服务器43b)、公众平台服务器44、测试终端45和测试运维设备46。发布服务器42用于接收并存储开发设备提交的公众号应用的测试版本的源代码,并将该源代码发布至执行服务器43中。执行服务器43用于执行上述源代码。
公众号运营者首先在公众平台上申请注册一个用于仿真测试的应用账号(后称为“仿真测试账号”)。在申请注册的过程中,向公众平台服务器44提交包含有web服务器43a的域名在内的申请资料,公众平台服务器44验证申请资料通过后,向公众号运营者反馈仿真测试账号。公众号运营者获得仿真测试账号后,将该仿真测试账号作为公众号应用的测试版本的公众号。
之后,测试运维人员和/或少量的测试用户使用测试终端45关注该仿真测试账号,便可对该公众号应用的测试版本进行功能预览和测试。在测试过程中,公众平台服务器44根据web服务器43a的域名向web服务器43a发送调用请求,web服务器43a根据该调用请求将上述源代码的执行结果反馈给公众平台服务器44,并根据调用请求的处理情况采集仿真测试数据,以实现对公众号应用的测试版本进行仿真测试。
需要说明的一点是:对于同一个公众号应用来说,正式运营版本所使用的正式账号和测试版本所使用的仿真测试账号是两个不同的公众号,但正式账号和仿真测试账号所具备的功能和权限完全相同,以此达到仿真测试的目的。
图5是根据一示例性实施例示出的一种测试方法的流程图,本实施例以该测试方法用于图1或图2所示实施环境中的执行服务器中进行举例说明。该测试方法可以包括:
在步骤502中,从发布服务器中获取第三方应用的测试版本的源代码。
在步骤504中,执行源代码。
在步骤506中,当接收到开放平台服务器发送的调用请求时,根据调用请求将源代码的执行结果发送给开放平台服务器。
在步骤508中,根据调用请求的处理情况采集仿真测试数据。
综上所述,本实施例提供的测试方法,通过执行服务器执行从发布服务器中获取的第三方应用的测试版本的源代码,并将上述源代码的执行结果发送给开放平台服务器,以实现对第三方应用的测试版本进行仿真测试,并在仿真测试的过程中,通过执行服务器根据调用请求的处理情况采集仿真测试数据;解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的处理流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
图6是根据另一示例性实施例示出的一种测试方法的流程图,本实施例以该测试方法用于图1或图2所示实施环境中的发布服务器中进行举例说明。该测试方法可以包括:
在步骤602中,接收开发设备提交的第三方应用的测试版本的源代码。
在步骤604中,将源代码发布至执行服务器,该执行服务器用于执行源代码,当接收到开放平台服务器发送的调用请求时,根据调用请求将源代码的执行结果发送给开放平台服务器,并根据调用请求的处理情况采集仿真测试数据。
综上所述,本实施例提供的测试方法,通过发布服务器将第三方应用的测试版本的源代码发布至执行服务器,并通过执行服务器将上述源代码的执行结果发送给开放平台服务器,以实现对第三方应用的测试版本进行仿真测试,并在仿真测试的过程中,通过执行服务器根据调用请求的处理情况采集仿真测试数据;解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的处理流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
图7A是根据再一示例性实施例示出的一种测试方法的流程图,本实施例以该测试方法用于图1或图2所示实施环境中进行举例说明。该测试方法可以包括:
在步骤701中,发布服务器接收开发设备提交的第三方应用的测试版本的源代码。
开发设备是第三方开发商的开发人员用于编写第三方应用的测试版本的源代码的设备。开发人员可通过开发设备将编写的源代码提交至发布服务器中。相应的,发布服务器接收并存储开发设备提交的源代码。
在步骤702中,发布服务器从源代码库中选取一份测试版本的源代码。
其中,源代码库中包含至少一份测试版本的源代码。发布服务器从源代码库中选取一份测试版本的源代码,并将其发布至执行服务器中,以实现对第三方应用进行测试。比如,发布服务器可将最新版本的源代码发布至执行服务器中;或者,发布服务器也可将某个旧版本的源代码发布至执行服务器中,也即回滚。
在步骤703中,发布服务器根据预存的配置文件向执行服务器发送被选取的源代码的版本号。
发布服务器中存储有各个版本的源代码,不同版本的源代码以版本号进行区分。发布服务器选取需要发布至执行服务器的源代码后,获取该源代码的版本号,并向执行服务器发送上述版本号。相应的,执行服务器接收发布服务器发送的版本号。比如,当发布服务器需要将最新版本的源代码发布至执行服务器以对该最新版本的源代码进行功能预览和测试时,发布服务器可获取该最新版本的源代码的版本号,然后将该版本号发送给执行服务器。
可选的,源代码可包括代码文件和数据库文件。相应的,执行服务器可包括web服务器和DB服务器。发布服务器将代码文件发布至web服务器;和/或,将数据库文件发布至DB服务器。当然,在其它可能的实施例中,执行服务器还可包括用于实现其它功能的服务器,如用于实现搜索功能的search服务器,对此本实施例不作具体限定。
需要说明的一点是:在本实施例中,仅按照不同的功能将执行服务器划分为web服务器、DB服务器、search服务器等。对于一台服务器来说,其可仅实现一种功能,或者也可实现两种或者两种以上功能。换句话说,上述web服务器、DB服务器、search服务器和用于实现其它功能的服务器可分别为独立的服务器;或者,上述web服务器、DB服务器、search服务器和用于实现其它功能的服务器中的任意两种或者两种以上可集成为一台服务器,对此本实施例不作具体限定。
在一种可能的实施方式中,如图7B所示,步骤703可以包括如下两个子步骤:
在步骤703a中,解析预存的makefile配置文件以调用tentakel脚本。
在步骤703b中,通过tentakel脚本根据tentakel配置文件向执行服务器发送被选取的源代码的版本号。
通过make工具和tentakel工具的配合,实现将源代码从发布服务器发布至执行服务器中。其中,make工具用于解析makefile配置文件中的指令,makefile配置文件中包含有用于调用tentakel脚本的指令。tentakel脚本在被调用后开始执行,tentakel脚本用于实现将源代码发布至执行服务器中。当执行服务器包括web服务器、DB服务器、search服务器等不同服务器时,tentakel配置文件中可配置有不同服务器的角色关系,该角色关系包括不同服务器的类型和不同服务器之间的依赖关系等,tentakel脚本可根据tentakel配置文件决策将不同的源代码发布至不同的服务器中。比如,对于版本号为“AAA”的源代码,假设tentakel脚本根据tentakel配置文件中维护的角色关系,确定将该版本号为“AAA”的源代码发送至IP地址为“BBB”的web服务器中,则tentakel脚本向该IP地址为“BBB”的web服务器中的Git客户端发送携带有“AAA”的远程调用请求,以使得Git客户端从Git服务端中获取版本号为“AAA”的源代码。
另外,还可将Git系统应用于本实施例中,以实现对源代码版本进行更为灵活高效的管理,包括源代码发布、回滚等操作。发布服务器中可运行有Git服务端,该Git服务端用于存储和管理各个版本的源代码;相应的,执行服务器430中可运行有Git客户端。Git服务端向Git客户端发送携带有版本号的远程调用请求,Git客户端接收到上述远程调用请求后,从Git服务端中获取与版本号对应的源代码。
可选的,发布服务器与执行服务器之间可通过SSH协议进行通信,利用SSH协议可有效防止远程管理过程中的信息泄露问题,提高安全性。
在步骤704中,执行服务器从发布服务器中获取与版本号对应的源代码。
执行服务器接收到远程调用请求后,从该远程调用请求中读取版本号,进而从发布服务器中获取与该版本号对应的源代码。
在步骤705中,发布服务器向执行服务器发送脚本调用请求。
在执行服务器从发布服务器中获取与版本号对应的源代码后,发布服务器向执行服务器发送脚本调用请求,该脚本调用请求用于触发执行服务器调用并执行预定脚本。
相应的,执行服务器接收发布服务器发送的脚本调用请求。
在步骤706中,执行服务器根据脚本调用请求执行预定脚本。
其中,预定脚本用于执行重启服务进程和更新数据库两者中的至少一项。服务进程用于在重启后执行获取的源代码中的代码文件,数据库用于在更新后保存获取的源代码中的数据库文件。
在步骤707中,执行服务器执行源代码。
当源代码包括代码文件时,执行服务器执行该代码文件。当源代码包括数据库文件时,执行服务器读取该数据库文件中的数据,并将读取的数据存储至数据库中。
在步骤708中,当接收到开放平台服务器发送的调用请求时,执行服务器根据调用请求将源代码的执行结果发送给开放平台服务器。
测试运维人员或者少量的测试用户可使用测试终端下载并安装第三方应用的测试版本的客户端程序,在该客户端程序的运行过程中,可对第三方应用的测试版本进行功能预览和调试。在测试过程中,客户端程序可以向开放平台服务器发送服务请求;相应的,开放平台服务器接收到服务请求后,根据该服务请求回调执行服务器的服务接口,也即向执行服务器发送调用请求。执行服务器执行源代码处理该调用请求,并向开放平台服务器发送调用响应,该调用响应中携带有源代码的执行结果。
可选的,执行服务器可将执行结果封装为JSON格式,并将完成格式封装后的执行结果发送给开放平台服务器,这有利于提高数据的传输和解析效率。
在步骤709中,执行服务器根据调用请求的处理情况采集仿真测试数据。
其中,仿真测试数据包括:调用请求的状态码、调用请求的响应格式、调用请求的响应时间中的至少一项。比如,执行服务器与开放平台服务器之间通常通过HTTP进行通信,当开放平台服务器发送的HTTP调用请求的状态码为200或304时,表示该HTTP调用请求为正常请求;否则,说明执行服务器服务故障。当HTTP调用请求的状态码为200或304时,继续检测该HTTP调用请求的响应格式是否符合预定响应格式;若符合,则说明执行服务器服务正常;否则,说明执行服务器服务故障。可选的,执行服务器还可获取HTTP调用请求的响应时间,以对服务性能进行监测。
除上述通过调用请求的接收和响应角度对第三方应用的测试版本的服务性能进行测试之外,测试运维人员还可根据第三方应用的测试版本的客户端程序在测试终端上的运行状况,对第三方应用的测试版本进行测试。比如,检测显示界面是否与预设显示界面相同、检测各个控件的功能是否与预设功能相同、检测客户端程序在运行过程中是否发生崩溃,等等。
在本实施例中,通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的工作流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
可选的,在本实施例提供的测试方法中,发布服务器还可向测试运维设备提供可视化编辑界面,该可视化编辑界面中包含有用于对配置文件进行可视化编辑的操作入口。相应的,测试运维设备将可视化编辑界面进行显示,获取对应于操作入口的操作指示,并根据操作指示对配置文件进行编辑。
其中,配置文件是指上述发布服务器中存储的、用于实现对源代码版本进行管理(包括源代码发布、回滚等操作)的文件。如上述涉及的makefile配置文件、tentakel配置文件等。可视化编辑界面可以是web界面,该web界面中包含有用于对配置文件进行可视化编辑的操作入口。测试运维人员可根据测试运维设备中显示的web界面,对配置文件进行可视化编辑。比如,对makefile配置文件中包含的指令进行可视化编辑,或者对tentakel配置文件中包含的不同服务器的角色关系进行可视化编辑,等等。
可选的,发布服务器还可生成可视化编辑界面对应的超链接,并将该超链接添加至CMS中。其中,CMS用于在测试运维设备登录CMS时,向测试运维设备提供超链接,测试运维设备可打开超链接并将可视化编辑界面进行显示。CMS是用于对企业内部资源进行统一管理的系统。具有登录权限的人员可通过登录账号和密码登录至CMS,以获取开发、测试或运维等工作时所需的各类资源。在本实施例中,通过将可视化编辑界面对应的超链接添加至CMS中,可实现向具有CMS登录权限的人员开放配置文件的查看和编辑权限,有利于对配置文件进行高质量的管理。
综上所述,本实施例提供的测试方法,通过发布服务器将第三方应用的测试版本的源代码发布至执行服务器,并通过执行服务器将上述源代码的执行结果发送给开放平台服务器,以实现对第三方应用的测试版本进行仿真测试,并在仿真测试的过程中,通过执行服务器根据调用请求的处理情况采集仿真测试数据;解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的处理流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
另外,本实施例提供的测试方法,还通过发布服务器向测试运维设备提供可视化编辑界面,实现了对配置文件进行可视化编辑,达到了简化开发流程和提升开发效率的效果。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图8是根据一示例性实施例示出的一种测试装置的框图,该测试装置可以通过软件、硬件或者两者的结合实现成为图1或图2所示实施环境中的执行服务器的部分或者全部。该测试装置可以包括:代码获取模块810、代码执行模块820、结果发送模块830和数据采集模块840。
代码获取模块810,被配置为从发布服务器中获取第三方应用的测试版本的源代码。
代码执行模块820,被配置为执行所述源代码。
结果发送模块830,被配置为当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器。
数据采集模块840,被配置为根据所述调用请求的处理情况采集仿真测试数据。
综上所述,本实施例提供的测试装置,通过执行服务器执行从发布服务器中获取的第三方应用的测试版本的源代码,并将上述源代码的执行结果发送给开放平台服务器,以实现对第三方应用的测试版本进行仿真测试,并在仿真测试的过程中,通过执行服务器根据调用请求的处理情况采集仿真测试数据;解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的处理流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
图9是根据另一示例性实施例示出的一种测试装置的框图,该测试装置可以通过软件、硬件或者两者的结合实现成为图1或图2所示实施环境中的发布服务器的部分或者全部。该测试装置可以包括:代码接收模块910和代码发布模块920。
代码接收模块910,被配置为接收开发设备提交的第三方应用的测试版本的源代码。
代码发布模块920,被配置为将所述源代码发布至执行服务器,所述执行服务器用于执行所述源代码,当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器,并根据所述调用请求的处理情况采集仿真测试数据。
综上所述,本实施例提供的测试装置,通过发布服务器将第三方应用的测试版本的源代码发布至执行服务器,并通过执行服务器将上述源代码的执行结果发送给开放平台服务器,以实现对第三方应用的测试版本进行仿真测试,并在仿真测试的过程中,通过执行服务器根据调用请求的处理情况采集仿真测试数据;解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的处理流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
图10是根据一示例性实施例示出的一种测试系统的框图,本实施例以该测试系统应用于图1所示仿真测试环境中进行举例说明。该测试系统可以包括:执行服务器800和发布服务器900。其中:
执行服务器800可以包括测试装置,该测试装置可以通过软件、硬件或者两者的结合实现成为执行服务器800的部分或者全部。该测试装置可以包括:代码获取模块810、代码执行模块820、结果发送模块830和数据采集模块840。
代码获取模块810,被配置为从发布服务器中获取第三方应用的测试版本的源代码。
可选的,所述代码获取模块810,包括:接收子模块810a和获取子模块810b。
所述接收子模块810a,被配置为接收所述发布服务器发送的版本号,所述版本号是所述发布服务器的源代码库中的一份测试版本的源代码的版本号,所述源代码库中包含至少一份测试版本的源代码。
所述获取子模块810b,被配置为从所述发布服务器中获取与所述版本号对应的源代码。
代码执行模块820,被配置为执行所述源代码。
结果发送模块830,被配置为当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器。
数据采集模块840,被配置为根据所述调用请求的处理情况采集仿真测试数据。
可选的,所述仿真测试数据包括:所述调用请求的状态码、所述调用请求的响应格式、所述调用请求的响应时间中的至少一项。
可选的,所述装置还包括:请求接收模块812和脚本执行模块814。
请求接收模块812,被配置为接收所述发布服务器发送的脚本调用请求。
脚本执行模块814,被配置为根据所述脚本调用请求执行预定脚本。
其中,所述预定脚本用于重启服务进程和更新数据库中的至少一项,所述服务进程用于在重启后执行获取的所述源代码中的代码文件,所述数据库用于在更新后保存获取的所述源代码中的数据库文件。
发布服务器900可以包括测试装置,该测试装置可以通过软件、硬件或者两者的结合实现成为发布服务器900的部分或者全部。该测试装置可以包括:代码接收模块910和代码发布模块920。
代码接收模块910,被配置为接收开发设备提交的第三方应用的测试版本的源代码。
代码发布模块920,被配置为将所述源代码发布至执行服务器,所述执行服务器用于执行所述源代码,当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器,并根据所述调用请求的处理情况采集仿真测试数据。
可选的,所述代码发布模块920,包括:选取子模块920a和发送子模块920b。
所述选取子模块920a,被配置为从源代码库中选取一份测试版本的源代码,所述源代码库中包含至少一份测试版本的源代码。
所述发送子模块920b,被配置为根据预存的配置文件向所述执行服务器发送被选取的源代码的版本号,所述执行服务器用于从所述发布服务器中获取与所述版本号对应的源代码。
在一种可能的实施方式中,所述发送子模块920b,还被配置为解析预存的makefile配置文件以调用tentakel脚本;通过所述tentakel脚本根据tentakel配置文件向所述执行服务器发送所述被选取的源代码的版本号。
可选的,所述装置还包括:界面提供模块930
界面提供模块930,被配置为向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对所述配置文件进行可视化编辑的操作入口。
可选的,所述界面提供模块930,包括:生成子模块930a和添加子模块930b。
所述生成子模块930a,被配置为生成所述可视化编辑界面对应的超链接。
所述添加子模块930b,被配置为将所述超链接添加至内容管理系统CMS中,所述CMS用于在所述测试运维设备登录所述CMS时,向所述测试运维设备提供所述超链接。
可选的,所述装置还包括:请求发送模块922。
所述请求发送模块922,用于在所述执行服务器获取与所述版本号对应的源代码后,向所述执行服务器发送脚本调用请求,所述脚本调用请求用于触发所述执行服务器执行预定脚本。
综上所述,本实施例提供的测试系统,通过发布服务器将第三方应用的测试版本的源代码发布至执行服务器,并通过执行服务器将上述源代码的执行结果发送给开放平台服务器,以实现对第三方应用的测试版本进行仿真测试,并在仿真测试的过程中,通过执行服务器根据调用请求的处理情况采集仿真测试数据;解决了相关技术存在的第三方应用在正式发布前无法进行全面的测试,而导致在正式发布后的运营过程中存在较多问题和故障的问题;通过为第三方应用的测试版本构建仿真测试环境,模拟正式运营环境下的处理流程对该测试版本进行仿真测试,对该测试版本的功能实现了所见即所得的预览。另外,通过在正式发布前对该测试版本进行真实而又完整的测试,可以提早发现问题以便及时修正,避免或减少了正式发布后所出现的问题和故障。
另外,本实施例提供的测试系统,还通过发布服务器向测试运维设备提供可视化编辑界面,实现了对配置文件进行可视化编辑,达到了简化开发流程和提升开发效率的效果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种用于对第三方应用的测试版本进行仿真测试的装置1100的框图。
例如,装置1100可以被提供为一服务器。该服务器可以是图1所示仿真测试环境中的执行服务器或者发布服务器。
参照图11,装置1100包括处理组件1122,其进一步包括一个或多个处理器,以及由存储器1132所代表的存储器资源,用于存储可由处理部件1122执行的指令,例如应用程序。存储器1132中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1122被配置为执行指令。
当装置1100被提供为图1所示实施环境中的执行服务器时,上述处理组件1122用以执行上述图5或图7A所示实施例提供的执行服务器侧的测试方法。
当装置1100被提供为图1所示实施环境中的发布服务器时,上述处理组件1122用以执行上述图6或图7A所示实施例提供的发布服务器侧的测试方法。
装置1100还可以包括一个电源组件1126被配置为执行装置1100的电源管理,一个有线或无线网络接口1150被配置为将装置1100连接到网络,和一个输入输出(I/O)接口1158。装置1100可以操作基于存储在存储器1132的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (24)

1.一种测试系统,其特征在于,所述系统包括:发布服务器和执行服务器;
所述发布服务器,被配置为接收开发设备提交的第三方应用的测试版本的源代码;将所述源代码发布至所述执行服务器;
所述执行服务器,被配置为执行所述源代码;当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器;根据所述调用请求的处理情况采集仿真测试数据;
所述系统还包括:测试运维设备;
所述发布服务器,被配置为向所述测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理;
所述测试运维设备,被配置为将所述可视化编辑界面进行显示;获取对应于所述操作入口的操作指示;根据所述操作指示对所述配置文件进行编辑。
2.根据权利要求1所述的系统,其特征在于,
所述发布服务器,还被配置为从源代码库中选取一份测试版本的源代码,所述源代码库中包含至少一份测试版本的源代码;根据预存的配置文件向所述执行服务器发送被选取的源代码的版本号;
所述执行服务器,还被配置为接收所述发布服务器发送的所述版本号;从所述发布服务器中获取与所述版本号对应的源代码。
3.根据权利要求2所述的系统,其特征在于,
所述发布服务器,还被配置为解析预存的makefile配置文件以调用tentakel脚本,所述tentakel脚本用于根据tentakel配置文件向所述执行服务器中运行的分布式版本控制系统Git客户端发送远程调用请求,所述远程调用请求中携带有所述被选取的源代码的版本号;
所述执行服务器,还被配置为通过所述Git客户端接收所述远程调用请求;通过所述Git客户端根据所述远程调用请求中携带的所述版本号,从所述发布服务器中获取与所述版本号对应的源代码。
4.根据权利要求1至3任一项所述的系统,其特征在于,
所述发布服务器,还被配置为生成所述可视化编辑界面对应的超链接;将所述超链接添加至内容管理系统CMS中;
所述测试运维设备,还被配置为登录所述CMS;打开所述CMS中包含的所述超链接,并将所述可视化编辑界面进行显示。
5.根据权利要求2所述的系统,其特征在于,
所述发布服务器,还被配置为在所述执行服务器获取与所述版本号对应的源代码后,向所述执行服务器发送脚本调用请求;
所述执行服务器,还被配置为接收所述脚本调用请求;根据所述脚本调用请求执行预定脚本;其中,所述预定脚本用于执行重启服务进程和更新数据库两者中的至少一项,所述服务进程用于在重启后执行获取的所述源代码中的代码文件,所述数据库用于在更新后保存获取的所述源代码中的数据库文件。
6.根据权利要求1至3任一所述的系统,其特征在于,所述仿真测试数据包括:所述调用请求的状态码、所述调用请求的响应格式、所述调用请求的响应时间中的至少一项。
7.一种测试方法,其特征在于,所述方法包括:
从发布服务器中获取第三方应用的测试版本的源代码;
执行所述源代码;
当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器;
根据所述调用请求的处理情况采集仿真测试数据;
其中,所述发布服务器还被配置为向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
8.根据权利要求7所述的方法,其特征在于,所述从发布服务器中获取第三方应用的测试版本的源代码,包括:
接收所述发布服务器发送的版本号,所述版本号是所述发布服务器的源代码库中的一份测试版本的源代码的版本号,所述源代码库中包含至少一份测试版本的源代码;
从所述发布服务器中获取与所述版本号对应的源代码。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述发布服务器发送的脚本调用请求;
根据所述脚本调用请求执行预定脚本;
其中,所述预定脚本用于执行重启服务进程和更新数据库两者中的至少一项,所述服务进程用于在重启后执行获取的所述源代码中的代码文件,所述数据库用于在更新后保存获取的所述源代码中的数据库文件。
10.根据权利要求7至9任一所述的方法,其特征在于,所述仿真测试数据包括:所述调用请求的状态码、所述调用请求的响应格式、所述调用请求的响应时间中的至少一项。
11.一种测试方法,其特征在于,所述方法包括:
接收开发设备提交的第三方应用的测试版本的源代码;
将所述源代码发布至执行服务器,所述执行服务器用于执行所述源代码,当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器,并根据所述调用请求的处理情况采集仿真测试数据;
所述方法还包括:
向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
12.根据权利要求11所述的方法,其特征在于,所述将所述源代码发布至执行服务器,包括:
从源代码库中选取一份测试版本的源代码,所述源代码库中包含至少一份测试版本的源代码;
根据预存的配置文件向所述执行服务器发送被选取的源代码的版本号,所述执行服务器用于从发布服务器中获取与所述版本号对应的源代码。
13.根据权利要求12所述的方法,其特征在于,所述根据预存的配置文件向所述执行服务器发送被选取的源代码的版本号,包括:
解析预存的makefile配置文件以调用tentakel脚本;
通过所述tentakel脚本根据tentakel配置文件向所述执行服务器发送所述被选取的源代码的版本号。
14.根据权利要求11至13任一项所述的方法,其特征在于,所述向测试运维设备提供可视化编辑界面,包括:
生成所述可视化编辑界面对应的超链接;
将所述超链接添加至内容管理系统CMS中,所述CMS用于在所述测试运维设备登录所述CMS时,向所述测试运维设备提供所述超链接。
15.一种测试装置,其特征在于,所述装置包括:
代码获取模块,被配置为从发布服务器中获取第三方应用的测试版本的源代码;
代码执行模块,被配置为执行所述源代码;
结果发送模块,被配置为当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器;
数据采集模块,被配置为根据所述调用请求的处理情况采集仿真测试数据;
其中,所述发布服务器还被配置为向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
16.根据权利要求15所述的装置,其特征在于,所述代码获取模块,包括:接收子模块和获取子模块;
所述接收子模块,被配置为接收所述发布服务器发送的版本号,所述版本号是所述发布服务器的源代码库中的一份测试版本的源代码的版本号,所述源代码库中包含至少一份测试版本的源代码;
所述获取子模块,被配置为从所述发布服务器中获取与所述版本号对应的源代码。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:
请求接收模块,被配置为接收所述发布服务器发送的脚本调用请求;
脚本执行模块,被配置为根据所述脚本调用请求执行预定脚本;
其中,所述预定脚本用于执行重启服务进程和更新数据库两者中的至少一项,所述服务进程用于在重启后执行获取的所述源代码中的代码文件,所述数据库用于在更新后保存获取的所述源代码中的数据库文件。
18.根据权利要求15至17任一所述的装置,其特征在于,所述仿真测试数据包括:所述调用请求的状态码、所述调用请求的响应格式、所述调用请求的响应时间中的至少一项。
19.一种测试装置,其特征在于,所述装置包括:
代码接收模块,被配置为接收开发设备提交的第三方应用的测试版本的源代码;
代码发布模块,被配置为将所述源代码发布至执行服务器,所述执行服务器用于执行所述源代码,当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器,并根据所述调用请求的处理情况采集仿真测试数据;
所述装置还包括:
界面提供模块,被配置为向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
20.根据权利要求19所述的装置,其特征在于,所述代码发布模块,包括:选取子模块和发送子模块;
所述选取子模块,被配置为从源代码库中选取一份测试版本的源代码,所述源代码库中包含至少一份测试版本的源代码;
所述发送子模块,被配置为根据预存的配置文件向所述执行服务器发送被选取的源代码的版本号,所述执行服务器用于从发布服务器中获取与所述版本号对应的源代码。
21.根据权利要求20所述的装置,其特征在于,
所述发送子模块,还被配置为解析预存的makefile配置文件以调用tentakel脚本;通过所述tentakel脚本根据tentakel配置文件向所述执行服务器发送所述被选取的源代码的版本号。
22.根据权利要求19至21任一项所述的装置,其特征在于,所述界面提供模块,包括:生成子模块和添加子模块;
所述生成子模块,被配置为生成所述可视化编辑界面对应的超链接;
所述添加子模块,被配置为将所述超链接添加至内容管理系统CMS中,所述CMS用于在所述测试运维设备登录所述CMS时,向所述测试运维设备提供所述超链接。
23.一种测试装置,其特征在于,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
从发布服务器中获取第三方应用的测试版本的源代码;
执行所述源代码;
当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器;
根据所述调用请求的处理情况采集仿真测试数据;
其中,所述发布服务器还被配置为向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
24.一种测试装置,其特征在于,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
接收开发设备提交的第三方应用的测试版本的源代码;
将所述源代码发布至执行服务器,所述执行服务器用于执行所述源代码,当接收到开放平台服务器发送的调用请求时,根据所述调用请求将所述源代码的执行结果发送给所述开放平台服务器,并根据所述调用请求的处理情况采集仿真测试数据;
所述处理器还被配置为:
向测试运维设备提供可视化编辑界面,所述可视化编辑界面中包含有用于对预存的配置文件进行可视化编辑的操作入口,所述配置文件用于实现对所述源代码的版本进行管理。
CN201410830143.5A 2014-12-26 2014-12-26 测试系统、方法和装置 Active CN104536890B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410830143.5A CN104536890B (zh) 2014-12-26 2014-12-26 测试系统、方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410830143.5A CN104536890B (zh) 2014-12-26 2014-12-26 测试系统、方法和装置

Publications (2)

Publication Number Publication Date
CN104536890A CN104536890A (zh) 2015-04-22
CN104536890B true CN104536890B (zh) 2018-02-13

Family

ID=52852420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410830143.5A Active CN104536890B (zh) 2014-12-26 2014-12-26 测试系统、方法和装置

Country Status (1)

Country Link
CN (1) CN104536890B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294113B (zh) * 2015-06-03 2020-01-31 阿里巴巴集团控股有限公司 一种基于可编程式测试服务的创建方法及装置
CN106708722A (zh) * 2015-11-13 2017-05-24 北京金山安全软件有限公司 一种应用测试方法、装置及电子设备
CN105608001A (zh) * 2015-12-16 2016-05-25 中国民生银行股份有限公司 基于后台系统服务或接口的测试方法和测试平台
CN106484619A (zh) * 2016-10-11 2017-03-08 武汉斗鱼网络科技有限公司 一种测试方法、服务器和系统
CN106919510B (zh) * 2017-03-09 2020-11-27 苏州浪潮智能科技有限公司 一种基于SPECjbb的OracleJDK版本测试运行报错的规避方法及规避系统
CN108134711B (zh) * 2017-11-29 2021-07-16 海尔优家智能科技(北京)有限公司 对终端app进行测试的方法、仿真模拟家电系统及存储介质
CN108228452B (zh) * 2017-12-28 2021-04-06 微梦创科网络科技(中国)有限公司 一种基于简单工厂模式的测试方法及测试装置
CN108804310A (zh) * 2018-04-28 2018-11-13 微梦创科网络科技(中国)有限公司 功能测试方法、装置及设备
CN109348499B (zh) * 2018-11-30 2022-02-25 奇安信科技集团股份有限公司 压力测试系统及方法
CN110287112B (zh) * 2019-06-25 2023-10-20 网易(杭州)网络有限公司 客户端的维护方法、装置及可读存储介质
CN111190811A (zh) * 2019-12-05 2020-05-22 东方微银科技(北京)有限公司 一种资源分配系统的测试方法、装置、设备及存储介质
CN113342633B (zh) * 2020-02-18 2023-09-22 北京京东振世信息技术有限公司 一种性能测试方法和装置
CN113542379A (zh) * 2021-07-02 2021-10-22 Oppo广东移动通信有限公司 应用程序管理方法及装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635640A (zh) * 2009-09-04 2010-01-27 江苏天智互联科技有限公司 Web网站系统服务器终端程序的版本自动发布方法
CN102521371A (zh) * 2011-12-16 2012-06-27 北京新媒传信科技有限公司 一种文件通过web上传并自动重启服务的方法及系统
CN102841846A (zh) * 2012-08-27 2012-12-26 北京邮电大学 一种基于Hadoop的软件测试方法、装置和系统
CN103729195A (zh) * 2014-01-15 2014-04-16 北京奇虎科技有限公司 一种软件版本的控制方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032528B2 (en) * 2011-06-28 2015-05-12 International Business Machines Corporation Black-box testing of web applications with client-side code evaluation
US9077773B2 (en) * 2011-11-17 2015-07-07 Mashape, Inc. Cloud-based hub for facilitating distribution and consumption of application programming interfaces

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635640A (zh) * 2009-09-04 2010-01-27 江苏天智互联科技有限公司 Web网站系统服务器终端程序的版本自动发布方法
CN102521371A (zh) * 2011-12-16 2012-06-27 北京新媒传信科技有限公司 一种文件通过web上传并自动重启服务的方法及系统
CN102841846A (zh) * 2012-08-27 2012-12-26 北京邮电大学 一种基于Hadoop的软件测试方法、装置和系统
CN103729195A (zh) * 2014-01-15 2014-04-16 北京奇虎科技有限公司 一种软件版本的控制方法及系统

Also Published As

Publication number Publication date
CN104536890A (zh) 2015-04-22

Similar Documents

Publication Publication Date Title
CN104536890B (zh) 测试系统、方法和装置
US9553918B1 (en) Stateful and stateless cookie operations servers
RU2550531C2 (ru) Управление онлайновой конфиденциальностью
CN103150513B (zh) 拦截应用程序中的植入信息的方法及装置
US20150128103A1 (en) System and method for automating application programming interface integration
US11726800B2 (en) Remote component loader
US10725751B2 (en) Generating a predictive data structure
US20160050128A1 (en) System and Method for Facilitating Communication with Network-Enabled Devices
US10331418B2 (en) State machine representation of a development environment deployment process
US11463544B1 (en) Administration of services executing in cloud platform based datacenters
US11928605B2 (en) Techniques for cyber-attack event log fabrication
US20230168872A1 (en) Generating user interfaces for administration of services executing in cloud platforms
CN111090423A (zh) 一种webhook框架系统和实现主动调用、实现事件触发的方法
US11968203B2 (en) Administration of services executing in cloud platform based datacenters using token with data structure
CN110012096A (zh) 移动客户端服务更新管理方法、装置及系统
CN112015383A (zh) 一种登录方法和装置
US20230231900A1 (en) Webtier as a service
CN109194567B (zh) 用于重发信息的方法和装置
CN114449523B (zh) 用于卫星测控系统的流量过滤方法、装置、设备及介质
US20230171243A1 (en) Administration of services executing in cloud platform based datacenters for web-based applications
US11720391B2 (en) Emulation automation and model checking
EP3502925A1 (en) Computer system and method for extracting dynamic content from websites
US10394534B2 (en) Framework for flexible logging of development environment deployment
CN109271310B (zh) 移动应用程序网络功能的开发测试方法和装置
US20190196945A1 (en) Entity performance and usability analysis framework

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant