测试调度及日志管理方法、装置、计算机设备及存储介质

文档序号:1963625 发布日期:2021-12-14 浏览:23次 >En<

阅读说明:本技术 测试调度及日志管理方法、装置、计算机设备及存储介质 (Test scheduling and log management method and device, computer equipment and storage medium ) 是由 蔡婷 于 2021-09-16 设计创作,主要内容包括:本发明涉及人工智能领域,公开了一种测试调度及日志管理方法、装置、计算机设备及存储介质,包括:获取与当前运行的生产软件包对应的迭代软件包,并将迭代软件包部署在预置的测试服务集群中,对测试服务集群以及运行有生产软件包的生产服务集群进行A/B测试;获取迭代软件包的代码合并请求,根据预置的属性提取规则从代码合并请求中提取属性信息;根据A/B测试生成的测试信息,根据预置的指标提取规则从测试信息中提取指标信息,将属性信息和指标信息整合成测试日志。本发明还涉及区块链技术,信息可存储于区块链节点中。本发明提高了软件包的测试效率,实现获得测试信息所传递的关键信息和主要观点,以及准确快速的获得所属部门和开发人员。(The invention relates to the field of artificial intelligence, and discloses a method and a device for test scheduling and log management, computer equipment and a storage medium, wherein the method comprises the following steps: acquiring an iterative software package corresponding to a currently running production software package, deploying the iterative software package in a preset test service cluster, and performing A/B test on the test service cluster and the production service cluster running the production software package; acquiring a code merging request of an iterative software package, and extracting attribute information from the code merging request according to a preset attribute extraction rule; and extracting the index information from the test information according to the test information generated by the A/B test and a preset index extraction rule, and integrating the attribute information and the index information into a test log. The invention also relates to a blockchain technique, where information can be stored in blockchain nodes. The invention improves the testing efficiency of the software package, realizes the acquisition of key information and main viewpoints transmitted by the testing information, and accurately and quickly acquires affiliated departments and developers.)

测试调度及日志管理方法、装置、计算机设备及存储介质

技术领域

本发明涉及人工智能的软件测试技术领域,尤其涉及一种测试调度及日志管理方法、装置、计算机设备及可读存储介质。

背景技术

软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

然而,发明人意识到,当前的软件测试通常需要测试人员将迭代软件包进行手动布置,不仅导致测试效率低下,而且,当前的软件测试方案的对象只关注软件包,却忽略了开发该软件包的开发端的信息,导致测试结果无法关联到具体开发端,进而无法实现基于测试信息对开发端的开发效果评价;同时,由于软件包的测试信息通常比较庞大复杂,因此,如果将测试信息简单的进行保存很容易导致,后续开发团队无法快速准确的把握历次测试信息所传递的主要内容和观点,进一步的对软件包进行开发完善的工作效率低下。

发明内容

本发明的目的是提供一种测试调度及日志管理方法、装置、计算机设备及可读存储介质,用于解决现有技术存在的测试效率低下并且测试结果无法关联到具体开发端,以及后续无法快速准确的把握历次测试信息所传递的主要内容和观点的问题。

为实现上述目的,本发明提供一种测试调度及日志管理方法,其特征在于,包括:

获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,对所述测试服务集群以及运行有所述生产软件包的生产服务集群进行A/B测试;其中,所述A/B测试是一种基于同一测试目标,将请求信息按照预置的比例分别发送至所述测试服务集群和所述生产服务集群,并对所述测试服务集群和所述生产服务集群对所述请求信息的处理效果进行评价的测试方案;

从所述GIT系统中获取所述迭代软件包的代码合并请求,根据预置的属性提取规则从所述代码合并请求中提取属性信息;其中,所述GIT系统是用于对生产软件包和迭代软件包的进行版本管理的分布式版本控制软件,所述代码合并请求是开发所述迭代软件包的开发端向所述GIT系统发送的,用于将所述开发端开发的开发代码整合成所述迭代软件包的请求指令;

接收所述控制端根据所述A/B测试生成的测试信息,根据预置的指标提取规则从所述测试信息中提取指标信息,将所述属性信息和所述指标信息整合成测试日志。

上述方案中,所述获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,对所述测试服务集群以及运行有所述生产软件包的生产服务集群进行A/B测试,包括:

