代码测试系统、方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:33849544 阅读:32 留言:0更新日期:2022-06-18 10:35
本发明专利技术提供了一种代码测试系统、方法、装置、电子设备及可读存储介质,涉及计算机技术领域。该系统包括:代码服务器,用于接收源码文件以及对应的事件标识;代码编译服务器,用于编译源码文件,得到对应的组件文件;分布式调度器,用于确定源码文件对应的待执行任务,并将待执行任务排入相应的任务队列,然后将各任务队列中的各待执行任务连同关联的组件文件依次分发至相应的目标测试设备;多个测试设备,用于接收各待执行任务以及关联的组件文件,并根据接收到的组件文件执行相应的待执行任务。实现通过合理分发各个待执行任务至多个测试设备中的目标测试设备并执行,提高了代码测试效率,实现以代码提交为粒度的持续集成过程。程。程。

【技术实现步骤摘要】
代码测试系统、方法、装置、电子设备及可读存储介质


[0001]本申请涉及计算机
,具体而言,本申请涉及一种代码测试系统、方法、装置、电子设备及可读存储介质。

技术介绍

[0002]区别于软件工程开发完成后的详尽的深入测试,在大型软件工程的开发过程中,通常会每隔一段固定的开发时长,对各个部门提交的代码进行集成,并对集成后的代码进行统一编译和冒烟测试。
[0003]其中,冒烟测试是在软件开发过程中的一种针对软件版本包的快速基本功能验证策略,是对软件基本功能进行确认验证的手段,是正式输出到测试环节前的验证步骤。通过冒烟测试可以及时发现当前存在的问题,并将问题锁定在该开发时段提交的代码中,便于快速针对问题进行修正。
[0004]目前,一般是每隔固定时间对研发部门提交的代码进行集成、编译和冒烟测试,当面对业务场景和开发逻辑复杂的软件工程项目时,以固定时间对代码进行测试的效率较低,难以满足实际需求。

技术实现思路

