基于测试的适配方法、装置、计算机设备及存储介质与流程

文档序号:17859321发布日期:2019-06-11 22:45阅读:118来源:国知局
基于测试的适配方法、装置、计算机设备及存储介质与流程

本发明涉及软件测试技术领域,尤其涉及一种基于测试的适配方法、装置、计算机设备及存储介质。



背景技术:

mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,通过mock平台创建出适配的虚拟对象,以便进行测试的方法。例如,在代码、程序或应用的单元测试时,经常会遇到编写的代码模块需要依赖另外一些类或者外部依赖接口。若此时,这些类或接口还没有编写或开发完成,或者外部依赖接口服务的环境搭建需要消耗较多成本,为了便于及时进行测试或降低成本,可以通过即时定义mock对象适配出所需接口或类。

在实际应用中,由于测试返回的结果受到软件、硬件和系统环境等多方面的影响,而且开发、测试的时候需要正常、异常各种各样的返回结果,现场通过mock平台适配出测试需要的虚拟对象(或适配数据包)可能影响测试效率,如何提高mock测试平台提供的虚拟对象的适配效率成为亟待解决的问题。



技术实现要素:

本发明实施例提供一种基于测试的适配方法、装置、计算机设备及存储介质,以解决提高mock测试平台提供的虚拟对象的适配效率的问题。

一种基于测试的适配方法,包括:

获取测试端发送的数据适配请求,数据适配请求包括模块id;

基于模块id,在项目文件库中获取模块id对应的待测试模块;

扫描待测试模块的数据输入接口,若数据输入接口的输入数据为耦合数据,则将耦合数据对应的数据输入接口作为目标适配接口;

基于项目文件库对应的适配接口数据库,获取目标适配接口对应的适配结构脚本;

基于目标适配接口和适配结构脚本,生成适配数据包;

将适配数据包发送给测试端。

一种基于测试的适配装置,包括:

获取适配请求模块,用于获取测试端发送的数据适配请求,数据适配请求包括模块id;

基于模块id模块,用于基于模块id,在项目文件库中获取模块id对应的待测试模块;

扫描输入接口模块,用于扫描待测试模块的数据输入接口,若数据输入接口的输入数据为耦合数据,则将耦合数据对应的数据输入接口作为目标适配接口;

获取结构脚本模块,用于基于项目文件库对应的适配接口数据库,获取目标适配接口对应的适配结构脚本;

生成适配数据包模块,用于基于目标适配接口和适配结构脚本,生成适配数据包;

发送适配数据包模块,用于将适配数据包发送给测试端。

一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于测试的适配方法。

一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述基于测试的适配方法。

上述基于测试的适配方法、装置、计算机设备及存储介质,通过测试端发送的携带模块id的数据适配请求,mock测试平台可基于模块id获取需要进行适配的目标适配接口,并通过适配接口数据库中及时匹配出对应的适配结构脚本,将该适配结构脚本发回给测试端进行测试。mock测试平台无需分析目标适配接口的输入数据的数据结构,可直接在适配接口数据库中匹配出已保存的适配结构脚本,节约现场适配和生成对应数据结构的时间,提高mock测试平台提供与目标适配接口对应的虚拟对象的效率,也即可同时提高测试效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中基于测试的适配方法的应用环境示意图;

图2是本发明一实施例中基于测试的适配方法的流程图;

图3是本发明一实施例中基于测试的适配方法的另一流程图;

图4是本发明一实施例中基于测试的适配方法的另一流程图;

图5是本发明一实施例中基于测试的适配方法的另一流程图;

图6是本发明一实施例中基于测试的适配方法的另一流程图;

图7是本发明一实施例中基于测试的适配方法的另一流程图;

图8是本发明一实施例中基于测试的适配装置的示意图;

图9是本发明一实施例中计算机设备的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的基于测试的适配方法,可应用在如图1的应用环境中,该基于测试的适配方法应用在基于测试的适配系统中,该基于测试的适配系统包括测试端和部署适配装置的服务器,其中,测试端通过网络与服务器进行通信。其中,测试端又称为用户端,是指与服务器相对应的程序。该测试端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等计算机设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

于本实施例,部署适配装置的服务器上装载mock测试平台,用以给测试端提供虚拟对象(也称适配数据包)。mock测试平台是利用现有成熟的mock技术来实现提供虚拟对象的。

mock技术指的是对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便进行测试的技术,其中,虚拟的对象就是mock对象,mock对象就是真实对象在调试期间的代替品。在遇到如下问题时,mock是第一选择:1.外部资源,比如文件系统、数据源,这是因为对此类外部资源依赖性非常强,而其行为的不可预测性很可能导致测试的随机失败。2.第三方api,当接口属于使用者,通过mock接口来确定测试使用者与接口的交互,明确定义该接口的职责等。