接收控制端发送的软件编号,从生产环境中识别运行有与所述软件编号对应的生产软件包的生成服务集群,及从预置的GIT系统中获取与所述软件编号对应的迭代软件包,将所述迭代软件包部署在所述测试服务集群中;

获取分别与所述测试服务集群和所述生产服务集群连接的负载均衡器,在所述负载均衡器中构建请求分发策略,所述请求分发策略定义了向所述测试服务集群和所述生产服务集群分发请求信息的比例;

调用所述负载均衡器并根据所述请求分发策略,向所述测试服务集群和所述生产服务集群发送请求信息,用以对所述生产软件包和所述迭代软件包进行A/B测试。

上述方案中,所述从所述GIT系统中获取所述迭代软件包的代码合并请求之前,所述方法还包括:

创建日志表,定义所述日志表中列的特征获得列标注,并根据所述列标注构建属性提取规则和指标提取规则。

上述方案中,所述从所述GIT系统中获取所述迭代软件包的代码合并请求,根据预置的属性提取规则从所述代码合并请求中提取属性信息,包括:

在所述GIT系统中识别生成所述迭代软件包的主分支,并从所述主分支中获取生成所述迭代软件包的代码合并请求;

获取所述属性提取规则中的属性元数据,从所述代码合并请求中获取与所述属性元数据对应的属性信息。

上述方案中,根据预置的指标提取规则从所述测试信息中提取指标信息,将所述属性信息和所述指标信息整合成测试日志,包括:

从所述指标提取规则中获取指标元数据,根据所述指标元数据从所述测试信息中提取所述指标信息;

汇总所述指标信息和所述属性信息形成信息集合,并将所述属性信息中的身份信息作为所述信息集合的名称得到所述测试日志。

上述方案中,所述将所述属性信息和所述指标信息整合成测试日志之后,所述方法还包括:

将所述测试日志载入所述日志表中,并拍摄所述测试信息的快照获得测试截图,将所述测试截图载入所述日志表中并与所述测试日志关联。

上述方案中,所述将所述测试截图载入所述日志表中并与所述测试日志关联之后,所述方法还包括:

提取所述日志表中的测试截图使所述日志表转为文本表,将所述测试截图保存在预置的数据库中,并将所述测试截图与所述文本表中的测试日志关联;提取所述文本表中各所述测试日志的身份信息并汇总形成索引表,将所述索引表与所述文本表关联,并将所述索引表和所述文本表保存在预置的缓存器中;

所述将所述索引表和所述文本表保存在预置的缓存器中之后,还包括:

将所述索引表和所述文本表上传至区块链中。

为实现上述目的,本发明还提供一种测试调度及日志管理装置,包括:

测试调度模块,用于获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,对所述测试服务集群以及运行有所述生产软件包的生产服务集群进行A/B测试;其中,所述A/B测试是一种基于同一测试目标,将请求信息按照预置的比例分别发送至所述测试服务集群和所述生产服务集群,并对所述测试服务集群和所述生产服务集群对所述请求信息的处理效果进行评价的测试方案;

属性提取模块,用于从所述GIT系统中获取所述迭代软件包的代码合并请求,根据预置的属性提取规则从所述代码合并请求中提取属性信息;其中,所述GIT系统是用于对生产软件包和迭代软件包的进行版本管理的分布式版本控制软件,所述代码合并请求是开发所述迭代软件包的开发端向所述GIT系统发送的,用于将所述开发端开发的开发代码整合成所述迭代软件包的请求指令;

日志管理模块,用于接收所述控制端根据所述A/B测试生成的测试信息,根据预置的指标提取规则从所述测试信息中提取指标信息,将所述属性信息和所述指标信息整合成测试日志。

为实现上述目的,本发明还提供一种计算机设备,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述计算机设备的处理器执行所述计算机程序时实现上述测试调度及日志管理方法的步骤。

为实现上述目的,本发明还提供一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述可读存储介质存储的所述计算机程序被处理器执行时实现上述测试调度及日志管理方法的步骤。

本发明提供的测试调度及日志管理方法、装置、计算机设备及存储介质,通过获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,实现将生产软件包和迭代软件包进行区别布置的效果,以便于后续对生产软件包和迭代软件包进行A/B测试,通过自动所述A/B测试以便于开发端和/或控制端能够准确快速的发现生产软件包和迭代软件包之间的效果差异,提高了软件包的测试效率。

