1.本技术涉及应用测试技术领域,尤其涉及一种应用测试方法、装置及电子设备、存储介质。
背景技术:2.现有的软件系统一般是由多个应用共同组成,各个应用一般是由不同的研发团队和测试团队合作完成。在应用的联调测试过程中,不同团队的不同的应用很难做到测试版本与生产版本的统一,也就很难保证每个应用的版本稳定性和正确性,严重的情况可能会导致整个测试过程失败,出现严重的系统漏洞。
3.针对此问题,现有方案通常是人工通知各个团队,让每个团队以手动的形式自行确保自己的应用的当前版本是与生产版本保持一致的,然而这种方式会存在沟通不及时,部署效率低下的情况,进而影响了后续应用测试的效率。
技术实现要素:4.本技术实施例提供了一种应用测试方法、装置及电子设备、存储介质,以提高应用测试的效率。
5.本技术实施例采用下述技术方案:
6.第一方面,本技术实施例提供一种应用测试方法,由应用测试服务器执行,其中,所述方法包括:
7.接收应用的联调测试请求,其中所述应用的联调测试请求是指对被测试应用进行联调测试的请求;
8.根据所述应用的联调测试请求,确定被测试应用及与所述被测试应用对应的关联应用,其中所述关联应用与所述被测试应用处于同一测试环境中;
9.确定所述关联应用的生产版本号;
10.若所述关联应用的生产版本号满足预设应用发布条件,则根据所述关联应用的生产版本号,在所述测试环境中发布生产版本的关联应用,以根据所述生产版本的关联应用对所述被测试应用进行联调测试。
11.可选地,所述方法还包括:
12.确定所述关联应用的测试版本号;
13.若所述关联应用的测试版本号与所述关联应用的生产版本号不一致,则确定所述关联应用的生产版本号满足预设应用发布条件。
14.可选地,所述确定所述关联应用的生产版本号包括:
15.从应用版本数据库中获取所述关联应用的生产版本号;
16.所述确定所述关联应用的测试版本号包括:
17.从所述应用版本数据库中获取所述关联应用的测试版本号。
18.可选地,所述应用版本数据库中存储有多个应用的生产版本号和测试版本号,各
应用的生产版本号和测试版本号通过如下方式得到:
19.通过流水线任务模块接收目标应用的软件代码,其中所述目标应用为多个应用中的任意一个;
20.根据所述目标应用的软件代码,生成所述目标应用的测试版本号;确定是否要将所述目标应用发布到生产环境中;
21.若是,则将所述目标应用的测试版本号作为所述目标应用的生产版本号,并同时输出所述目标应用的测试版本号和生产版本号;
22.若不是,则直接输出所述目标应用的测试版本号。
23.可选地,所述目标应用的生产版本号为所述目标应用的当前生产版本号,所述目标应用的测试版本号为所述目标应用的当前测试版本号,所述方法还包括:
24.调用任务自动执行模块;
25.通过所述任务自动执行模块,确定是否能够将所述目标应用发布到生产环境中;
26.若是,则调用环境控制模块,并通过环境控制模块将所述目标应用的原始生产版本号更新为所述目标应用的当前生产版本号,以及将所述目标应用的原始测试版本号更新为所述目标应用的当前测试版本号;
27.将所述目标应用的当前生产版本号和所述当前测试版本号存储到所述应用版本数据库中。
28.可选地,所述根据所述关联应用的生产版本号和测试版本号,在所述测试环境中发布生产版本的关联应用包括:
29.通过应用信息管理模块接收应用发布指令;
30.根据所述应用发布指令,对所述生产版本的关联应用所对应的发布信息进行组装,得到组装信息;
31.调用应用发布模块;
32.通过所述应用发布模块,根据所述组装信息将所述生产版本的关联应用发布到所述测试环境中。
33.可选地,所述通过所述应用发布模块,根据所述组装信息将所述生产版本的关联应用发布到所述测试环境中包括:
34.通过所述应用发布模块获取所述生产版本的关联应用所对应的代码文件;
35.根据所述组装信息和所述生产版本的关联应用所对应的代码文件,将所述生产版本的关联应用发布到所述测试环境中。
36.可选地,所述方法还包括:
37.通过前端展示模块提供前端页面;
38.所述接收应用的联调测试请求包括:
39.通过所述前端页面接收所述应用的联调测试请求。
40.可选地,所述方法还包括:
41.在所述前端页面上展示各应用的应用信息,其中所述应用信息包括应用名称、测试版本号、生产版本号、应用发布结果及应用所在测试环境中的至少一种或多种。
42.第二方面,本技术实施例还提供一种应用测试装置,应用于应用测试服务器,其中,所述装置用于实现前述之任一所述方法。
43.第三方面,本技术实施例还提供一种电子设备,包括:
44.处理器;以及
45.被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述之任一所述方法。
46.第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行前述之任一所述方法。
47.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:本技术实施例的应用测试方法可以由单独部署的应用测试服务器执行,在进行应用测试时,先接收应用的联调测试请求,这里的应用的联调测试请求是指对被测试应用进行联调测试的请求;然后根据应用的联调测试请求,确定被测试应用及与被测试应用对应的关联应用,这里的关联应用应与被测试应用处在同一测试环境中;之后确定关联应用的生产版本号;最后根据关联应用的生产版本号,在测试环境中发布生产版本的关联应用,进而可以根据生产版本的关联应用对被测试应用进行联调测试。本技术实施例的应用测试方法能够自动将同一测试环境下的全链路应用的版本恢复至生产版本,无需人工通知各个团队以手动的形式进行版本恢复,保证了全链路联调测试过程中每个应用的版本稳定性和正确性,同时大大提高了应用版本恢复和应用测试的效率。
附图说明
48.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
49.图1为现有的一种软件系统中应用上线流程的示意图;
50.图2为本技术实施例一种应用测试方法的流程示意图;
51.图3为本技术实施例一种基线保持平台的前端页面的展示效果图;
52.图4为本技术实施例一种应用测试系统的架构图;
53.图5为本技术实施例一种应用测试装置的结构示意图;
54.图6为本技术实施例中一种电子设备的结构示意图。
具体实施方式
55.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
56.以下结合附图,详细说明本技术各实施例提供的技术方案。
57.为了便于对本技术各实施例的理解,如图1所示,提供了现有的一种软件系统中应用上线流程的示意图。现有的应用上线流程主要涉及应用需求设计、研发设计、代码开发、单模块测试、应用联调测试和应用上线等过程,其中的应用联调测试是本技术的技术方案主要针对的环节,应用联调测试是指对同一个软件系统中的多个应用或者同一个通信链路下的多个应用同时进行的联合测试,在应用联调测试过程中,需要保证全链路应用的测试
版本与生产版本的统一。
58.举例说明,一个软件系统中包括应用a、应用b和应用c三个应用,如果要对应用c进行联调测试,需要保证与应用c在同一链路上的应用a和应用b的版本都处于最新的生产版本,也就是应用已经上线使用的版本,或者叫基线版本,这样对于应用c的联调测试才是有意义的,得到的测试结果才是准确的。然而,实际应用场景下,在同一个测试环境中,往往会存在应用a和应用b的测试版本,也就是在应用a和应用b的最新的生产版本的基础上进一步更新或改进后得到的版本,测试版本是还没有实际投入生产环境中的,如果利用应用a和应用b的测试版本去对应用c进行联调测试,就会导致对应用c的测试结果出现偏差,因此这时就需要将应用a和应用b的版本恢复到相应的生产版本,达到基线保持的目的,在此基础上再对应用a进行测试。
59.基于此,本技术实施例提供了一种应用测试方法,由应用测试服务器执行,如图2所示,提供了本技术实施例一种应用测试方法的流程示意图,所述方法至少包括如下的步骤s210至步骤s240:
60.步骤s210,接收应用的联调测试请求,其中所述应用的联调测试请求是指对被测试应用进行联调测试的请求。
61.本技术实施例的应用测试方法可以由单独部署的应用测试服务器来执行,该应用测试服务器上部署有应用测试平台,或者也可以称为基线保持平台,能够统一对外提供应用测试入口,使得用户可以在该应用测试平台上发起应用的联调测试请求。
62.在进行应用测试时,可以先接收应用的联调测试请求,该联调测试请求可以理解为是对某个软件系统中的某个被测试应用进行联调测试的请求。
63.步骤s220,根据所述应用的联调测试请求,确定被测试应用及与所述被测试应用对应的关联应用,其中所述关联应用与所述被测试应用处于同一测试环境中。
64.在接收到应用的联调测试请求后,可以根据请求中携带的应用名称等信息确定被测试应用和与被测试应用对应的关联应用,这里的“关联应用”可以理解为是与被测试应用处于同一个软件系统中或者同一个通信链路上的应用,并且关联应用与被测试应用都处在同一测试环境中,因为只有处在同一个测试环境中的应用才会存在测试版本与生产版本不一致的问题。
65.关联应用的数量可以是一个,也可以是多个,如果与被测试应用处在同一个软件系统和同一测试环境中的应用有多个,则每个应用都作为关联应用。
66.上述的测试环境可以理解为被测试应用和关联应用所要发布或者部署的机器,实际应用测试场景下,可以根据实际需求部署多套测试环境,分别执行不同的测试任务。
67.步骤s230,确定所述关联应用的生产版本号。
68.在确定出与被测试应用相对应的关联应用后,为了将关联应用的版本恢复到最新的生产版本,需要进一步确定关联应用的生产版本号。
69.步骤s240,若所述关联应用的生产版本号满足预设应用发布条件,则根据所述关联应用的生产版本号,在所述测试环境中发布生产版本的关联应用,以根据所述生产版本的关联应用对所述被测试应用进行联调测试。
70.在得到关联应用的生产版本号后,可以根据该生产版本号确定关联应用的生产版本号是否满足预设的应用发布条件,即确定是否需要重新发布关联应用,如果需要,则可以
将生产版本的关联应用发布到被测试应用和关联应用所在的同一测试环境中,这样就可以在该测试环境下对被测试应用进行联调测试了。
71.本技术实施例的应用测试方法能够自动将同一测试环境下的全链路应用的版本恢复到最新的生产版本,无需人工通知各个团队以手动的形式进行版本恢复,保证了全链路联调测试过程中每个应用的版本稳定性和正确性,同时大大提高了应用测试的效率。
72.在本技术的一个实施例中,所述方法还包括:确定所述关联应用的测试版本号;若所述关联应用的测试版本号与所述关联应用的生产版本号不一致,则确定所述关联应用的生产版本号满足预设应用发布条件。
73.如前所述,在实际应用场景下,同一测试环境中会存在多个应用的多个版本,有些应用的版本可能是在生产版本的基础上进一步更新或者改进后的版本,也即测试版本,有些应用的版本可能就是当前生产环境中正在使用的版本,也即生产版本,因此本技术实施例在执行对关联应用的版本进行恢复操作之前,可以先确定关联应用的当前版本是否是生产版本。
74.具体地,可以先确定关联应用的测试版本号,然后将关联应用的测试版本号与关联应用的生产版本号进行比较,如果二者一致,说明该关联应用的当前版本就是生产版本,则无需再进行版本恢复,如果二者不一致,则说明该关联应用在其生产版本的基础上又进行了更新,得到了新的测试版本,这时才需要将该测试环境中的关联应用的版本恢复至生产版本。
75.在本技术的一个实施例中,所述确定所述关联应用的生产版本号包括:从应用版本数据库中获取所述关联应用的生产版本号;所述确定所述关联应用的测试版本号包括:从所述应用版本数据库中获取所述关联应用的测试版本号。
76.为了便于对生产版本号和测试版本号的管理,本技术实施例事先构建了应用版本数据库,用于存储各个应用的生产版本号和测试版本号。在确定关联应用的生产版本号和关联应用的测试版本号时,可以从事先构建好的应用版本数据库中来获取,该应用版本数据库中具体可以存储如下表1所示的表信息,以便于对生产版本号和测试版本号的管理,同时也为生产版本号和测试版本号的获取提供查询基础,进而提高后续版本恢复和应用测试的效率。
77.表1
78.序号应用名称生产版本号测试版本号1a0010012b002003
ꢀꢀꢀꢀ
nmnm
79.在本技术的一个实施例中,所述应用版本数据库中存储有多个应用的生产版本号和测试版本号,各应用的生产版本号和测试版本号通过如下方式得到:通过流水线任务模块接收目标应用的软件代码,其中所述目标应用为多个应用中的任意一个;根据所述目标应用的软件代码,生成所述目标应用的测试版本号;确定是否要将所述目标应用发布到生产环境中;若是,则将所述目标应用的测试版本号作为所述目标应用的生产版本号,并同时输出所述目标应用的测试版本号和生产版本号;若不是,则直接输出所述目标应用的测试
版本号。
80.如前所述,应用版本数据库中可以存储有多个应用的生产版本号和测试版本号,因此可以先对多个应用的生产版本号和测试版本号进行采集后再存储。
81.具体地,在对应用的生产版本号和测试版本号进行采集时可以通过本技术实施例的基线保持平台中部署的流水线任务模块(ipipe)来实现,流水线任务模块是软件代码提交的源头,也是基线保持平台触发的第一步,该模块可以基于git代码管理工具来实现,并支持分布式部署。当然,本领域技术人员也可以根据实际需求采用其他代码管理工具,如svn(subversion,一种开放源代码的版本控制系统),在此不一一列举。
82.当目标应用的软件代码提交到流水线任务模块后,会直接产生一个测试版本号,然后自动触发流水线任务,执行软件文件的构建和部署等相关任务。之后判断是要否将当前提交的该目标应用的软件代码对应的测试版本发布到生产环境,即是否要正式投入生产环境使用,这里可以由人工介入来决定,如果确定要投入生产环境,则可以将前面生成的测试版本号作为该目标应用的生产版本号,然后将测试版本号和生产版本号一起输出到后续流程,如果确定不投入生产环境,则仅输出一个测试版本号。
83.每个应用在上线前都会经过上述流程进入本技术实施例的基线保持平台,进而可以得到多个应用的测试版本号和生产版本号,为后续构建应用版本数据库提供了基础。
84.在本技术的一个实施例中,所述目标应用的生产版本号为所述目标应用的当前生产版本号,所述目标应用的测试版本号为所述目标应用的当前测试版本号,所述方法还包括:调用任务自动执行模块;通过所述任务自动执行模块,确定是否能够将所述目标应用发布到生产环境中;若是,则调用环境控制模块,并通过环境控制模块将所述目标应用的原始生产版本号更新为所述目标应用的当前生产版本号,以及将所述目标应用的原始测试版本号更新为所述目标应用的当前测试版本号;将所述目标应用的当前生产版本号和所述当前测试版本号存储到所述应用版本数据库中。
85.在得到流水线任务模块输出的测试版本号和生产版本号后,可以进一步判断目标应用是否能够真正发布到生产环境中,这里可以调用基线保持平台中部署的任务自动执行模块(jenkins)和环境控制模块(envcontrol)来实现。任务自动执行模块可以基于jenkins自动化执行组件开发得到,jenkins组件的扩展性和插件比较多,与平台的兼容性也更高,该模块主要被集成到流水线任务模块中,负责自动或者手动执行一些脚本的部署和检查等工作。当然,本领域技术人员也可以根据实际需求采用其他自动化执行组件如buddy、integrity、gitlabci等,在此不作具体限定。
86.环境控制模块可以由java语言编写,使用springboot框架搭建得到,其主要功能是管理测试环境和部署信息、环境使用申请、数据存储及展示、手动和定时自动触发生产版本同步、多应用之间的发布时序编排等后台工作,该模块是在同一测试环境下保持多个应用的测试版本与生产版本一致的关键。
87.在本技术实施例中的任务自动执行模块主要是将应用的生产版本号自动记录下来,并通过调用自动化部署脚本确定是否能够将目标应用发布到生产环境中,如果能够发布,则会调用基线保持平台中部署的环境控制模块在应用版本数据库中进行版本号的更新。这里更新的目的是为了保证每次进行生产版本恢复时,能够从应用版本数据库中获取应用最新的生产版本,也就是说本技术实施例在对关联应用的版本进行恢复时是要将关联
应用的版本恢复到最新的生产版本,而不是任意一个生产版本,这样才可以保证后续得到的测试结果的准确性。
88.具体地,可以将目标应用的原始生产版本号更新为目标应用的当前生产版本号,并将目标应用的原始测试版本号更新为目标应用的当前测试版本号,最后将更新后的目标应用的当前生产版本号和当前测试版本号一起存储到应用版本数据库中,这样应用版本数据库中就会记录有每个应用每一次更新后的生产版本号和测试版本号,为后续的版本恢复提供了基础。
89.在本技术的一个实施例中,所述根据所述关联应用的生产版本号和测试版本号,在所述测试环境中发布生产版本的关联应用包括:通过应用信息管理模块接收应用发布指令;根据所述应用发布指令,对所述生产版本的关联应用所对应的发布信息进行组装,得到组装信息;调用应用发布模块;通过所述应用发布模块,根据所述组装信息将所述生产版本的关联应用发布到所述测试环境中。
90.本技术实施例在测试环境中发布生产版本的关联应用时,可以先通过基线保持平台中部署的应用信息管理模块(autodeploy)和应用发布模块(hippo)来实现。应用信息管理模块可以采用python语言编写,使用flask框架创建得到,主要负责各应用自动部署前的准备工作,例如组装要发布的应用信息,查询并提供应用名称,应用所要部署的环境,以及部署时需要的应用配置信息等。应用发布模块可以由python语言编写,使用ansible为底层自动化运维工具创建得到,主要负责不同应用在不同机器上的批量部署,同时提供dubbo服务的安全启停等功能,ansible不需要在每台机器上部署agent,使用更加方便。当然,本领域技术人员也可以采用其他自动化运维工具如saltstack等来替代,在此不作具体限定。
91.本技术实施例中的应用信息管理模块在发布生产版本的关联应用时,可以先接收应用发布指令,该应用发布指令也可以是由人工来触发的,当然也可以自动触发。之后应用信息管理模块会根据接收到的应用发布指令,对生产版本的关联应用所需要的发布信息进行组装,得到组装信息,这里的发布信息具体可以包括应用名称、生产版本号、应用所发布的测试环境等信息。最后再调用应用发布模块,由应用发布模块根据组装信息将生产版本的关联应用发布到相应的测试环境中。
92.在本技术的一个实施例中,所述通过所述应用发布模块,根据所述组装信息将所述生产版本的关联应用发布到所述测试环境中包括:通过所述应用发布模块获取所述生产版本的关联应用所对应的代码文件;根据所述组装信息和所述生产版本的关联应用所对应的代码文件,将所述生产版本的关联应用发布到所述测试环境中。
93.在测试环境中发布生产版本的关联应用时,除了需要上述包含应用名称、生产版本号等的组装信息,还会用到生产版本的关联应用所对应的代码文件,因此这里可以通过应用发布模块来获取生产版本的关联应用所对应的代码文件。
94.具体地,各个应用的各个版本的代码文件可以独立于本技术实施例的基线保持平台单独进行存储和管理,例如单独存储在外部的服务器,在需要获取相应的代码文件时,应用发布模块可以直接根据组装信息中的生产版本号等代码文件的唯一标识信息调取相应的代码文件,进而可以节省基线保持平台的存储空间,保证基线保持平台的性能。当然,也可以将代码文件存储在本地,具体如何获取代码文件,本领域技术人员可以根据实际需求灵活设置,在此不作具体限定。
95.在根据组装信息得到生产版本的关联应用的代码文件后,应用发布模块就可以根据该代码文件,将生产版本的关联应用发布到相应的测试环境中了,也即实现了生产版本的关联应用在相应机器上的部署,为后续的联调测试奠定了基础。
96.在本技术的一个实施例中,所述方法还包括:通过前端展示模块提供前端页面;所述接收应用的联调测试请求包括:通过所述前端页面接收所述应用的联调测试请求。
97.为了满足不同的研发团队和测试团队的应用测试需求,本技术实施例的基线保持平台还部署有前端展示模块(envcontrol-ui),用来实现各种前端信息的展示及与用户的交互等功能。本技术实施例的前端展示模块能够为整个基线保持平台提供前端页面,具体可以使用vue+elementui组件实现。
98.本技术实施例提供的前端页面主要用于接收用户在前端页面上手动触发的应用的联调测试请求。例如,在前端页面上可以按照通信链路的维度展示同一通信链路下各个应用的应用名称,例如应用a、应用b、应用c
……
,当用户想要对应用a测试时,可以通过点击应用a对应的“测试”按钮,以此来触发对应用a的联调测试请求,当然前端页面上也可以提供输入框,用户可以在输入框内直接输入想要测试的应用名称,以此触发相应的联调测试请求。
99.当然,具体如何通过前端页面接收应用的联调测试请求,本领域技术人员可根据实际需求灵活设置,在此不作具体限定。
100.在本技术的一个实施例中,所述方法还包括:在所述前端页面上展示各应用的应用信息,其中所述应用信息包括应用名称、测试版本号、生产版本号、应用发布结果及应用所在测试环境中的至少一种或多种。
101.本技术实施例的前端页面还可以展示不同应用在不同环境下的使用状态以及对应的版本号等信息,具体地,可以包括应用名称、测试版本号、生产版本号、应用发布结果及应用所在测试环境等多种信息。当然,具体在前端页面上展示哪些信息,本领域技术人员可根据实际需求灵活设置,在此不一一列举。如图3所示,提供了本技术实施例一种基线保持平台的前端页面的展示效果图。
102.由于前端页面上展示了每个应用的生产版本号和测试版本号,用户可以直接从前端页面上看到哪个应用的测试版本与生产版本不一致或者出现偏差,因此在本技术的一个实施例中,用户也可以通过前端页面上的“发布生产版本”按钮直接手动触发应用的测试版本与生产版本的同步操作。
103.在跨团队多应用共同协作研发的大型软件系统中,在全链路联调阶段很难保证每个应用的当前版本均与生产版本一致,本技术提供的基线保持平台能够让各个团队快捷、方便的查看相关的应用部署状态,并能够快速的恢复全链路应用的生产版本,大大的提高了多人协作研发的效率,同时也保证了全链路测试的准确性。
104.为了便于对本技术各实施例的理解,如图4所示,还提供了本技术实施例一种应用测试系统的结构架构图,本技术实施例的应用测试系统主要包括:流水线任务模块、任务自动执行模块、环境控制模块、前端展示模块、应用信息管理模块和应用发布模块等几部分。
105.如前所述,流水线任务模块主要用于自动触发流水线任务,执行构建和部署等相关任务。任务自动执行模块主要用于自动的将生产版本号记录下来并调用自动化部署脚本,准实时的将应用的最新的生产版本部署到相应的测试环境。环境控制模块主要用于管
理测试环境和部署信息、多应用之间的发布时序编排等后台工作。前端展示模块主要负责不同应用在不同环境下的使用状态以及对应的版本号,在前端页面中手动触发应用的版本与生产版本的同步。应用信息管理模块主要负责各应用系统自动部署前的准备工作。应用发布模块主要负责不同应用在不同机器上的批量部署等工作。
106.本技术实施例还提供了一种应用测试装置500,应用于应用测试服务器,如图5所示,提供了本技术实施例一种应用测试装置的结构示意图,所述装置500包括:接收单元510、第一确定单元520、第二确定单元530和发布单元540,其中:
107.接收单元510,用于接收应用的联调测试请求,其中所述应用的联调测试请求是指对被测试应用进行联调测试的请求;
108.第一确定单元520,用于根据所述应用的联调测试请求,确定被测试应用及与所述被测试应用对应的关联应用,其中所述关联应用与所述被测试应用处于同一测试环境中;
109.第二确定单元530,用于确定所述关联应用的生产版本号;
110.发布单元540,用于若所述关联应用的生产版本号满足预设应用发布条件,则根据所述关联应用的生产版本号,在所述测试环境中发布生产版本的关联应用,以根据所述生产版本的关联应用对所述被测试应用进行联调测试。
111.在本技术的一个实施例中,所述装置还包括:第三确定单元,用于确定所述关联应用的测试版本号;执行单元,用于若所述关联应用的测试版本号与所述关联应用的生产版本号不一致,则确定所述关联应用的生产版本号满足预设应用发布条件。
112.在本技术的一个实施例中,所述第二确定单元530具体用于:从应用版本数据库中获取所述关联应用的生产版本号;所述第三确定单元具体用于:从所述应用版本数据库中获取所述关联应用的测试版本号。
113.在本技术的一个实施例中,所述应用版本数据库中存储有多个应用的生产版本号和测试版本号,各应用的生产版本号和测试版本号通过如下方式得到:通过流水线任务模块接收目标应用的软件代码,其中所述目标应用为多个应用中的任意一个;根据所述目标应用的软件代码,生成所述目标应用的测试版本号;确定是否要将所述目标应用发布到生产环境中;若是,则将所述目标应用的测试版本号作为所述目标应用的生产版本号,并同时输出所述目标应用的测试版本号和生产版本号;若不是,则直接输出所述目标应用的测试版本号。
114.在本技术的一个实施例中,所述目标应用的生产版本号为所述目标应用的当前生产版本号,所述目标应用的测试版本号为所述目标应用的当前测试版本号,所述装置还包括:第一调用单元,用于调用任务自动执行模块;第四确定单元,用于通过所述任务自动执行模块,确定是否能够将所述目标应用发布到生产环境中;第二调用单元,用于若是,则调用环境控制模块,并通过环境控制模块将所述目标应用的原始生产版本号更新为所述目标应用的当前生产版本号,以及将所述目标应用的原始测试版本号更新为所述目标应用的当前测试版本号;存储单元,用于将所述目标应用的当前生产版本号和所述当前测试版本号存储到所述应用版本数据库中。
115.在本技术的一个实施例中,所述发布单元540具体用于:通过应用信息管理模块接收应用发布指令;根据所述应用发布指令,对所述生产版本的关联应用所对应的发布信息进行组装,得到组装信息;调用应用发布模块;通过所述应用发布模块,根据所述组装信息
将所述生产版本的关联应用发布到所述测试环境中。
116.在本技术的一个实施例中,所述发布单元540具体用于:通过所述应用发布模块获取所述生产版本的关联应用所对应的代码文件;根据所述组装信息和所述生产版本的关联应用所对应的代码文件,将所述生产版本的关联应用发布到所述测试环境中。
117.在本技术的一个实施例中,所述装置还包括:提供单元,用于通过前端展示模块提供前端页面;所述接收单元510具体用于:通过所述前端页面接收所述应用的联调测试请求。
118.在本技术的一个实施例中,所述装置还包括:展示单元,用于在所述前端页面上展示各应用的应用信息,其中所述应用信息包括应用名称、测试版本号、生产版本号、应用发布结果及应用所在测试环境中的至少一种或多种。
119.能够理解,上述应用测试装置,能够实现前述实施例中提供的由应用测试服务器执行的应用测试方法的各个步骤,关于应用测试方法的相关阐释均适用于应用测试装置,此处不再赘述。
120.图6是本技术的一个实施例电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
121.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
122.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
123.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成应用测试装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
124.接收应用的联调测试请求,其中所述应用的联调测试请求是指对被测试应用进行联调测试的请求;
125.根据所述应用的联调测试请求,确定被测试应用及与所述被测试应用对应的关联应用,其中所述关联应用与所述被测试应用处于同一测试环境中;
126.确定所述关联应用的生产版本号;
127.若所述关联应用的生产版本号满足预设应用发布条件,则根据所述关联应用的生产版本号,在所述测试环境中发布生产版本的关联应用,以根据所述生产版本的关联应用对所述被测试应用进行联调测试。
128.上述如本技术图5所示实施例揭示的应用测试装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完
成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
129.该电子设备还可执行图5中应用测试装置执行的方法,并实现应用测试装置在图5所示实施例的功能,本技术实施例在此不再赘述。
130.本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图5所示实施例中应用测试装置执行的方法,并具体用于执行:
131.接收应用的联调测试请求,其中所述应用的联调测试请求是指对被测试应用进行联调测试的请求;
132.根据所述应用的联调测试请求,确定被测试应用及与所述被测试应用对应的关联应用,其中所述关联应用与所述被测试应用处于同一测试环境中;
133.确定所述关联应用的生产版本号;
134.若所述关联应用的生产版本号满足预设应用发布条件,则根据所述关联应用的生产版本号,在所述测试环境中发布生产版本的关联应用,以根据所述生产版本的关联应用对所述被测试应用进行联调测试。
135.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
136.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
137.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
138.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
139.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
140.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
141.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
142.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
143.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
144.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。