采用mock技术的好处包括:第一、隔绝其它模块出错引起本模块的测试错误。第二、隔绝其它模块的开发状态,只要定义好接口,不用管其它模块开发有没有完成。第三、一些速度较慢的操作,可用mockobject代替,快速返回。

如性能测试需求:计算用户的贷款由哪个银行放款,若信用系统的接口、放款系统的接口属于耦合端接口/第三方接口,可使用mock技术来模拟信用系统的接口对象、放款系统的接口对象,以便能顺利完成性能测试。因为在测试的过程中不可能真的在信用系统上加上一条某人所对应的贷款银行的信息,实际上这条信息是不存在的,只是测试的过程中产生的数据。

在一实施例中,如图2所示,提供一种基于测试的适配方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:

s10.获取测试端发送的数据适配请求,数据适配请求包括模块id。

其中,数据适配请求是测试端发送给服务器,以使服务器提供与模块id对应的适配数据包的请求。

模块id是服务器给每一项目文件库中存在的若干模块进行区分的标识。其中,项目文件库是存储到服务器上的用于测试的每一项目包括的文件总和。具体地,每一文件中包括若干模块,服务器为了区分每一模块用于测试,可给每一模块指定一模块id。

步骤s10中,服务器通过接收测试端发送的仅携带模块id的数据适配请求,避免数据适配请求携带包括大量数据的待测试模块,可减轻网络负载,同时简化测试端获得模块id对应的适配数据包的流程。

s20.基于模块id,在项目文件库中获取模块id对应的待测试模块。

其中,待测试模块是在项目文件库中与模块id对应的可实现具体功能,且可用于进行测试的模块。

具体地,为了便于及时匹配出模块id对应的待测试模块,服务器已在项目文件库中存储携带模块id的待测试模块。当服务器获取数据适配请求中的模块id,即可在项目文件库中匹配出对应的待测试模块。

进一步地,服务器可在获得用于进行测试的新的项目文件库时,应基于项目文件库中的每一文件中包括的功能模块进行分割,给分割完成的每一模块指定模块id,并将模块id返回给测试端,利于测试端可基于模块id对应的代码实现单元测试。

优选地,每一待测试模块包括至少一个预设数据结构,每一预设数据结构包括调用次数。其中,预设数据结构是待测试模块中的需要输入的耦合数据对应的,已预存于服务器的数据结构。服务器在项目文件库中获取到模块id对应的待测试模块时,可给该待测试模块中每一预设数据结构对应的调用次数加1,用于后续服务器可按预设时间统计每一预设数据结构的调用次数,按调用次数的降序排列并保存每一预设数据结构,便于预设数据结构被查询和调用时,可优先调用通用性高的预设数据结构。

步骤s20中,服务器可在项目文件库中依据模块id匹配出对应的已进行功能分割的可用于测试的待测试模块,可提高服务器提供适配数据包的适配速率。

s30.扫描待测试模块的数据输入接口,若数据输入接口的输入数据为耦合数据,则将耦合数据对应的数据输入接口作为目标适配接口。

其中,数据输入接口是待测试模块包含的所有需输入数据的方法接口。其中,输入的数据包括直接数据和耦合数据。直接数据是当前的待测试模块内部临时产生的数据,当测试端进行测试时,测试端可将直接数据直接输入到待测试模块的指定的数据输入接口进行测试。耦合数据是待测试模块本身不能提供的数据,而是由其它待测试模块或者第三方接口提供的数据。

具体地,因耦合数据不能由待测试模块本身提供,当测试端对待测试模块进行测试时,则出现无法对耦合数据对应的数据输入接口进行测试的情况。此时,测试端可采用服务器提供的适配数据包(包括耦合数据对应的数据输入接口和与耦合数据对应的虚拟数据)进行测试,以保障待测试模块每一数据输入接口的耦合性。

进一步地,服务器可分析当前待测试模块中的每一数据输入接口的数据来源,将当前待测试模块中的接口输出作为其它数据输入接口的输入的数据判定为直接数据,将无法获得数据来源的数据判定为耦合数据。将耦合数据对应的每一数据输入接口作为目标适配接口。

步骤s30中,服务器扫描待测试模块中的每一数据输入接口,可自动获得目标适配接口,提高服务器的自动适配能力,也为后续基于目标适配接口对应的耦合数据的数据结构进行适配准备技术基础。

s40.基于项目文件库对应的适配接口数据库,获取目标适配接口对应的适配结构脚本。