通过属性提取规则从所述代码合并请求中提取属性信息的方式,获得迭代软件包的开发端,进而实现将测试信息与具体的开发端关联,以便于后续与测试信息中的指标信息结合,用以对开发端的开发效果进行综合评价,并且通过提取主要的属性信息的方式,降低了测试日志中描述迭代软件包开发端属性信息的数据存储量。通过指标提取规则从所述测试信息中提取指标信息的方式,得到测试信息所传递的关键信息和主要观点,使得开发人员仅通过该关键指标即可准确评价该迭代软件包的使用效果。同时,通过将所述属性信息和指标信息整合成测试信息的方式,使属性信息与指标信息一一对应,进而使开发人员能够准确快速的获得指标信息所属部门,及开发该迭代软件包的开发人员,以便于后续的对迭代软件包进行管理。

附图说明

图1为本发明测试调度及日志管理方法实施例一的流程图;

图2为本发明测试调度及日志管理方法实施例二中测试调度及日志管理方法的环境应用示意图;

图3是本发明测试调度及日志管理方法实施例二中测试调度及日志管理方法的具体方法流程图;

图4为本发明测试调度及日志管理装置实施例三的程序模块示意图;

图5为本发明计算机设备实施例四中计算机设备的硬件结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供的测试调度及日志管理方法、装置、计算机设备及存储介质,适用于人工智能的软件测试技术领域,为提供一种基于测试调度模块、属性提取模块、日志管理模块的测试调度及日志管理方法。本发明通过获取与当前运行的生产软件包对应的迭代软件包,并将迭代软件包部署在测试服务集群中,对测试服务集群以及运行有生产软件包的生产服务集群进行A/B测试;从GIT系统中获取迭代软件包的代码合并请求,根据属性提取规则从代码合并请求中提取属性信息;接收控制端根据A/B测试生成的测试信息,根据预置的指标提取规则从测试信息中提取指标信息,将属性信息和指标信息整合成测试日志。

实施例一:

请参阅图1,本实施例的一种测试调度及日志管理方法,包括:

S101:获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,对所述测试服务集群以及运行有所述生产软件包的生产服务集群进行A/B测试;其中,所述A/B测试是一种基于同一测试目标,将请求信息按照预置的比例分别发送至所述测试服务集群和所述生产服务集群,并对所述测试服务集群和所述生产服务集群对所述请求信息的处理效果进行评价的测试方案。

S103:从所述GIT系统中获取所述迭代软件包的代码合并请求,根据预置的属性提取规则从所述代码合并请求中提取属性信息;其中,所述GIT系统是用于对生产软件包和迭代软件包的进行版本管理的分布式版本控制软件,所述代码合并请求是开发所述迭代软件包的开发端向所述GIT系统发送的,用于将所述开发端开发的开发代码整合成所述迭代软件包的请求指令。

S104:接收所述控制端根据所述A/B测试生成的测试信息,根据预置的指标提取规则从所述测试信息中提取指标信息,将所述属性信息和所述指标信息整合成测试日志。

在示例性的实施例中,通过获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,实现将生产软件包和迭代软件包进行区别布置的效果,以便于后续对生产软件包和迭代软件包进行A/B测试,其中,所述A/B测试是指是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用的测试方案;通过自动所述A/B测试以便于开发端和/或控制端能够准确快速的发现生产软件包和迭代软件包之间的效果差异,提高了软件包的测试效率。

通过从所述GIT系统中获取所述迭代软件包的代码合并请求,根据预置的属性提取规则从所述代码合并请求中提取属性信息的方式,获得迭代软件包的开发端,进而实现将测试信息与具体的开发端关联,以便于后续与测试信息中的指标信息结合,用以对开发端的开发效果进行综合评价,并且通过提取主要的属性信息的方式,降低了测试日志中描述迭代软件包开发端属性信息的数据存储量。通过接收所述控制端根据所述A/B测试生成的测试信息,根据预置的指标提取规则从所述测试信息中提取指标信息的方式,得到测试信息所传递的关键信息和主要观点,使得开发人员仅通过该关键指标即可准确评价该迭代软件包的使用效果。同时,通过将所述属性信息和指标信息整合成测试信息的方式,使属性信息与指标信息一一对应,进而使开发人员能够准确快速的获得指标信息所属部门,及开发该迭代软件包的开发人员,以便于后续的对迭代软件包进行管理。