[0005]本申请实施例的目的旨在能解决代码测试效率较低的问题。
[0006]第一方面,提供了一种代码测试系统,其中,包括:
[0007]代码服务器,用于接收测试需求对应的源码文件,源码文件关联有事件标识,事件标识用于确定源码文件对应的待执行任务,待执行任务包括组件测试任务或测试环境更新任务;
[0008]代码编译服务器,用于编译源码文件,得到源码文件对应的待分发的组件文件;
[0009]分布式调度器,用于根据源码文件对应的事件标识和组件文件确定源码文件对应的待执行任务,并将待执行任务分别放入相应的任务队列;按照预设的任务分发逻辑将各任务队列中的各待执行任务连同关联的组件文件依次分发至相应的目标测试设备;
[0010]多个测试设备,用于接收各待执行任务以及关联的组件文件,并根据接收到的组件文件执行相应的待执行任务。
[0011]在第一方面的可选实施例中,分布式调度器配置为:
[0012]根据源码文件对应的事件标识和组件文件确定源码文件对应的待执行任务以及待执行任务的时间戳,并基于待执行任务的时间戳将该待执行任务排入相应的任务队列。
[0013]在第一方面的可选实施例中,事件标识为第一标识或第二标识,若事件标识为第一标识,待执行任务为组件测试任务,若事件标识为第二标识,待执行任务为测试环境更新任务;任务队列包括第一标识对应的测试任务队列和第二标识对应的更新任务队列;
[0014]分布式调度器配置为:
[0015]若事件标识为第一标识,则基于组件文件生成对应的组件测试任务以及组件测试
任务的时间戳,并根据组件测试任务的时间戳将组件测试任务放入测试任务队列;
[0016]若事件标识为第二标识,则基于组件文件生成对应的测试环境更新任务以及测试环境更新任务的时间戳,并根据测试环境更新任务的时间戳将测试环境更新任务放入更新任务队列。
[0017]在第一方面的可选实施例中,分布式调度器配置为:
[0018]当测试任务队列和/或更新任务队列存在待执行任务时,对两个队列中的各待执行任务重复执行以下操作:
[0019]将测试任务队列中的首任务的时间戳与更新任务队列中的首任务的时间戳进行比较,将两个首任务中时间戳较早的待执行任务确定为目标待执行任务;
[0020]从多个测试设备中确定出当前目标待执行任务对应的目标测试设备,并将当前目标待执行任务连同关联的组件文件发送至目标测试设备;
[0021]将当前目标待执行任务从对应的任务队列中删除,使当前目标待执行任务的下一个待执行任务成为对应的任务队列中新的首任务。
[0022]在第一方面的可选实施例中,分布式调度器配置为:
[0023]获取多个测试设备中各个测试设备对应的设备状态;
[0024]若当前目标待执行任务为组件测试任务,则选定多个测试设备中设备状态为空闲状态的至少一个测试设备作为目标测试设备;
[0025]若当前目标待执行任务为测试环境更新任务,则多个测试设备中各个测试设备对应的设备状态均处于空闲状态时,选定所有测试设备作为目标测试设备。
[0026]在第一方面的可选实施例中,多个测试设备配置为:
[0027]若当前目标待执行任务为测试任务队列中的待执行任务,多个测试设备中的目标测试设备通过执行接收到的当前目标待执行任务,实现以下操作:
[0028]基于当前目标待执行任务关联的组件文件对测试环境进行部署;
[0029]根据当前目标待执行任务对应的组件文件,从测试用例库中确定出对应的目标测试用例;
[0030]执行当前目标测试用例,生成任务执行报告,并发送任务执行报告,将当前测试环境重置为此次部署之前的测试环境。
[0031]第二方面,提供了一种测试方法,该方法包括:
[0032]接收测试需求对应的源码文件,源码文件关联有事件标识,事件标识用于确定源码文件对应的待执行任务,待执行任务包括组件测试任务或测试环境更新任务;
[0033]编译源码文件,得到源码文件对应的待分发的组件文件;
[0034]根据源码文件对应的事件标识和组件文件确定源码文件对应的待执行任务,并将待执行任务分别放入相应的任务队列;
[0035]对于各任务队列中各待执行任务,按照预设的任务分发逻辑,按照预设的任务分发逻辑将各任务队列中的各待执行任务连同关联的组件文件依次分发至相应的目标测试设备,以使各目标测试设备根据接收到的组件文件执行相应的待执行任务。
[0036]在第二方面的可选实施例中,根据源码文件对应的事件标识和组件文件确定源码文件对应的待执行任务,并将待执行任务分别放入相应的任务队列,包括:
[0037]根据源码文件对应的事件标识和组件文件确定源码文件对应的待执行任务以及
待执行任务的时间戳,并基于待执行任务的时间戳将该待执行任务排入相应的任务队列。
[0038]在第二方面的可选实施例中,事件标识为第一标识或第二标识;若事件标识为第一标识,待执行任务为组件测试任务,若事件标识为第二标识,待执行任务为测试环境更新任务;任务队列包括第一标识对应的测试任务队列和第二标识对应的更新任务队列;
[0039]根据源码文件对应的事件标识和组件文件确定源码文件对应的待执行任务以及待执行任务的时间戳,并基于待执行任务的时间戳将该待执行任务排入相应的任务队列,包括:
[0040]若事件标识为第一标识,则基于组件文件生成对应的组件测试任务以及组件测试任务的时间戳,并根据组件测试任务的时间戳将组件测试任务放入测试任务队列;
[0041]若事件标识为第二标识,则基于组件文件生成对应的测试环境更新任务以及测试环境更新任务的时间戳,并根据测试环境更新任务的时间戳将测试环境更新任务放入更新任务队列。
[0042]在第二方面的可选实施例中,按照预设的任务分发逻辑,按照预设的任务分发逻辑将各任务队列中的各待执行任务连同关联的组件文件依次分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码测试系统,其中,包括:代码服务器,用于接收测试需求对应的源码文件,所述源码文件关联有事件标识,所述事件标识用于确定所述源码文件对应的待执行任务,所述待执行任务包括组件测试任务或测试环境更新任务;代码编译服务器,用于编译所述源码文件,得到所述源码文件对应的待分发的组件文件;分布式调度器,用于根据所述源码文件对应的事件标识和组件文件确定所述源码文件对应的待执行任务,并将所述待执行任务分别放入相应的任务队列;按照预设的任务分发逻辑将各任务队列中的各待执行任务连同关联的组件文件依次分发至相应的目标测试设备;多个测试设备,用于接收各待执行任务以及关联的组件文件,并根据接收到的组件文件执行相应的待执行任务。2.根据权利要求1所述的代码测试系统,其中,所述分布式调度器配置为:根据所述源码文件对应的事件标识和组件文件确定所述源码文件对应的待执行任务以及所述待执行任务的时间戳,并基于所述待执行任务的时间戳将该待执行任务排入相应的任务队列。3.根据权利要求2所述的代码测试系统,其中,所述事件标识为第一标识或第二标识,若所述事件标识为所述第一标识,所述待执行任务为所述组件测试任务,若所述事件标识为所述第二标识,所述待执行任务为所述测试环境更新任务;所述任务队列包括第一标识对应的测试任务队列和第二标识对应的更新任务队列;所述分布式调度器配置为:若所述事件标识为所述第一标识,则基于所述组件文件生成对应的组件测试任务以及所述组件测试任务的时间戳,并根据所述组件测试任务的时间戳将所述组件测试任务放入所述测试任务队列;若所述事件标识为所述第二标识,则基于所述组件文件生成对应的测试环境更新任务以及所述测试环境更新任务的时间戳,并根据所述测试环境更新任务的时间戳将所述测试环境更新任务放入所述更新任务队列。4.根据权利要求2所述的代码测试系统,其中,所述分布式调度器配置为:当所述测试任务队列和/或所述更新任务队列存在待执行任务时,对两个队列中的各待执行任务重复执行以下操作:将所述测试任务队列中的首任务的时间戳与所述更新任务队列中的首任务的时间戳进行比较,将两个首任务中时间戳较早的待执行任务确定为目标待执行任务;从所述多个测试设备中确定出所述当前目标待执行任务对应的目标测试设备,并将所述当前目标待执行任务连同关联的组件文件发送至所述目标测试设备;将所述当前目标待执行任务从对应的任务队列中删除,使所述当前目标待执行任务的下一个待执行任务成为对应的任务队列中新的首任务。5.根据权利要求4所述的代码测试系统,其中,所述分布式调度器配置为:获取所述多个测试设备中各个测试设备对应的设备状态;若所述当前目标待执行任务为组件测试任务,则选定所述多个测试设备中设备状态为
空闲状态的至少一个测试设备作为目标测试设备;若所述当前目标待执行任务为测试环境更新任务,则所述多个测试设备中各个测试设备对应的设备状态均处于空闲状态时,选定所有测试设备作为目标测试设备。6.根据权利要求4所述的代码测试系统,其中,所述多个测试设备配置为:若所述当前目标待执行任务为所述测试任务队列中的待执行任务,所述多个测试设备中的目标测试设备通过执行接收到的所述当前目标待执行任务,实现以下操作:基于所述当前目标待执行任务关联的组件文件对测试环境进行部署;根据所述当前目标待执行任务对应的组件文件,从测试用例库中确定出对应的目标测试用例;执行所述当前目标测试用例,生成任务执行报告,并发送所述任务执行报告,将当前测试环境重置为此次部署之前的测试环境。7.一种代码测试方法,其中,包括:接收测试需求对应的源码文件,所述源码文件关联有事件标识,所述事件标识用于确定所述源码文件对应的待执行任务,所述待执行任务包括组件测试任务或测试环境更新任务;编译所述源码文件,得到所述源码文件对应的待分发的组件文件;根据所述源码文件对应的事件标识和组件文件确定所述源码文件对应的待执行任务,并将所述待执行任务分别放入相应的任务队列;对于各任务队列中各待执行任务,按照预设的任务分发逻辑,按照预设的任务分发逻辑将各任务队列中的各待执行任务连同关联的组件文件依次分发至相应的目标测试设备,以使各目标测试设备根据接收到的组件文件执行相应的待执行任务。8.根据权利要求7所述的代码测试方法,其中,所述根据所述源码文件对应的事件标识和组件文件...

【专利技术属性】
技术研发人员:李文凯毛伟钟顺此
申请(专利权)人:北京奕斯伟计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1