其中,适配接口数据库是服务器保存的所有已生成的原始结构脚本的集合。其中,原始结构脚本是服务器基于历史扫描出的耦合数据的数据结构,对应生成该数据结构的方法的集合。可以理解地,本步骤中在适配接口数据库中与目标适配接口对应的原始结构脚本即为适配结构脚本。

具体地,服务器首先需分析得到目标适配接口对应的耦合数据的当前数据结构,基于该当前数据结构和适配接口数据库中的每一原始结构脚本的输出结果进行匹配,得到原始结构脚本的输出结果与该当前数据结构一致的则可确认为适配结构脚本。

步骤40中,服务器可基于适配接口数据库进行查找,匹配得到与目标适配接口对应的适配结构脚本,无需服务器根据目标适配接口现场生成对应的适配结构脚本,可节省生成适配结构脚本的时间,提高服务器的适配效率。

s50.基于目标适配接口和适配结构脚本,生成适配数据包。

其中,适配数据包是集合待测试模块中所有的目标适配接口和与该目标适配接口对应的适配结构脚本的集合,即为服务器基于测试端发送的数据适配请求返回的虚拟对象。

具体地,服务器可给每一目标适配接口指定接口id,也即服务器可将接口id和对应的适配结构脚本进行封装生成适配数据包,便于测试端在测试对应的接口id时,可基于接口id获取对应适配结构脚本进行测试。

步骤s50中,服务器可将目标适配接口和适配结构脚本封装成携带接口id的适配数据包,为后续测试端基于该接口id和对应的适配数据包进行测试准备技术基础。

s60.将适配数据包发送给测试端。

具体地,测试端基于适配数据包进行测试的实现过程如下:

测试端可根据每一适配数据包携带的接口id,在待测试模块中查找到每一目标适配接口,将解封后的适配结构脚本加载到该目标适配接口中,可保障在测试过程中每一测试接口的耦合性。

以一待测试模块为性能测试模块为例进行说明,测试用例运行中需要的每一数据输入接口即为测试用例运行时的输入的运行参数,如设置线程个数(耦合数据)、线程发送执行请求次数(耦合数据)或者执行测试用例的时间段(直接数据)、吞吐量定时器(直接数据)等。上述运行参数包括两个耦合数据,也即这两个耦合数据应由服务器提供对应的适配数据包在测试过程中进行数据替代。进一步地,由步骤s50得知,这两个耦合数据对应的每一目标适配接口都对应一接口id。

测试端经步骤s50可获取上述两个耦合数据对应的携带接口id的适配数据包,测试端可将这两个适配数据包解封后按接口id分别将对应的适配结构脚本加载到目标适配接口内。

进一步地,线程个数就是虚拟用户数,一个虚拟用户占用一个进程或者线程,设置多少虚拟用户数就设置多少个线程数,多个线程并行执行,即同时被初始化并同时执行对应的测试用例。服务器中部署的mock测试平台可基于线程个数生成对应的适配结构脚本一。

线程发送执行请求次数也可以理解为循环次数,如线程数为200,每个线程发送执行请求的次数为100,则总的请求为200*100=10000。服务器中部署的mock测试平台可基于线程发送执行请求次数生成对应的适配结构脚本二。

执行测试用例的时间段(该数据可由测试端随机指定),包括执行测试用例开始的时间和执行测试用例结束的时间,在此期间,测试用例会循环执行。

吞吐量定时器用于设置吞吐量(该数据可由测试端随机指定),吞吐量指得是单位时间内发送执行请求的次数,或者单位时间内同时执行测试用例的个数,即单位时间内对系统间的关联性业务逻辑流程进行测试的次数,也即指的是同一时刻同时运行的线程。

运行参数还可包括其它参数,如还包括监视器,可以通过监视器看到图形化统计信息等;还可以包括生成测试结果的路径和文件名称等(上述其它参数均可由测试端随机生成)。

更进一步地,设置完成运行参数后,测试端即可开始执行测试用例,得到测试结果,并将测试结果保存,如保存在日志文件中。测试结果中包括了吞吐量、不同吞吐量下的响应时间、不同吞吐量下的资源利用率等。

具体地,吞吐量能够反映出软件产品的性能,也即是软件产品的执行效率,吞吐量较大,则软件产品的性能较高,吞吐量较小,则软件产品的性能较低。响应时间指的是执行一次业务逻辑流程的测试过程,并获取测试结果所需的时间,通过获取测试过程中的响应时间,能够了解到性能测试过程中的执行速度,以根据业务逻辑流程的需求进行优化处理,提高业务逻辑流程的执行速度。其中,响应时间一般会取平均响应时间,包括了在一次测试中,系统间的关联性业务逻辑流程进行性能测试的总响应时间和各系统分别对应的响应时间。