实施例二:

本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。

下面,以在运行有测试调度及日志管理方法的服务器中,对测试服务集群和生产服务集群进行A/B测试;从迭代软件包的代码合并请求中提取属性信息,并从A/B测试的测试信息中提取指标信息,将属性信息和指标信息整合成测试日志为例,来对本实施例提供的方法进行具体说明。需要说明的是,本实施例只是示例性的,并不限制本发明实施例所保护的范围。

图2示意性示出了根据本申请实施例二的测试调度及日志管理方法的环境应用示意图。

在示例性的实施例中,测试调度及日志管理方法所在的服务器2通过网络分别连接测试服务集群21、生产服务集群22、GIT系统3和控制端4;所述服务器2可以通过一个或多个网络提供服务,网络可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物;所述控制端4可为智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备。

图3是本发明一个实施例提供的一种测试调度及日志管理方法的具体方法流程图,该方法具体包括步骤S201至S206。

S201:获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,对所述测试服务集群以及运行有所述生产软件包的生产服务集群进行A/B测试;其中,所述A/B测试是一种基于同一测试目标,将请求信息按照预置的比例分别发送至所述测试服务集群和所述生产服务集群,并对所述测试服务集群和所述生产服务集群对所述请求信息的处理效果进行评价的测试方案。

为实现自动对生产软件包和迭代软件包之间的效果差异,本步骤通过获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,实现将生产软件包和迭代软件包进行区别布置的效果,以便于后续对生产软件包和迭代软件包进行A/B测试,其中,所述A/B测试是指是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用的测试方案;通过所述A/B测试以便于开发端和/或控制端,能够准确快速的发现生产软件包和迭代软件包之间的效果差异,提高了软件包的测试效率。

在一个优选的实施例中,所述获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,对所述测试服务集群以及运行有所述生产软件包的生产服务集群进行A/B测试,包括:

S11:接收控制端发送的软件编号,从生产环境中识别运行有与所述软件编号对应的生产软件包的生成服务集群,及从预置的GIT系统中获取与所述软件编号对应的迭代软件包,将所述迭代软件包部署在所述测试服务集群中。

本步骤中,所述软件编号是表征软件的唯一性标识,通过控制端发送的软件编号,从所述GIT系统中获取相应的迭代软件包的方式,以准确的获取相应的迭代软件包。进一步地,根据所述软件编号识别GIT系统中的软件包,获取版本号为最新的软件包并将其设为待测软件包。从生产环境中识别运行有与所述软件编号对应的生产软件包的生成服务集群,判断所述生产软件包的版本号与所述待测软件包的版本号是否一致;若是,则结束;若否,则将所述待测软件包设为所述迭代软件包。

需要说明的是,所述GIT系统是指分布式版本控制系统,用于软件项目的开发及版本迭代,其通过与至少一个开发端连接,以向开发端分配开发任务,及通过接收开发端发送的功能代码并合并,形成用于对当前的生产软件包进行版本更新的迭代软件包。

S12:获取分别与所述测试服务集群和所述生产服务集群连接的负载均衡器,在所述负载均衡器中构建请求分发策略,所述请求分发策略定义了向所述测试服务集群和所述生产服务集群分发请求信息的比例。

本步骤中,所述负载均衡器是基于现有网络结构上,将请求分摊到多个服务器/服务集群上进行执行,进而实现扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的效果的数据路由设备。

通过在所述负载均衡器中构建请求分发策略的方式,在负载均衡器中定义向测试服务集群和生产服务集群发送请求信息的比例,简化了测试迭代软件包的操作,提高了测试效率。

S13:调用所述负载均衡器并根据所述请求分发策略,向所述测试服务集群和所述生产服务集群发送请求信息,用以对所述生产软件包和所述迭代软件包进行A/B测试。

本步骤中,通过所述请求分发策略进行所述A/B测试,以便于控制端根据所述A/B测试生成用于评价迭代软件包的优劣及特点的测试信息。

S202:创建日志表,定义所述日志表中列的特征获得列标注,并根据所述列标注构建属性提取规则和指标提取规则。

为实现自定义的构建属性提取规则和指标提取规则,以便于开发人员能够根据需求获得相应信息,本步骤通过创建日志表,定义所述日志表中列的特征获得列标注的方式,构建用于保存测试日志的日志表,以便于后续对测试日志进行查询。通过根据所述列标注构建属性提取规则和指标提取规则的方式,不仅使得开发人员能够根据其需求获取相应的属性信息和指标信息,还保证了测试对象的属性以及测试指标保存的全面性,还极大的降低了属性信息和指标信息的保存空间。

S203:从所述GIT系统中获取所述迭代软件包的代码合并请求,根据预置的属性提取规则从所述代码合并请求中提取属性信息;其中,所述GIT系统是用于对生产软件包和迭代软件包的进行版本管理的分布式版本控制软件,所述代码合并请求是开发所述迭代软件包的开发端向所述GIT系统发送的,用于将所述开发端开发的开发代码整合成所述迭代软件包的请求指令。

为识别迭代软件包的开发端,以便于根据测试信息对开发端的开发效果进行评价,本步骤通过从所述GIT系统中获取所述迭代软件包的代码合并请求,根据预置的属性提取规则从所述代码合并请求中提取属性信息的方式,

获得迭代软件包的开发端,进而实现将测试信息与具体的开发端关联,以便于后续与测试信息中的指标信息结合,用以对开发端的开发效果进行综合评价,并且通过提取主要的属性信息的方式,降低了测试日志中描述迭代软件包开发端属性信息的数据存储量。

在一个优选的实施例中,所述从所述GIT系统中获取所述迭代软件包的代码合并请求,根据预置的属性提取规则从所述代码合并请求中提取属性信息,包括:

S31:在所述GIT系统中识别生成所述迭代软件包的主分支,并从所述主分支中获取生成所述迭代软件包的代码合并请求。

本步骤中,GIT系统中的代码合并请求记载了与所述功能代码所在管理分支对应的功能分支,以及用于接收所述功能代码并合并的主代码所在的主分支;同时还记载了所述属性信息,其包括身份信息、更新名称和更新说明,身份信息为所述属性信息的唯一性标识,其可为所述属性信息的主键ID,也可为根据软件编号和版本号整合而成的表征所述迭代软件包身份的软件ID;所述更新名称用于对所述迭代软件包所实现的功能任务进行简要说明;所述更新说明用于对所述迭代软件包所实现的功能任务进行详细说明,并记载开发所述迭代软件包的开发者及其部门。

S32:获取所述属性提取规则中的属性元数据,从所述代码合并请求中获取与所述属性元数据对应的属性信息。

本步骤中,所述属性元数据为所述日志表中用于表征开发端属性特征的列标注,根据所述属性元数据可有针对性的从代码合并请求中获取所述属性信息,保证了属性信息提取准确度。

示例性地,所述属性元数据如下所示:

id string comment'主键ID',(用于获取身份信息)

dep_cls1 string comment'一级部门',(用于获取开发者及其部门)

dep_cls2 string comment'二级部门',(用于获取开发者及其部门)

dep_cls3 string comment'三级部门',(用于获取开发者及其部门)

S204:接收所述控制端根据所述A/B测试生成的测试信息,根据预置的指标提取规则从所述测试信息中提取指标信息,将所述属性信息和所述指标信息整合成测试日志。

为获取测试信息中的关键信息,用以准确的表达测试信息中所要传递的主要内容和观点,本步骤通过接收所述控制端根据所述A/B测试生成的测试信息,根据预置的指标提取规则从所述测试信息中提取指标信息的方式,得到测试信息所传递的关键信息和主要观点,使得开发人员仅通过该关键指标即可准确评价该迭代软件包的使用效果。

同时,通过将所述属性信息和指标信息整合成测试信息的方式,使属性信息与指标信息一一对应,进而使开发人员能够准确快速的获得指标信息所属部门,及开发该迭代软件包的开发人员,以便于后续的对迭代软件包进行管理。

在一个优选的实施例中,根据预置的指标提取规则从所述测试信息中提取指标信息,将所述属性信息和所述指标信息整合成测试日志,包括:

S41:从所述指标提取规则中获取指标元数据,根据所述指标元数据从所述测试信息中提取所述指标信息。

本步骤中所述指标元数据为所述日志表中用于表征开发端指标特征的列标注,根据所述指标元数据可有针对性的从代码合并请求中获取所述指标信息,保证了指标信息提取准确度。

示例性地,所述指标元数据如下所示:

aim string comment'试验目的',

aim_index_data string comment'目标指标',

drive_index_data string comment'驱动指标',

threshold_index_data string comment'护栏指标',

p_value decimal(16,2)comment'p值',

test_html string comment'试验的网页信息',

test_pic string comment'试验的截图'。

S42:汇总所述指标信息和所述属性信息形成信息集合,并将所述属性信息中的身份信息作为所述信息集合的名称得到所述测试日志。

本步骤中,所述属性信息的身份信息为所述属性信息的唯一性标识,其可为所述属性信息的主键ID,也可为根据软件编号和版本号整合而成的表征所述迭代软件包身份的软件ID。通过将所述属性信息中的身份信息作为所述信息集合的名称得到所述测试日志的方式,以便于通过所述名称快速准确的查找开发人员所需的属性信息和指标信息。

S205:将所述测试日志载入所述日志表中,并拍摄所述测试信息的快照获得测试截图,将所述测试截图载入所述日志表中并与所述测试日志关联。

为便于测试结果的保存,本步骤将所述测试日志载入所述日志表中的方式,以便于后续对测试日志进行保存和管理;由于根据测试日志对后续的开发方案的指导,有时会使用到完整的测试信息,因此,为保证测试信息保存的全面性,本步骤通过拍摄所述测试信息的快照获得测试截图,将所述测试截图载入所述日志表中并与所述测试日志关联。

S206:提取所述日志表中的测试截图使所述日志表转为文本表,将所述测试截图保存在预置的数据库中,并将所述测试截图与所述文本表中的测试日志关联;提取所述文本表中各所述测试日志的身份信息并汇总形成索引表,将所述索引表与所述文本表关联,并将所述索引表和所述文本表保存在预置的缓存器中。

为避免如测试截图等大文件保存至缓存器,导致缓存器保存空间不足且反馈数据迟缓的问题发生,本步骤通过提取所述日志表中的测试截图使所述日志表转为文本表,将所述测试截图保存在预置的数据库中,并将所述测试截图与所述文本表中的测试日志关联,以及将所述文本表保存在预置的缓存器中的方式,将日志表中的测试截图等大文件提取出来并将其保存在所述数据库中,由于通常测试截图的获取概率较低,因此,实现了在保证日志表中测试日志的反馈效率的同时,还会根据开发端的信息获取需要,向其提供信息记载全面的测试截图,兼顾了信息反馈速度和全面性。

为使测试日志能够便于查询,本步骤通过提取所述文本表中各所述测试日志的身份信息并汇总形成索引表,将所述索引表与所述文本表关联的方式,使得开发人员仅需通过索引表即可获得其所需的测试日志,提高了测试日志的反馈效率。同时,通过将所述索引表和所述文本表保存在预置的缓存器中的方式,进一步的提高了开发人员调用所述索引表,以及通过所述索引表获取所述测试日志的效率。

优选的,所述将所述索引表和所述文本表保存在预置的缓存器中之后,还包括:

将所述索引表和所述文本表上传至区块链中。

需要说明的是,基于所述索引表和所述文本表得到对应的摘要信息,具体来说,摘要信息由所述索引表和所述文本表进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证所述索引表和所述文本表是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

实施例三:

请参阅图4,本实施例的一种测试调度及日志管理装置1,包括:

测试调度模块11,用于获取与当前运行的生产软件包对应的迭代软件包,并将所述迭代软件包部署在预置的测试服务集群中,对所述测试服务集群以及运行有所述生产软件包的生产服务集群进行A/B测试;其中,所述A/B测试是一种基于同一测试目标,将请求信息按照预置的比例分别发送至所述测试服务集群和所述生产服务集群,并对所述测试服务集群和所述生产服务集群对所述请求信息的处理效果进行评价的测试方案;