资源利用率包括在不同吞吐量下的cpu使用率、内存使用率等。另外,测试结果中还可以包括测试用例执行成功率、软件产品的版本号等。

步骤s60中,适配服务器将提取的输出数据包或者实时生成的适配数据包发送给测试端进行测试,提高测试端的测试效率和测试端对不同测试环境的通用性。

本实施例提供的基于测试的适配方法中,服务器通过测试端发送的携带模块id的数据适配请求,可基于模块id获取需要进行适配的目标适配接口,并通过适配接口数据库中及时匹配出对应的适配结构脚本,将该适配结构脚本发回给测试端进行测试。服务器无需分析目标适配接口的输入数据的数据结构,可直接在适配接口数据库中匹配出已保存的适配结构脚本,节约现场适配和生成对应数据结构的时间,提高服务器提供与目标适配接口对应的虚拟对象的效率,也即可同时提高测试效率。

在一实施例中,如图3所示,步骤s40中,即基于项目文件库对应的适配接口数据库,获取目标适配接口对应的适配结构脚本,包括:

s41.基于项目文件库对应的适配接口数据库,获取每一原始结构脚本,将每一原始结构脚本对应的数据结构与耦合数据对应的数据结构进行匹配,获取匹配结果。

其中,匹配结果包括匹配成功和匹配失败。匹配成功即为在适配接口数据库中匹配得到与耦合数据对应的数据结构一致的原始结构脚本对应的数据结构。反之,则为匹配失败。

具体地,举例说明将每一原始结构脚本对应的数据结构与耦合数据对应的数据结构进行匹配的实现过程:

适配接口数据库中保存的原始结构脚本对应的数据结构包括:

1.xxx-1980-yyy

2.yyy—1980-xxx

3.1980-xxx-yyy

4.xxx-yyy-1980

5.yyy-xxx-1980

耦合数据对应的数据结构为xxx-1980-yyy,经匹配可得,耦合数据和编号为1的原始结构脚本的输出一致,则可获取匹配结果为成功。

步骤s41中,服务器可基于已存在于适配接口数据库中的每一原始结构脚本和耦合数据对应的数据结构进行匹配,节省现场基于耦合数据对应的数据结构生成对应的适配结构脚本的时间,且提高已生成的原始结构脚本的利用率。

s42.若匹配结果为匹配成功,则将匹配成功的原始结构脚本作为目标适配接口对应的适配结构脚本。

步骤s42中,服务器可及时获取匹配成功的原始结构脚本作为目标适配接口对应的适配结构脚本,为后续基于该适配结构脚本生成对应的适配数据包准备技术基础。

s43.若匹配结果为匹配失败,则获取目标适配接口对应的接口适配文档,基于接口适配文档,生成与目标适配接口对应的适配结构脚本。

其中,接口适配文档是每一项目文件库中携带的接口说明文档,该文档由开发人员对该项目文件库中的每一接口进行说明,利于其他开发人员理解和实现接口共用。

具体地,服务器未在适配接口数据库中匹配得到与耦合数据对应的数据结构一致的原始结构脚本对应的数据结构,则可判定匹配结果为匹配失败。此时,说明适配接口适配库中不存在与耦合数据对应的数据结构,服务器应及时基于mock测试平台生成对应的适配结构脚本。

进一步地,举例说明mock测试平台生成适配结构脚本的实现过程:

服务器可在接口适配文档中读取该目标适配接口对应的输入数据的数据结构,用以mock测试平台基于该数据结构生成对应的适配结构脚本。

mock测试平台是依据数据模板生成对应的数据结构的。数据模板的组成包括三部分:属性名,生成规则和属性值。在语法上的结构如下:

模板1:属性名|生成规则:属性值

最简单的数据模板是不使用生成规则,直接用字面量来表示:

{

name:'你好'

}

生成的mock数据如下所示:

{

“name”:“你好”

}

模板2::'属性名|min-max':属性值(min-max:字符串重复次数)示例:

{

'name|1-10':'你好'

}

生成的mock数据如下:

{

“name”:“你好你好你好”

}

模板3::'属性名|count':属性值(count:字符串指定重复次数)示例:

{

'name|1-10':'你好'

'morename|5':'你好'

}

生成的mock数据如下:

{

“name”:“你好你好你好”

“morename”:“你好你好你好你好你好”

}

以上举例中每一模板包括的所有生成指定数据结构的方法构成该指定数据结构的适配结构脚本。

步骤s43中,服务器在匹配结果为匹配失败时,还可及时基于接口适配文档获取与目标适配接口对应的数据结构,以生成对应的适配结构脚本;同时新生成的适配结构脚本可作为原始结构脚本及时存储到适配接口数据库中,扩大适配接口数据库的可适用性,提高新增的适配结构脚本的可利用性。

步骤s41至s43中,服务器可基于已存在于适配接口数据库中的每一原始结构脚本和耦合数据对应的数据结构进行匹配,节省现场基于耦合数据对应的数据结构生成对应的适配结构脚本的时间,且提高已生成的原始结构脚本的利用率。服务器可及时获取匹配成功的原始结构脚本作为目标适配接口对应的适配结构脚本,为后续基于该适配结构脚本生成对应的适配数据包准备技术基础。服务器在匹配结果为匹配失败时,还可及时基于接口适配文档获取与目标适配接口对应的数据结构,以生成对应的适配结构脚本;同时新生成的适配结构脚本可作为原始结构脚本及时存储到适配接口数据库中,扩大适配接口数据库的可适用性,提高新增的适配结构脚本的可利用性。

在一实施例中,如图4所示,步骤s43中,即基于接口适配文档,生成与目标适配接口对应的适配结构脚本,具体包括如下步骤:

s431.基于接口适配文档,获取与目标适配接口相对应的目标数据结构。

其中,目标数据结构是与目标适配接口的输入的耦合数据的数据结构对应的,存储在接口适配文档中的数据结构。

具体地,服务器可给每一目标适配接口设定接口id,服务器可基于同一接口id在接口适配文档中查找到对应的目标适配接口的输入数据的数据结构的说明。

步骤s431中,服务器可通过接口id在接口适配文档中匹配出对应的目标数据结构,为后续服务器基于该目标数据结构生成对应的适配结构脚本准备技术基础。

s432.构造与目标数据结构相对应的至少一个数据结构生成方法,封装至少一个数据结构生成方法形成适配结构脚本。

具体地,服务器可基于mock测试平台构造与目标数据结构对应的适配结构脚本,具体构造的实现过程可包括如下步骤:

步骤1.获取与目标数据结构相对应的构造方法,将构造方法声明为虚拟类virtual。

步骤2.构造生成目标数据结构的方法,将生成目标数据结构的方法声明为虚拟类。

步骤3.封装每一虚拟类形成适配结构脚本,令虚拟类继承适配结构脚本。

步骤s432中,服务器可基于mock测试平台自动构造与目标数据结构对应的适配结构脚本,方便快捷。

步骤s431至s432中,服务器可通过接口id在接口适配文档中匹配出对应的目标数据结构,为后续服务器基于该目标数据结构生成对应的适配结构脚本准备技术基础。服务器可基于mock测试平台自动构造与目标数据结构对应的适配结构脚本,方便快捷。

在一实施例中,项目文件库包括接口适配文档。如图5所示,在步骤s10之前,即在获取测试端发送的数据适配请求之前,该基于测试的适配方法还包括如下步骤:

s101.扫描项目文件库中每一模块的数据输入接口,将接收耦合数据的每一数据输入接口确定为预设适配接口。

其中,预设适配接口是项目文件库中所有接收耦合数据的数据输入接口。

具体地,为了及时给测试端提供对应的适配结构脚本,服务器可在获取新添加的项目文件库后,即扫描该项目文件库得到每一预设适配接口,用以后续基于每一预设适配接口生成对应的预设数据结构。

步骤s101中,服务器可给每一预设适配接口及时生成对应的预设数据结构。当服务器接收到测试端发送的携带模块id的数据适配请求后,应当都可在该项目文件库对应的适配接口数据库中匹配得到所有目标适配接口对应的适配结构脚本(也即可及时获取适配数据包),进一步提高测试端获取适配数据包的速率,同时提高服务器的自动适配能力。

s102.基于接口适配文档和每一预设适配接口,获取每一预设适配接口对应的预设数据结构。

其中,预设数据结构是预设适配结构的输入数据对应的数据结构。

本步骤与步骤s431的实现过程相同,为了避免重复,此处不再赘述。

步骤s102中,服务器可基于接口适配文档中匹配出每一预设适配结构对应的预设数据结构,为后续服务器基于每一预设数据结构生成对应的适配结构脚本准备技术基础。

s103.生成每一预设数据结构对应的适配结构脚本,将每一适配结构脚本保存到适配接口数据库中。

本步骤与步骤s432的实现过程相同,为了避免重复,此处不再赘述。

步骤s103中,服务器可基于mock测试平台自动构造与每一预设数据结构对应的适配结构脚本,方便快捷。