属性提取模块13,用于从所述GIT系统中获取所述迭代软件包的代码合并请求,根据预置的属性提取规则从所述代码合并请求中提取属性信息;其中,所述GIT系统是用于对生产软件包和迭代软件包的进行版本管理的分布式版本控制软件,所述代码合并请求是开发所述迭代软件包的开发端向所述GIT系统发送的,用于将所述开发端开发的开发代码整合成所述迭代软件包的请求指令;

日志管理模块14,用于接收所述控制端根据所述A/B测试生成的测试信息,根据预置的指标提取规则从所述测试信息中提取指标信息,将所述属性信息和所述指标信息整合成测试日志。

可选的,所述测试调度及日志管理装置1还包括:

规则制定模块12,用于创建日志表,定义所述日志表中列的特征获得列标注,并根据所述列标注构建属性提取规则和指标提取规则。

快照日志模块15,用于将所述测试日志载入所述日志表中,并拍摄所述测试信息的快照获得测试截图,将所述测试截图载入所述日志表中并与所述测试日志关联。

索引文本模块16,用于提取所述日志表中的测试截图使所述日志表转为文本表,将所述测试截图保存在预置的数据库中,并将所述测试截图与所述文本表中的测试日志关联;提取所述文本表中各所述测试日志的身份信息并汇总形成索引表,将所述索引表与所述文本表关联,并将所述索引表和所述文本表保存在预置的缓存器中。

可选的,所述测试调度模块11还包括:

迭代部署单元111,用于接收控制端发送的软件编号,从生产环境中识别运行有与所述软件编号对应的生产软件包的生成服务集群,及从预置的GIT系统中获取与所述软件编号对应的迭代软件包,将所述迭代软件包部署在所述测试服务集群中。

策略构建单元112,用于获取分别与所述测试服务集群和所述生产服务集群连接的负载均衡器,在所述负载均衡器中构建请求分发策略,所述请求分发策略定义了向所述测试服务集群和所述生产服务集群分发请求信息的比例。

测试执行单元113,用于调用所述负载均衡器并根据所述请求分发策略,向所述测试服务集群和所述生产服务集群发送请求信息,用以对所述生产软件包和所述迭代软件包进行A/B测试。

可选的,所述属性提取模块13还包括:

请求提取单元131,用于在所述GIT系统中识别生成所述迭代软件包的主分支,并从所述主分支中获取生成所述迭代软件包的代码合并请求。

属性提取单元132,用于获取所述属性提取规则中的属性元数据,从所述代码合并请求中获取与所述属性元数据对应的属性信息。

可选的,所述日志管理模块14还包括:

指标提取单元141,用于从所述指标提取规则中获取指标元数据,根据所述指标元数据从所述测试信息中提取所述指标信息。

日志生成单元142,用于汇总所述指标信息和所述属性信息形成信息集合,并将所述属性信息中的身份信息作为所述信息集合的名称得到所述测试日志。

本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。

人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

本技术方案应用于人工智能的数据处理领域,通过获取与当前运行的生产软件包对应的迭代软件包,并将迭代软件包部署在测试服务集群中,通过所述人工智能技术对测试服务集群以及运行有生产软件包的生产服务集群进行A/B测试,及从GIT系统中获取迭代软件包的代码合并请求,根据属性提取规则从代码合并请求中提取属性信息,以及根据A/B测试生成的测试信息,根据预置的指标提取规则从测试信息中提取指标信息,将属性信息和指标信息整合成测试日志。

实施例四:

为实现上述目的,本发明还提供一种计算机设备5,实施例三的测试调度及日志管理装置的组成部分可分散于不同的计算机设备中,计算机设备5可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个应用服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器51、处理器52,如图5所示。需要指出的是,图5仅示出了具有组件-的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

本实施例中,存储器51(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器51可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器51也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器51还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器51通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例三的测试调度及日志管理装置的程序代码等。此外,存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制计算机设备的总体操作。本实施例中,处理器52用于运行存储器51中存储的程序代码或者处理数据,例如运行测试调度及日志管理装置,以实现实施例一和实施例二的测试调度及日志管理方法。

实施例五:

为实现上述目的,本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器52执行时实现相应功能。本实施例的计算机可读存储介质用于存储实现所述测试调度及日志管理方法的计算机程序,被处理器52执行时实现实施例一和实施例二的测试调度及日志管理方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:容器裸金属服务器及其物理环境风险的应对方法、系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!