步骤s101至s103中,服务器可给每一预设适配接口及时生成对应的预设数据结构。当服务器接收到测试端发送的携带模块id的数据适配请求后,应当都可在该项目文件库对应的适配接口数据库中匹配得到所有目标适配接口对应的适配结构脚本(也即可及时获取适配数据包),进一步提高测试端获取适配数据包的速率,同时提高服务器的自动适配能力。服务器可基于接口适配文档中匹配出每一预设适配结构对应的预设数据结构,为后续服务器基于每一预设数据结构生成对应的适配结构脚本准备技术基础。服务器可基于mock测试平台自动构造与每一预设数据结构对应的适配结构脚本,方便快捷。

在一实施例中,如图6所示,在步骤s102之后,即在获取每一预设适配接口对应的预设数据结构之后,基于测试的适配方法还包括:

s1021.获取任意两个预设数据结构的格式对比结果,若格式对比结果为格式相同,则删除任一个预设数据结构,将保留的任一个预设数据结构作为目标关联结构。

其中,格式对比结果是两个预设数据结构的数据组成的对比结果,包括相同和不同。比如,预设数据结构1为:时间—地点-人物;预设数据结构2为:地点—时间-人物,则预设数据结构1和预设数据结构2的对比结果为不同。

可以理解地,每一预设适配接口对应一个预设数据结构。当删除一个预设数据结构时,为了不影响该删除的预设结构对应的预设适配接口的可适用性和可关联性,应将将保留的任一个预设数据结构作为目标关联结构,用以与该删除的预设结构对应的预设适配接口进行关联。

步骤s1021中,服务器可删除重复的预设数据结构,精简预设数据结构构成的适配接口数据库,减少数据繁冗,利于后续服务器可快速查找到于预设数据接口对应的预设数据结构。

s1022.获取删除的任一个预设数据结构对应的预设适配接口作为目标关联接口,基于适配接口数据库,将目标关联接口与目标关联结构进行关联。

具体地,举例说明删除的任一个预设数据结构对应的预设适配接口作为目标关联接口,基于适配接口数据库,将目标关联接口与目标关联结构进行关联的过程:

1.预设数据结构a对应的预设适配接口为a;预设数据结构b对应的预设适配接口为b;

2.当预设数据结构a和预设数据结构b的格式对比结果为相同时,服务器删除预设数据结构a,此时,服务器可将预设数据结构a对应的预设适配接口a作为目标关联接口,将保留的预设数据结构b作为目标关联结构;

3.将预设数据结构b和预设适配接口为a进行关联,也即此时与预设数据结构b关联的预设适配接口包括a和b。

步骤s1022中,服务器可及时将删除的任一个预设数据结构对应的预设适配接口和新的目标关联结构进行关联,保障每一预设适配接口都可在适配接口数据库中匹配到对应的预设数据结构,便于服务器后续基于测试端的数据适配请求及时匹配出对应的适配数据包。

步骤s1021至s1022中,服务器可删除重复的预设数据结构,精简预设数据结构构成的适配接口数据库,减少数据繁冗,利于后续服务器可快速查找到于预设数据接口对应的预设数据结构。服务器可及时将删除的任一个预设数据结构对应的预设适配接口和新的目标关联结构进行关联,保障每一预设适配接口都可在适配接口数据库中匹配到对应的预设数据结构,便于服务器后续基于测试端的数据适配请求及时匹配出对应的适配数据包。

在一实施例中,项目文件库包括接口更新说明。如图7所示,在步骤s60之后,即在将适配数据包发送给测试端之后,基于测试的适配方法还包括:

s601.定时读取携带预设适配接口的接口更新说明,基于接口更新说明,获取预设适配接口对应的更新数据结构。

其中,接口更新说明是与项目文件库对应的对每一输入数据接口的输入数据进行更新的说明。比如,当前输入数据接口a对应的输入数据的数据结构为xxx—1980,变更后的输入数据接口a对应的输入数据的数据结构为1980-xxx。上述变更内容应由开发人员或测试人员及时记录在接口更新说明中。

具体地,服务器可通过设定定时任务触发读取携带预设适配接口的接口更新说明的指令,以获取更新的预设适配接口,并基于接口更新说明及时生成该更新的预设适配接口对应的更新数据结构。

步骤s601中,服务器可及时读取接口更新说明,获取预设适配接口对应的更新数据结构,以保持服务器中适配接口数据库的数据实时性和可靠性。

s602.将更新数据结构和适配接口数据库中的每一适配结构脚本对应的数据结构进行匹配,获取匹配结果。

具体地,即使某个预设适配接口的输入数据的数据结构被更新,但更新后的数据结构仍有可能已存储在适配接口数据库中,因此,服务器还应对更新数据结构和适配接口数据库中的每一适配结构脚本进行结构匹配,以获得匹配结果。若更新数据结构在适配接口数据库中为匹配失败时,服务器可在基于更新数据结构生成对应的适配数据结构,以节省服务器的计算资源,避免重复性工作。

步骤s602中,服务器可将更新数据结构和适配接口数据库中的每一适配结构脚本对应的数据结构进行匹配,以节省服务器的计算资源,避免重复性工作。

s603.若匹配结果为匹配成功,则获取与更新数据结构匹配成功的适配结构脚本作为目标关联脚本,删除预设适配接口与当前的适配结构脚本的关联关系,将预设适配接口与目标关联脚本进行关联。

具体地,当更新数据结构和适配接口数据库中的每一适配结构脚本对应的数据结构进行匹配,匹配结果为匹配成功时,说明更新数据结构在适配接口数据库中以存在,此时,可将更新数据结构在数据库中匹配的适配结构脚本作为目标关联脚本与更新数据结构对应的预设适配接口进行关联。

步骤s603中,服务器可给匹配结果为匹配成功的更新数据结构对应的预设适配接口建立新的关联关系,无需生成新的适配结构脚本再进行关联,可简化适配接口数据库中的关联关系,减少数据冗余。

步骤s601至s603中,服务器可及时读取接口更新说明,获取预设适配接口对应的更新数据结构,以保持服务器中适配接口数据库的数据实时性和可靠性。服务器可将更新数据结构和适配接口数据库中的每一适配结构脚本对应的数据结构进行匹配,以节省服务器的计算资源,避免重复性工作。服务器可给匹配结果为匹配成功的更新数据结构对应的预设适配接口建立新的关联关系,无需生成新的适配结构脚本再进行关联,可简化适配接口数据库中的关联关系,减少数据冗余。

本实施例提供的基于测试的适配方法中,服务器通过测试端发送的携带模块id的数据适配请求,可基于模块id获取需要进行适配的目标适配接口,并通过适配接口数据库中及时匹配出对应的适配结构脚本,将该适配结构脚本发回给测试端进行测试。服务器无需分析目标适配接口的输入数据的数据结构,可直接在适配接口数据库中匹配出已保存的适配结构脚本,节约现场适配和生成对应数据结构的时间,提高服务器提供与目标适配接口对应的虚拟对象的效率,也即可同时提高测试效率。

进一步地,服务器可基于已存在于适配接口数据库中的每一原始结构脚本和耦合数据对应的数据结构进行匹配,节省现场基于耦合数据对应的数据结构生成对应的适配结构脚本的时间,且提高已生成的原始结构脚本的利用率。服务器可及时获取匹配成功的原始结构脚本作为目标适配接口对应的适配结构脚本,为后续基于该适配结构脚本生成对应的适配数据包准备技术基础。服务器在匹配结果为匹配失败时,还可及时基于接口适配文档获取与目标适配接口对应的数据结构,以生成对应的适配结构脚本;同时新生成的适配结构脚本可作为原始结构脚本及时存储到适配接口数据库中,扩大适配接口数据库的可适用性,提高新增的适配结构脚本的可利用性。

进一步地,服务器可通过接口id在接口适配文档中匹配出对应的目标数据结构,为后续服务器基于该目标数据结构生成对应的适配结构脚本准备技术基础。服务器可基于mock测试平台自动构造与目标数据结构对应的适配结构脚本,方便快捷。

进一步地,服务器可给每一预设适配接口及时生成对应的预设数据结构。当服务器接收到测试端发送的携带模块id的数据适配请求后,应当都可在该项目文件库对应的适配接口数据库中匹配得到所有目标适配接口对应的适配结构脚本(也即可及时获取适配数据包),进一步提高测试端获取适配数据包的速率,同时提高服务器的自动适配能力。服务器可基于接口适配文档中匹配出每一预设适配结构对应的预设数据结构,为后续服务器基于每一预设数据结构生成对应的适配结构脚本准备技术基础。服务器可基于mock测试平台自动构造与每一预设数据结构对应的适配结构脚本,方便快捷。

进一步地,服务器可删除重复的预设数据结构,精简预设数据结构构成的适配接口数据库,减少数据繁冗,利于后续服务器可快速查找到于预设数据接口对应的预设数据结构。服务器可及时将删除的任一个预设数据结构对应的预设适配接口和新的目标关联结构进行关联,保障每一预设适配接口都可在适配接口数据库中匹配到对应的预设数据结构,便于服务器后续基于测试端的数据适配请求及时匹配出对应的适配数据包。

进一步地,服务器可及时读取接口更新说明,获取预设适配接口对应的更新数据结构,以保持服务器中适配接口数据库的数据实时性和可靠性。服务器可将更新数据结构和适配接口数据库中的每一适配结构脚本对应的数据结构进行匹配,以节省服务器的计算资源,避免重复性工作。服务器可给匹配结果为匹配成功的更新数据结构对应的预设适配接口建立新的关联关系,无需生成新的适配结构脚本再进行关联,可简化适配接口数据库中的关联关系,减少数据冗余。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种基于测试的适配装置,该基于测试的适配装置与上述实施例中基于测试的适配方法一一对应。如图8所示,该基于测试的适配装置包括获取适配请求模块10、基于模块id模块20、扫描输入接口模块30、获取结构脚本模块40、生成适配数据包模块50和发送适配数据包模块60。各功能模块详细说明如下:

获取适配请求模块10,用于获取测试端发送的数据适配请求,数据适配请求包括模块id。

基于模块id模块20,用于基于模块id,在项目文件库中获取模块id对应的待测试模块。

扫描输入接口模块30,用于扫描待测试模块的数据输入接口,若数据输入接口的输入数据为耦合数据,则将耦合数据对应的数据输入接口作为目标适配接口。

获取结构脚本模块40,用于基于项目文件库对应的适配接口数据库,获取目标适配接口对应的适配结构脚本。

生成适配数据包模块50,用于基于目标适配接口和适配结构脚本,生成适配数据包。

发送适配数据包模块60,用于将适配数据包发送给测试端。

优选地,获取结构脚本模块40包括获取匹配结果单元41、匹配成功单元42和匹配失败单元43。

获取匹配结果单元41,用于基于项目文件库对应的适配接口数据库,获取每一原始结构脚本,将每一原始结构脚本对应的数据结构与耦合数据对应的数据结构进行匹配,获取匹配结果。

匹配成功单元42,用于若匹配结果为匹配成功,则将匹配成功的原始结构脚本作为目标适配接口对应的适配结构脚本。

匹配失败单元43,用于若匹配结果为匹配失败,则获取目标适配接口对应的接口适配文档,基于接口适配文档,生成与目标适配接口对应的适配结构脚本。

优选地,匹配失败单元包括获取目标结构子单元和形成结构脚本子单元。

获取目标结构子单元,用于基于接口适配文档,获取与目标适配接口相对应的目标数据结构。

形成结构脚本子单元,用于构造与目标数据结构相对应的至少一个数据结构生成方法,封装至少一个数据结构生成方法形成适配结构脚本。

优选地,该基于测试的适配装置还包括确定预设接口模块、获取预设结构模块和生成适配脚本模块。

确定预设接口模块,用于扫描项目文件库中每一模块的数据输入接口,将接收耦合数据的每一数据输入接口确定为预设适配接口。

获取预设结构模块,用于基于接口适配文档和每一预设适配接口,获取每一预设适配接口对应的预设数据结构。

生成适配脚本模块,用于生成每一预设数据结构对应的适配结构脚本,将每一适配结构脚本保存到适配接口数据库中。

优选地,该基于测试的适配装置还包括获取对比结果模块和删除数据结构模块。

获取对比结果模块,用于获取任意两个预设数据结构的格式对比结果,若格式对比结果为格式相同,则删除任一个预设数据结构,将保留的任一个预设数据结构作为目标关联结构。

删除数据结构模块,用于获取删除的任一个预设数据结构对应的预设适配接口作为目标关联接口,基于适配接口数据库,将目标关联接口与目标关联结构进行关联。

优选地,该基于测试的适配装置还包括优选地,该基于测试的适配装置还包括、匹配数据结构模块和获取关联脚本模块。

读取更新说明模块,用于定时读取携带预设适配接口的接口更新说明,基于接口更新说明,获取预设适配接口对应的更新数据结构。

匹配数据结构模块,用于将更新数据结构和适配接口数据库中的每一适配结构脚本对应的数据结构进行匹配,获取匹配结果。

获取关联脚本模块,用于若匹配结果为匹配成功,则获取与更新数据结构匹配成功的适配结构脚本作为目标关联脚本,删除预设适配接口与当前的适配结构脚本的关联关系,将预设适配接口与目标关联脚本进行关联。

关于基于测试的适配装置的具体限定可以参见上文中对于基于测试的适配方法的限定,在此不再赘述。上述基于测试的适配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一实施例中,提供一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于测试的适配方法中需保存的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于测试的适配方法。

在一实施例中,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例基于测试的适配方法,例如图2所示s10至步骤s60。或者,处理器执行计算机程序时实现上述实施例中基于测试的适配装置的各模块/单元的功能,例如图8所示模块10至模块60的功能。为避免重复,此处不再赘述。

在一实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例数据调用方法,例如图2所示s10至步骤s60。或者,该计算机程序被处理器执行时实现上述装置实施例中数据调用装置中各模块/单元的功能,例如图8所示模块10至模块60的功能。为避免重复,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1