CN117009238A - 数据测试方法、装置、电子设备、存储介质和程序产品 - Google Patents

数据测试方法、装置、电子设备、存储介质和程序产品 Download PDF

Info

Publication number
CN117009238A
CN117009238A CN202311009012.6A CN202311009012A CN117009238A CN 117009238 A CN117009238 A CN 117009238A CN 202311009012 A CN202311009012 A CN 202311009012A CN 117009238 A CN117009238 A CN 117009238A
Authority
CN
China
Prior art keywords
test
service
scene
environment
scheduling
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.)
Pending
Application number
CN202311009012.6A
Other languages
English (en)
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202311009012.6A priority Critical patent/CN117009238A/zh
Publication of CN117009238A publication Critical patent/CN117009238A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种数据测试方法、装置、电子设备、存储介质和产品,涉及计算机技术领域,尤其涉及云计算、大数据领域。具体实现方案为:在服务对象中,确定多个服务模块,其中,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境,以分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。

Description

数据测试方法、装置、电子设备、存储介质和程序产品
技术领域
本公开涉及计算机技术领域,尤其涉及云计算、大数据领域中的一种数据测试方法、装置、电子设备、存储介质和程序产品。
背景技术
目前,针对产品的功能进行验收与测试,不同的业务团队往往存在自己的一套线下测试环境,通常是业务的研发工程师(Research and Development engineer,简称为RD)通过物理机部署测试服务。
但是,不同业务有自己的测试环境,没有统一维护标准,业务RD通过物理机器部署服务,环境缺乏一定稳定性,某服务模块的RD仅负责知悉所在模块的状态,若多人部署不同模块会造成环境冲突,从而导致数据测试的效率低的技术问题。
发明内容
本公开提供了一种本公开提供了一种数据测试方法、装置、电子设备、存储介质和程序产品。
根据本公开的另一方面,提供了一种数据测试方法。该方法可以包括:在服务对象中,确定多个服务模块,其中,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境,以分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。
根据本公开的另一方面,还提供了另一种数据测试方法。该方法可以包括:响应作用于操作界面上的分配操作,在操作界面上显示分配至测试环境中的至少一服务模块,其中,至少一服务模块来自服务对象中多个服务模块,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;响应作用于操作界面上的测试操作,在操作界面上显示服务模块的测试结果,其中,测试结果为基于调度至测试环境下的测试资源,对服务模块进行测试得到。
根据本公开的另一方面,还提供了一种数据测试装置。该装置可以包括:确定单元,用于在服务对象中,确定多个服务模块,其中,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;调度单元,用于将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境,以分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。
根据本公开的另一方面,还提供了另一种数据测试装置。该装置可以包括:第一显示单元,用于响应作用于操作界面上的分配操作,在操作界面上显示分配至测试环境中的至少一服务模块,其中,至少一服务模块来自服务对象中多个服务模块,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;第二显示单元,用于响应作用于操作界面上的测试操作,在操作界面上显示服务模块的测试结果,其中,测试结果为基于调度至测试环境下的测试资源,对服务模块进行测试得到。
根据本公开的一方面,还提供了一种电子设备。该电子设备可以包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例的数据测试方法。
根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例的数据测试方法。
根据本公开的另一方面,还提供了一种计算机程序产品,可以包括计算机程序,计算机程序在被处理器执行时实现本公开实施例的数据测试方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的一种数据测试方法的流程图;
图2是根据本公开实施例的另一种数据测试方法的流程图;
图3是根据本公开实施例的一种构建开发环境的流程图;
图4是根据本公开实施例的一种沙盒联调环境维护的示意图;
图5是根据本公开实施例的一种构建环境容器的流程图;
图6是根据本公开实施例的一种用户视角构建容器的流程图;
图7是根据本公开实施例的一种申请容器页面的示意图;
图8是根据本公开实施例的一种容器页面的示意图;
图9是根据本公开实施例的一种沙盒场景化测试环境构建的示意图;
图10是根据本公开实施例的一种沙盒场景化测试环境构建的方法的流程示意图;
图11是根据本公开实施例的一种沙盒场景化测试的示意图;
图12是根据本公开实施例的一种任务设置的示意图;
图13是根据本公开实施例的一种数据测试装置的示意图;
图14是根据本公开实施例的另一种数据测试装置的示意图;
图15是根据本公开实施例的一种数据测试方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开提供了一种数据测试方法,图1是根据本公开实施例的一种数据测试方法的流程图,如图1所示,该数据测试方法的实施方案至少可以包括以下实施步骤:
步骤S102,在服务对象中,确定多个服务模块。
在本申请公开上述步骤S102提供的技术方案中,其中,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码。
在该实施例中,在服务对象中,可以确定多个服务模块。其中,服务对象可以为通过物理机器部署的服务,可以为运行在物理机器上的,用于实现特定功能或服务的计算机程序或者应用程序,此处仅为举例说明,不对服务对象类型做具体限制。服务模块可以用于表示在测试场景下,待测试服务功能的程度代码,可以为需要联调测试的服务模块,可以为需要迭代开发的模块,此处仅为举例说明,不对服务模块的类型做具体限制。多个服务模块可以为从服务模块集中获取到的,可以处于相同的测试场景中。测试场景可以为任务场景、迭代场景等,此处仅为举例说明,不对测试场景的类型做具体限制。待测试服务功能可以为业务迭代功能、增量功能等。待测试服务功能的程序代码用于测试服务模块,可以为模块测试分支代码。
可选地,同一个服务模块可以分配给不同的人开发。同时,一个人也可以同时进行多个服务模块的迭代。该实施例中,可以将本次需要联调测试的服务模块集中多个服务模块通过平台归纳到一个测试场景下。
举例而言,平台会自动维护测试场景下所有服务模块之间的对应关系,包括同一个服务模块有多少人同时在开发。可以在服务对象中,确定服务对象对应的多个服务模块。
步骤S104,将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境,以分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。
在本申请公开上述步骤S104提供的技术方案中,确定测试场景下预先设置的测试资源,可以将测试资源调度至测试场景中的多个测试环境,以基于测试资源分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。其中,测试资源可以为流量资源(简称为流量)。测试环境又可以称为研发环境,可以为应用容器引擎(Docker)的容器环境、通用的测试环境、沙盒测试环境、基准沙盒环境、基础(Base)环境等,此处仅为举例说明,不对测试环境的类型做具体限制。
可选地,该实施例对于相同服务模块,支持自由切换测试资源的调度(可以简称为流量调度),可以预先在平台中设置测试场景下的测试资源。可以通过平台设置将服务模块的测试资源调度至多人迭代中的测试环境中,比如,某个RD所对应的容器上,以分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。
举例而言,在流量转发上,可以预先设置测试场景下对应的测试资源。每个服务模块都有一个测试环境的快照,可以称为基准沙盒环境。服务网格可以将测试资源调度至服务模块的基准沙盒环境上,从而完成对服务模块的测试,得到测试结果,以达到实现级联测试的目的。其中,测试环境又可以为线上测试环境。
通过上述步骤S102至步骤S104,在服务对象中,确定多个服务模块,其中,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境,以分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。也就是说,本公开实施例提出场景化的概念,将服务模块和测试场景绑定,通过场景ID可以同时迭代多个服务模块,服务模块之间的资源调度由场景ID进行,打破测试联调受限,从而达到提高数据测试效率的技术效果,解决了数据测试效率低的技术问题。
下面对该实施例的上述方法进行进一步地详细介绍。
作为一种可选的实施例,该方法还可以包括:生成测试场景,其中,标识信息用于标识测试场景,且用于表征多个服务模块之间的关联关系。
在该实施例中,可以生成测试场景。可以通过标识信息对测试场景进行标识。基于标识信息,可以确定多个服务模块之间的关联关系。其中,标识信息可以为场景身份信息(Identity,简称为ID),其也可以记为scene_id,又可以称为链路特征的身份信息、特征标识ID、链路特征ID等,此处仅为举例说明,不对标识信息进行具体限制。
可选地,同一个服务模块可以分配给不同的人开发。同时,一个人也可以同时进行多个服务模块的迭代。该实施例中,可以将本次需要联调测试的多个服务模块通过平台归纳到一个测试场景下,通过标识信息对生成的测试场景进行标识,以通过标识信息借助服务网格实现全链路的调度。相同测试场景下的服务模块的场景ID相同。
举例而言,业务可以直接进入到对应的沙盒场景化页面,创建一个测试场景,并且通过标识信息对测试场景进行标识,可以分配一些服务模块给RD进行迭代。可以根据标识信息自动维护相同标识信息下所有服务模块之间的对应关系。
该实施例在沙盒场景化测试场景(又可以称为链路)的构建上,创造性的提出了场景化理念,虚拟一个测试场景,将迭代计划(也即服务模块)和测试场景之间进行绑定,每个测试场景具备位移的特征标识ID,通过标识信息可以将同一服务模块分配给不同的RD开发或一人同时迭代多个服务模块。也即,在该实施例中,服务模块之间的关联关系(又可以称为调度组织)由标识信息进行确定,以解决传统并行测试联调受限的问题。
作为一种可选的实施例,基于标识信息,向测试场景设置测试资源。
在该实施例中,确定测试场景的标识信息,基于标识信息,可以向测试场景设置测试资源。
可选地,RD收到测试资源的分配后,通过场景化平台认领自己的测试资源,并通过平台构建测试环境,比如,容器研发环境,完成服务模块的基准部署、产出包更新、前后置任务等操作并进行增量功能开发。
举例而言,假设本次需要迭代开发的服务模块为服务模块A和服务模块C,同时服务模块A和服务模块C之间测试需要中间服务模块B以及最终服务模块D的参与才算一个完整的链路。可以将涉及到的4个服务模块通过一站式研发平台统一纳入到一个场景下,随之产生一个场景ID(可以记为scene_id)。基于场景ID,可以向测试场景设置测试资源,比如,网页版(WEB版)在对应的服务模块设置调度,平台可以自动在网页上种上以该场景ID为特征值的缓存信息,基于标识信息,向测试场景设置测试资源,以完成调度设置。
在该实施例中,可以将某次迭代的多个服务模块统一归纳到一个迭代场景计划(又可以称为测试场景)中,该测试场景全局唯一,具备唯一的标识信息(比如,ID标识)。服务模块可以利用Docker容器部署测试环境,以实现快速构建研发环境并确保所有测试场景的一致性。同一个服务模块可以分配给不同的人开发。同时,一个人也可以同时进行多个服务模块的迭代。可以通过将需要联调测试的服务模块中通过可视化平台归纳到一个测试场景下,就可以通过标识信息,借助服务网格实现全链路的调度,从而打破了联调测试受限的问题,进而达到提高数据测试的效率的技术效果,解决了数据测试的效率低的技术问题。
作为一种可选的实施例,基于标识信息,向测试场景设置测试资源包括:将标识信息确定为特征值,来向资源提供端请求测试资源。
在该实施例中,可以将标识信息确定为特征值,以向资源提供端请求测试资源。其中,资源提供端又可以称为依赖方。特征值可以包括染色特征值。
可选地,可以将标识信息确定为特征值。可以检测顶部(header)中的染色特征值,基于特征值将测试资源从资源提供端调度至对应的测试环境中。比如,可以将流量转发到指定的测试场景中的多个测试环境中,以实现链路的串联。
举例而言,在正式联调测试前,可分为两个端进行测试,网页版(WEB版)在对应的服务模块设置调度信息即可,平台可以在网页上种上以该场景ID为特征值的缓存(Cookie信息);网络接入端(NA端)则可以通过在顶部(header)中加入该场景ID为特征值的请求头以完成调度设置。可以基于标识信息,来向资源提供端请求测试资源。
该实施例通过场景化组织业务的迭代联调,规范化容器调度,解决多路多人联调测试冲突,通过场景化标识信息来确定最终调度路由,以实现多模块、多人同时并行测试验收,灵活切换。平台集成80%自动化能力,从而大幅降低业务人工干预程度,实现了提高数据测试的效率的技术效果。其中,平台可以为可视化平台,可以用于对特征值、调度信息等内容进行设置。
作为一种可选的实施例,步骤S104,将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境包括:按照调度信息,将测试资源调度至多个测试环境,其中,调度信息用于表征调度测试资源的规则,且按照时间周期进行更新。
在该实施例中,可以按照调度信息,将测试资源调度至多个测试环境中,其中,调度信息可以用于表征调度测试资源的规则,可以为预选设置的调度规则,比如,可以为实时更新调度规则、定时更新调度规则等,此处仅为举例说明,不对调度信息的内容做具体限制。
可选地,可以按照时间周期对调度信息进行更新,且基于调度信息,将测试资源调度至多个测试环境中。其中,时间周期可以为预先设定的,比如,可以为0.5-1分钟左右,此处仅为举例说明,不对时间周期的大小做具体限制。
举例而言,用户可以在可视化平台设置调度信息,比如,端口信息、更新规则等。可视化平台(可以简称为平台)后端服务可以进行持久化,网关会不定时轮询获取最新的调度信息,以使得平台按照时间周期更新调度信息。按照调度信息,可以将测试资源调度至多个测试环境中。
作为一种可选的实施例,按照调度信息,将测试资源调度至多个测试环境包括:按照调度信息,将测试资源由多个测试环境中第一测试环境调度至多个测试环境中第二测试环境。
在该实施例中,可以按照调度信息,将测试资源由多个测试环境中的第一测试环境调度至多个测试环境中第二测试环境。
可选地,该实施例中同一服务模块支持自由切换测试资源的调度,因此,可以按照调度信息,将测试资源由多个测试环境中的第一测试环境调度至多个测试环境中的第二测试环境中。
在联调测试的过程中,绝大部分业务团队(可以简称为业务)没有统一的沙盒联调环境维护标准,通常采用固定一部分机器池子作为测试模块部署的平台。当有业务迭代需要测试验收时,业务RD将对应的模块测试分支代码部署到某台机器上,暴露出地址给依赖方测试。并行测试迭代过程中,往往涉及到同一服务模块多个分支同时部署的情况,联调测试时需要不断和依赖方确认,并切换到对应的代码分支上。特别是当级联测试时,如果某个链路中的一环是线上环境,后一环是线下环境,则无法让线上环境的模块将测试资源请求到线下环境,最终导致整个链路中断,从而存在无法进行数据测试的问题。而在该实施例中,提供可视化平台操作,使用方可以按需申请,即可在分钟级别复刻出一套完整的容器开发环境,在测试链路的构建上,同一服务模块可以按照通过平台设置的调度信息,将测试环境由多个测试环境中的第一测试环境调度至多个测试环境中的第二测试环境中,以实现自由切换测试资源的调度。
作为一种可选的实施例,第一测试环境对应的至少一服务模块与第二测试环境对应的至少一服务模块相同。
在该实施例中,第一测试环境对应的至少一服务模块与第二测试环境对应的至少一服务模块相同。
可选地,平台会自动维护标识信息下所有服务模块之间的对应关系,包括:有多少个服务模块、同一个服务模块有多少人同时在开发。对于同一模块,支持自由切换流量调度。相同的服务模块可以分配给不同的测试环境进行开发测试。
作为一种可选的实施例,按照调度信息,将测试资源调度至多个测试环境包括:按照调度信息,将测试资源中多个子测试资源调度至多个测试环境,其中,多个子测试资源与多个测试环境一一对应。
在该实施例中,可以按照调度信息,将测试资源中多个子测试资源调度至多个测试环境中。其中,多个子测试资源与多个测试环境一一对应。
可选地,业务可以通过平台设置将服务模块的子测试资源转发到多人迭代中的某个具体RD所在测试环境中。
可选地,可以将需要迭代的服务模块A1、C1通过平台指定分配给对应的RD。
作为一种可选的实施例,步骤S104,将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境包括:调用服务网格将测试资源调度至多个测试环境。
在该实施例中,可以调用服务网格,将测试资源调度至多个测试环境中。其中,服务网格可以为基础组件服务网格,比如,网关(GateWay)、云计算服务网格(UFC)等,此处仅为举例说明,不对服务网格的类型做具体限制。
可选地,在测试资源的转发上,所有的请求都会经过服务网格,因此,可以调用服务网格将测试资源调度至多个测试环境中。
作为一种可选的实施例,该方法还可以包括:向服务模块构建至少一目标容器,其中,目标容器用于表征服务模块对应的测试环境。
在该实施例中,可以向服务模块构建至少一目标容器。其中,目标容器可以用于表征服务模块对应的测试环境,可以为联调容器、Docker容器等,此处仅为举例说明,不对目标容器的类型做具体限制。
可选地,可以向服务模块构建至少一目标容器,业务使用方(又可以称为用户)可以根据需求申请目标容器,以完成对服务模块的测试。
该实施例在研发环境构建上,通过e容器化应用程序(Dockerfile)预先将通用的研发环境构建成容器镜像,利用用于容器编排和管理的开源平台(Kubernetes,简称为K8s)技术实现容器编排,以向服务模块构建至少一目标容器。对业务完全屏蔽底层实现细节,所有能力全部提供可视化平台操作,业务使用方只需要按需申请目标容器,即可在分钟级别复刻出一套完整的容器开发环境。容器环境具备强大的隔离性,并且具备动态扩缩容和镜像原地更新的能力,从而达到了提高数据测试的效率的技术效果。其中,Dockerfile可以为一种文本文件,用于定义Docker镜像的构建过程和配置信息,用于自动化构建和创建可移植的容器化应用程序。
作为一种可选的实施例,向服务模块构建至少一目标容器包括:基于测试环境的镜像信息构建目标容器。
在该实施例中,可以基于测试环境的镜像信息构建目标容器。其中,镜像信息可以为业务环境镜像、多种环境的容器镜像等,此处仅为举例说明,不对镜像信息的类型做具体限制。
可选地,Dockerfile镜像预先编排好了基础依赖组件,完全不需要依赖其他业务线。独立容器环境隔离,平台直接基于测试环境的镜像信息构建目标容器,以托管容器和镜像,预装联调测试所需所有环境,支持扩缩容、分享、释放等功能,从而达到了提高数据测试效率的目的。
举例而言,可以对业务使用方进行权限检验,判断用户是否具备目标容器的申请资格,如果用户具备申请资格,则初始化容器申请信息并跳转至申请页面。后台可以根据用户的申请信息,拉取指定的Docker环境镜像进行目标容器的构建,构建成功后,执行服务模块的测试。其中,申请信息可以为指定的容器镜像内核版本等信息,此处不做具体限制。同时,目标容器构建成功后,将自动启动容器代理程序(agent)的保活进程,实时上报目标容器状态信息,业务可以自动跳转集成开发环境(Visual Studio Code,简称为VSCODE IDE)进行编码页面开发,所有研发环境依赖通过镜像信息已平铺完毕,用户不再需要二次构建。
可选地,基于测试环境的镜像信息构建的目标容器(又可以称为容器镜像)支持原地更新、备份数据、拉取新镜像、复原数据等功能,完成镜像迭代升级的过程中,业务无感。
可选地,该实施例可以利用K8s技术根据持久化存储卷声明(Persistent VolumeClaim,简称为PVC)进行容量动态扩缩容,以实现资源动态调整,满足特殊业务需求,从而扩大本申请的适用范围。
该实施例,基于Docker容器化技术,构建目标容器,以达到快速构建隔离、稳定、统一的开发环境的目的,该实施例中,业务基于镜像信息构建目标环境周期缩短至分钟级别,且不需要重复构建,极大提升研发效率。
作为一种可选的实施例,基于测试环境的镜像信息构建目标容器包括:在应用容器引擎中利用测试环境的镜像信息构建目标容器。
在该实施例中,利用应用容器引擎的可移植特点,可以在应用引擎中利用测试环境的镜像信息构建目标容器。其中,应用容器引擎可以为Docker容器。
该实施例将通用的研发环境依赖构建成Dockerfile容器镜像,业务使用方完全透明。同时,采用业界主流的K8s容器编排技术,实现容器挂起、回收、分享、释放等策略,满足资源动态调度,有效提高资源利用率。所有能力均提供可视化平台操作,使用方只需按需申请,即可在分钟级别复刻出一套完整的容器开发环境,同时,一站式研发平台统一托管业务环境镜像(也即镜像信息),根据业务使用特点,及时更新维护发版Docker镜像,保障业务申请研发的目标容器具备最新的能力,从而达到了提高数据测试的效率的技术效果。
在本公开实施例中,可以将某次迭代的多个服务模块统一归纳到一个迭代场景计划(又可以称为测试场景)中,该测试场景全局唯一,具备唯一的标识信息(比如,ID标识)。服务模块可以利用Docker容器部署测试环境,以实现快速构建研发环境并确保所有测试场景的一致性。同一个服务模块可以分配给不同的人开发。同时,一个人也可以同时进行多个服务模块的迭代。可以通过将需要联调测试的服务模块中通过可视化平台归纳到一个测试场景下,就可以通过标识信息,借助服务网格实现全链路的调度,从而打破了联调测试受限的问题,进而达到了提高了数据测试效率的技术效果,解决了数据测试效率低的技术问题。
本公开实施例还从业务研发侧提供了另一种数据测试方法,图2是根据本公开实施例的另一种数据测试方法的流程图,如图2所示,该数据测试方法的实施方案至少可以包括以下实施步骤:
步骤S202,响应作用于操作界面上的分配操作,在操作界面上显示分配至测试环境中的至少一服务模块。
在本申请公开上述步骤S202提供的技术方案中,至少一服务模块来自服务对象中多个服务模块,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码。
在该实施例中,可以响应于操作界面上的分配操作,在操作界面上显示分配至测试环境中的至少一服务模块。其中,分配操作可以用于分配服务模块。至少一服务模块来自服务对象中多个服务模块。多个服务模块处于相同测试场景,可以用于表示在测试场景下待测试服务功能的程序代码。操作界面可以为可视化平台或移动终端的操作界面,可以用于选择或输入分配操作,此处仅为举例说明,不对操作界面的类型进行具体限制。
步骤S204,响应作用于操作界面上的测试操作,在操作界面上显示服务模块的测试结果,其中,测试结果为基于调度至测试环境下的测试资源,对服务模块进行测试得到。
在本公开上述步骤S204提供的技术方案中,可以响应于操作界面上的额测试操作,在操作界面上显示服务模块的测试结果。
在本申请公开上述步骤S204提供的技术方案中,测试结果可以为测试资源进行测试后得到的结果,可以为基于调度至测试环境下的测试资源,对服务模块进行测试得到。
可选地,该实施例可以搭建可视化平台,通过在可视化平台的操作界面上输入表单输入项,以提供多种环境的容器镜像供业务选择,比如,国内、国外、混合云等,业务可以根据自身的需要选择目标容器。都是通过可视化面板操作,实现释放、扩缩容、镜像更新、分享等管理能力,只需要鼠标点击即可完成复杂的操作,从而提高了数据测试过程中的便捷性。
作为一种可选的实施例,该方法还可以包括:在操作界面上显示测试场景的标识信息,其中,标识信息用于标识测试场景,且用于表征多个服务模块之间的关联关系。
在该实施例中,可以在操作界面上显示测试场景的标识信息,且可以对标识信息进行修改或调整。其中,标识信息可以用于标识测试场景,且可以用于表征多个服务模块之间的关联关系,该关联关系可以为多个服务模块属于相同测试场景。
作为一种可选的实施例,该方法还可以包括:响应作用于操作界面上的调用操作,在操作界面上显示至少一目标容器,其中,目标容器用于表征服务模块对应的测试环境。
在该实施例中,可以获取操作界面上输入的调用操作,响应于作用于操作界面上的调用操作,可以在操作界面上显示至少一目标容器。其中,目标容器可以用于表征服务模块对应的测试环境。
在该实施例中,响应作用于操作界面上的分配操作,在操作界面上显示分配至测试环境中的至少一服务模块,其中,至少一服务模块来自服务对象中多个服务模块,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;响应作用于操作界面上的测试操作,在操作界面上显示服务模块的测试结果,其中,测试结果为基于调度至测试环境下的测试资源,对服务模块进行测试得到,从而达到了提高了数据测试效率的技术效果,解决了数据测试效率低的技术问题。
下面结合优选的实施例对本公开实施例的上述技术方案进行进一步地举例介绍。
目前,随着业界新技术地不断涌现,为了适应社会发展,保持技术的领先性,公司在开发和运维过程中使用的技术栈(可以为技术工具、技术平台等)也会随着发生一定的变化,比如,云原生技术工具和随之衍生的开源的编程语言(简称为GO语言)。很多公司为了加快开发效率,积极拥抱云原生,不断将老的服务模块采用新的技术栈进行重构。在重构阶段,往往存在多种语言同时存在的现象,此时,需要快速构建稳定可靠地一致性研发环境来满足日常开发需求,同时能够降低业务切换成本,满足在过渡时期所有研发需求。
稳定的研发环境一方面可以保障业务快速迭代,提高生产力,另一方面可以确保环境一致性、简化服务部署流程、加快持续集成、缩短产品交付周期。有了稳定的开发环境,在正式交付产品前,还需要做相当一部分的集成测试来验收功能是否符合预期。不同的业务团队往往有自己的一套线下测试环境,通常是业务RD通过物理机器部署的服务。这种环境缺乏一定的稳定性,只有负责某模块的RD知悉所在模块的状态,多人部署不同模块往往会造成环境冲突(如端口)。可选地,该模式无法自由实现端到端联调,涉及多方依赖时,需要参与方全部配置(实际上有时候依赖中的某一方没有新功能迭代,但是为了配合测试需要部署一套沙盒测试环境)。基于此,需要一个完整、稳定、可靠、灵活的沙盒测试环境来支撑业务方联调测试。沙盒环境在软件开发和测试中具有重要意义,随着服务模块功能越来越复杂,上下游调用链路越来越长,依赖项越来越庞大,需要一个隔离的、安全的环境来进行实验、测试和验证,作为业务上线前的最后一道安全保障,规避线上风险和提高服务可靠性。
作为一种可选的实施例,通常是对研发环境进行搭建,公司提供基础的机器资源,部门基础架构组负责维护一些基础环境依赖组件,提供服务依赖环境的最小单元,业务团队根据自身需要,维护一套自己的开发和联调环境。图3是根据本公开实施例的一种构建开发环境的流程图,如图3所示,该方法可以包括以下步骤:
步骤S301,申领电脑,配置基础环境。
在该实施例中,业务团队申领电脑,并配置基础环境(比如,Git、GO等环境)。
步骤S302,确定对基础环境配置是否成功。
在该实施例中,确定对基础环境配置是否成功,如果配置成功,则实施步骤S304;如果配置失败,则实施步骤S303。
步骤S303,重新返回配置。
在该实施例中,响应于基础环境配置失败,则重新返回配置,可以检查原因、请假他人的方式完成基础环境的配置。
步骤S304,进入开发、拉取代码。
在该实施例中,响应于基础环境配置失败,可以进入开发环境,拉取对应的代码。
步骤S305,确定是否成功拉取代码。
在该实施例中,确定是否成功拉取代码,响应于成功拉取代码,则实施步骤S306;响应于拉取代码失败,则实施步骤S309。
步骤S306,对容器环境进行扩缩容。
在该实施例中,响应于成功拉取代码,则对容器环境进行扩缩容。
步骤S307,审批业务团队的扩缩容权限。
在该实施例中,响应于允许对容器环境进行扩缩容,可以由经理、运维工程师(Operations Engineer,简称为OP)对业务团队的扩缩容权限进行审批。
步骤S308,对容器环境进行升级。
在该实施例中,响应于业务团队具备扩缩容权限,可以对容器环境进行升级。
在该实施例中,描述了一个RD从0到1构建完整的开发环境,包括后续维护扩展等全过程,均需要多方参与,但是不同的业务团队往往有自己的一套线下测试环境,通常是业务RD通过物理机器部署的服务,这种容器环境缺乏一定的稳定性,只有负责某模块的RD知悉所在模块的状态,多人部署不同模块往往会造成环境冲突(比如,端口)。
步骤S309,重新配置基础环境。
在该实施例中,响应于拉取代码失败,则重新配置基础环境。
作为另一种可选的实施例,提出了一种沙盒联调环境维护的方法,图4是根据本公开实施例的一种沙盒联调环境维护的示意图,如图4所示,一个服务单元可以同时被业务团队中多个人并行开发,比如,A模块有10个应用程序编程接口(Application ProgrammingInterface,简称为API)需要开发,分给业务团队一中三个RD,每个RD开发其中的3到4个API,A1-0和A1-1可以用于表示同一个开发单元的不同开发状态,B1-0和B1-1等服务单元同理。
在该方法中,绝大部分业务团队没有统一的沙盒联调环境维护标准,通常采用固定一部分机器池子(pool)作为测试模块部署的平台。当有业务迭代需要验收时,业务RD将对应的模块测试分支代码部署到某台机器上,暴露出地址给依赖方测试。并行迭代过程中,往往涉及到同一模块多个分支同时部署的情况,联调时需要不断和依赖方确认切换到对应的代码分支上。特别是当级联测试时,如果某个链路中的一环是线上环境,后一环是线下环境,我们无法让线上环境的模块将流量请求到线下环境,从而导致由于链路不同,后续模块无法测试的问题。
在上述两种实施例中,每个业务团队需要自己维护一套开发和联调环境,部分环境属于通用性范畴,重复造轮子现象严重,且基础组件过度依赖基础架构组同学,没法快速复用。在构建的过程中,需要从0到1构建自己的开发环境,成本很高;同时,由于业务团队各自维护自己的沙盒联调环境,上下游测试严重依赖对方进度,无法做到并行、灵活切换。沙盒环境通常混布在物理机上,只有负责对应模块的同学明确状态,黑盒问题严重,从而导致仍存在数据测试的效率低的技术问题。
为解决上述问题,本公开提出一种基于Docker容器的研发环境与沙盒场景化测试链路构建方法,该方法在研发环境的构建上,利用Docker容器技术实现环境的快速构建与统一复用。通过Docker文本文件(Dockerfile)预先将通用的研发环境构建成容器镜像,利用K8s技术实现容器编排。对业务完全屏蔽底层实现细节,所有能力全部提供可视化平台操作,业务使用方只需要按需申请,即可在分钟级别复刻出一套完整的容器开发环境。容器环境具备强大的隔离性,并且具备动态扩缩容和镜像原地更新的能力。
同时,在沙盒场景化测试环境的构建上,业务迭代以场景为维度进行组织。将某次迭代的多个模块统一归纳到一个迭代场景计划中,该场景计划全局唯一,具备唯一的ID标识。服务模块部署环境利用上述的Docker容器,可以快速构建研发环境并确保所有Base环境的一致性。同一个服务模块可以分配给不同的人开发。同时,一个人也可以同时进行多个模块的迭代。只需要将本次需要联调测试的服务模块集中通过平台归纳到一个场景下,就可以通过链路特征ID,借助服务网格实现全链路的调度,从而解决了数据测试的效率低的技术问题,实现了提高数据测试的效率的技术效果。
图5是根据本公开实施例的一种构建环境容器的流程图,如图5所示,该方法可以包括以下步骤。
步骤S501,申请容器。
在该实施例中,业务RD通过平台入口申请容器。其中,平台(Easy platform)可以包括前端页面和后端服务。平台入口站在业务视角看可以为前端页面。
步骤S502,确定是否申请过容器。
在该实施例中,若之前已经申请过,则可以执行步骤S502,以直接进入开发阶段;若没有申请过,则可以执行步骤S505。
步骤S503,确定是否利用容器构建项目。
在该实施例中,若之前已经申请过,则可以进一步确定是否利用容器构建项目。
步骤S504,容器代理程序执行任务并上报。
在该实施例中,确定之前是否申请过容器,响应于用户之前已申请过容器,则可以进一步确认容器是否已构建项目。响应于容器已构建项目,容器代理程序可以执行任务并上报至平台中。
步骤S505,鉴定用户申请资格。
在该实施例中,若用户之前没有申请过容器,则可以进一步确定用户是否具备申请资格,以进行权限的检验。如果用户具备申请资格,则执行步骤S506。
举例而言,可以确定这个用户是否是A公司的、能否有权限访问平台(平台域名访问时需要申请权限的)。
可选地,该实施例进一步限制了一个人创建容器的数量,不可以无限制创建。
步骤S506,初始化容器申请信息并跳转至申请页面。
在该实施例中,确定用户具备申请资格,则初始化容器申请信息,并跳转至申请页面,其中,申请页面可以为第三方页面(比如,loading页面)。如果用户不具备申请资格,则不初始化容器申请信息,并直接提醒用户没有权限或者已申请数量达到限制。
可选地,跳转到第三方页面可以进行创建容器的等待流程,第三方页面可以用于展示用户创建过程进度,比如,对控制中心(比如,EE控制中心)来说,跳转到第三方页面可以拿到用户的登录态信息以及调他们的接口触发创建容器的动作。
步骤S507,后台根据用户申请信息拉取镜像信息进行容器构建。
在该实施例中,后台中的镜像仓库可以根据用户申请信息,拉取指定的Docker环境镜像进行容器构建,构建成功后,执行后置任务。其中,申请信息可以为用户名称、选择指定的容器镜像内核版本等,此处仅为举例说明,不对申请信息的类型做具体限制。后置任务可以为都是平台后台指定的。Docker环境镜像可以由平台服务提供方指定的,可以为预先构建好的。
步骤S508,容器构建成功后将自动启动代理程序保活进程,实时上报容器状态信息。
在该实施例中,容器构建成功后将自动启动agent保活进程,实时上报容器状态信息,业务自动跳转集成开发环境(Visual Studio Code,简称为VSCODE IDE)进行页面的编码开发,所有研发环境依赖通过镜像已平铺完毕,用户不再需要二次构建。
容器在初始化构建时会执行我们的一些自定义命令(command),当容器构建成功且自定义命令结束后会将构建状态上报给平台,其中,构建状态可以为是否成功、容器的IP等基础信息。
步骤S509,容器镜像的维护更新和动态扩缩容。
在该实施例中,容器镜像支持原地更新、备份数据、拉取新镜像、复原数据等方式,以完成镜像迭代升级,业务无感,相比较传统的容器构建方法具备独特的优势。
在该实施例中,可以利用K8s技术根据PVC来动态创建存储卷挂载,实现资源动态调整与管理,满足特殊业务需求。
图6是根据本公开实施例的一种用户视角构建容器的流程图,如图6所示,在用户视角下,构建容器可以包括以下步骤。
步骤S601,申请电脑及容器。
在该实施例中,当用户想要扩容时,可以先申领电脑,并申领容器。
步骤S602,进入开发阶段。
在该实施例中,在开发阶段将扩缩容、分享、释放容器的过程全部平台化。
举例而言,可以选一个比较小的功能示例进行说明。对于研发环境申请,业务只需要到指定的页面根据环境申请容器即可,图7是根据本公开实施例的一种申请容器页面的示意图,如图7所示,可以在申请容器页面中显示我已创建的容器,在我的容器列表中可以选择要处理的容器。申请成功的容器会自动在页面显示,并且具备一定的管理能力。
可选地,如图7所示,可以在可视界面选择对容器的操作,可以为进入容器、释放容器、分享容器等操作,此处仅为举例说明,不对操作的类型做具体限制。如图7所示,申请的研发容器平台集成了丰富的管理能力,如释放、扩缩容、镜像更新、分享等,都是通过可视化面板操作,业务只需要鼠标点击即可完成复杂的操作。
图8是根据本公开实施例的一种容器页面的示意图,如图8所示,申请容器成功后,可以通过初始化容器申请信息的方式进行代码空间初始化,并启动代码空间,重新跳转至申请页面。客户端可以选择启动代码空间的方式,可以通过客户端或网页等方式打开。
可选地,当选择在网页打开时,对代码空间进行加载,并在网页中打开。如图8所示,可以在网页中显示加载时间,比如,显示4s后即将在网页打开。需要说明的是,此处仅为举例说明,不对在网页的加载方式和显示内容做具体限制。
可选地,图9是根据本公开实施例的一种沙盒场景化测试环境构建的示意图,如图9所示,沙盒场景化测试环境的构建可以包括:基准环境、开发环境、开发容器和基础环境。其中,基准环境可以包括模块A、模块B、模块C和模块D。开发容器可以包含申请容器模块、克隆代码模块、场景管理模块、指标采集模块、并发联调模块、服务自动部署模块、调度设置模块、任务分配模块、配置派生模块和端口设置模块。基础环境可以包括镜像管理、容器初始化、绑定代码(icode)、运行程序维护(又可以称为runtime维护)、开发软件工具(icodingide)。
可选地,可以通过调度器实现全链路的调度,其中,调度器可以为网关应用程序编程接口(gateway Api)调度器、云计算服务网格调度器等,需要说明的是,此处仅为举例说明,不对调度器的类型做具体限制。
图10是根据本公开实施例的一种沙盒场景化测试环境构建的方法的流程示意图,如图10所示,沙盒场景化测试环境构建可以包括迭代负责人、计划与分配模块、迭代RD1和迭代RD2。
如图10所示,一种沙盒场景化测试环境构建可以包括以下步骤。
步骤S1001,制定计划,确定排期。
作为一种可选的实施例,迭代负责人模块可以指定计划,确定排期。
在该实施例中,可以假设本次需要迭代开发的模块为A和C,同时A和C之间测试需要中间模块B以及最终模块D的参与才算一个完整的链路。为了能够让A1-B-C1-D链路走通,可以将涉及到的4个模块通过一站式研发平台统一纳入到一个场景下,随之产生一个场景ID。同时,可以将需要迭代的模块A1、C1通过平台指定分配给对应的RD。
步骤S1002,选择产品线与服务模块。
作为一种可选的实施例,响应于迭代负责人指定的计划,计划与分配模块选择产品线与服务模块。
步骤S1003,分配任务到指定RD。
在该实施例中,计划与分配模块择产品线与服务模块,且将服务模块分配任务至指定迭代RD。
步骤S1004,进行迭代任务管理。
在该实施例中,计划与分配模块基于迭代负责人确定的联调测试情况,进行迭代任务的管理。其中,迭代任务的管理可以包括添加计划、删除计划和主容器的设置。
可选地,计划与分配模块可以将迭代任务的管理上传至平台(Easy platform)中,利用平台与网关进行元数据的交互。
步骤S1005,确定是否分配任务至RD1。
作为一种可选的实施例,迭代RD1收到任务分配后,可以通过场景化平台确定是否被分配任务。
步骤S1006,认领自己的模块任务。
在该实施例中,如果迭代RD1确定被分配任务,则可以并认领自己的服务模块任务。
步骤S1007,进行迭代任务管理。
在该实施例中,迭代RD1可以认领自己的服务模块任务,且可以通过平台构建容器研发环境,进行迭代任务管理,以完成服务模块的基准部署、产出包更新、前后置任务、拉取代码、端口设置等操作并进行增量功能开发。其中,不同RD中的相同服务模块可以并行开发。
可选地,在正式联调前,可分为两个端进行测试,WEB版在对应的模块设置调度即可,平台会自动在网页上种上以该场景ID为特征值的Cookie信息;NA端则通过在header中加入该场景ID为特征值的请求头即可完成调度设置。
步骤S1008,确定是否分配任务至RD2。
在该实施例中,迭代RD2收到任务分配后,可以通过场景化平台确定是否被分配任务。
步骤S1009,认领自己的模块任务。
在该实施例中,如果迭代RD2确定被分配任务,则可以并认领自己的服务模块任务。其中,迭代RD2的模块任务中的模块可以为与RD1的模块任务中的统一模块并行开发,也可以为与RD1的不同模块。
步骤S1010,进行迭代任务管理。
在该实施例中,迭代RD2可以认领自己的服务模块任务,且可以通过平台构建容器研发环境,进行迭代任务管理,以完成服务模块的基准部署、产出包更新、前后置任务、拉取代码、端口设置等操作并进行增量功能开发。
步骤S1011,对迭代任务管理的结果进行验收。
在该实施例中,迭代负责人对迭代任务管理的结果进行验收,响应于验收完毕,迭代结束。
在该实施例中,平台会自动维护场景ID下所有迭代任务之间的对应关系,包括有多少个服务模块,同一个模块有多少人同时在开发。对于同一模块,支持自由切换流量调度,业务可以通过平台设置将此模块的流量转发到多人迭代中的某个具体RD所在容器上,平台将实时更新调度规则。
在流量转发上,所有的请求都会经过基础组件服务网格,其中,会检测header头中的染色特征值(WEB版通过获取Cookie中的染色特征值),将对应的流量转发到指定的环境中,实现链路的串联。其中,每个服务都有一个线上环境的快照,称为基准沙盒。业务可以选择关闭调度(平台上可以设置,如B模块),则服务网格会将流量调度到B模块的基准沙盒环境上,从而实现级联测试。
图11是根据本公开实施例的一种沙盒场景化测试的示意图,如图11所示,在沙盒环境使用的情况下,业务可以直接进入到对应的沙盒场景化页面,创建一个场景,并且分配一些模块给RD进行迭代。如图11所示,给场景名为服务测试F(lqqServiceTest)的迭代计划分配了2个模块给一个RD开发。RD可以对分配的服务模块进行设置。
可选地,可以根据业务迭代需要进行服务模块(简称为模块)的分配,比如,这次开发迭代需要开发哪些模块,每个模块都给哪些RD负责,就分配哪些模块给对应的RD,可以由迭代管理者操作确定。
图12是根据本公开实施例的一种任务设置的示意图,如图12所示,RD收到迭代任务后在沙盒场景化-RD面板可以自动看到分配的任务卡片,到对应的服务模块卡片可以快速完成基准部署、研发容器申请、服务端口、调度设置等操作,随时开发和上下游串联测试。
可选地,如图12所示,可以搭建可视化平台,通过自动表单输入项,平台提供多种环境的容器镜像供业务选择(国内、国外、混合云等),业务可以根据自身的需要进行选择。
在该实施例中,一站式研发平台统一托管业务环境镜像,根据业务使用特点,及时更新维护发版Docker镜像,保障业务申请研发容器具备最新的能力。申请的研发容器平台集成了丰富的管理能力,如释放、扩缩容、镜像更新、分享等,都是通过可视化面板操作,业务只需要鼠标点击即可完成复杂的操作。沙盒场景化测试链路的项目负责人(又可以称为业务Owner)只需要分配任务场景,研发环境基于上述Docker构建的容器,流量调度全部通过可视化操作即可完成。
在该实施例中,基于Docker容器化技术实现快速构建隔离、稳定、统一的开发环境,业务构建环境周期缩短至分钟级别,且不需要重复构建。同时Dockerfile镜像预先编排好了基础依赖组件,完全不需要依赖其他业务线同学。独立容器环境隔离,平台直接托管容器和镜像,预装联调所需所有环境,支持扩缩容、分享、释放等功能。通过场景化组织业务迭代联调,规范化容器调度,解决多路多人联调冲突,通过场景化标识来确定最终调度路由,可以实现多模块、多人同时并行测试验收,灵活切换,从而实现了提高数据测试的效率的技术效果,解决了数据测试的效率低的技术问题。
本公开实施例还提供了一种用于执行图1所示实施例的数据测试方法的数据测试装置。
图13是根据本公开实施例的一种数据测试装置的示意图。如图13所示,该数据测试装置1300可以包括:确定单元1302和调度单元1304。
确定单元1302,用于在服务对象中,确定多个服务模块,其中,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码。
调度单元1304,用于将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境,以分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。
可选地,该装置还包括:生成单元,用于生成测试场景的标识信息,其中,标识信息用于标识测试场景,且用于表征多个服务模块之间的关联关系。
可选地,生成单元包括:设置模块,用于基于标识信息,向测试场景设置测试资源。
可选地,设置模块包括:处理子模块,用于将标识信息确定为特征值,来向资源提供端请求测试资源。
可选地,调度单元1304包括:调度模块,用于按照调度信息,将测试资源调度至多个测试环境,其中,调度信息用于表征调度测试资源的规则,且按照时间周期进行更新。
可选地,调度模块包括:第一调度子模块,用于按照调度信息,将测试资源由多个测试环境中第一测试环境调度至多个测试环境中第二测试环境。
可选地,调度模块还包括:第二调度子模块,用于按照调度信息,将测试资源中多个子测试资源调度至多个测试环境,其中,多个子测试资源与多个测试环境一一对应。
可选地,调度单元1304还包括:调用模块,用于调用服务网格将测试资源调度至多个测试环境。
可选地,该装置还包括:构建单元,用于向服务模块构建至少一目标容器,其中,目标容器用于表征服务模块对应的测试环境。
可选地,构建单元包括:构建模块,用于基于测试环境的镜像信息构建目标容器。
可选地,构建模块包括构建子模块,用于在应用容器引擎中利用测试环境的镜像信息构建目标容器。
本公开实施例还提供了另一种用于执行图2所示实施例的数据测试方法的数据测试装置。
图14是根据本公开实施例的另一种数据测试装置的示意图。如图14所示,该数据测试装置1400可以包括:第一显示单元1402和第二显示单元1404。
第一显示单元1402,用于响应作用于操作界面上的分配操作,在操作界面上显示分配至测试环境中的至少一服务模块,其中,至少一服务模块来自服务对象中多个服务模块,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码。
第二显示单元1404,用于响应作用于操作界面上的测试操作,在操作界面上显示服务模块的测试结果,其中,测试结果为基于调度至测试环境下的测试资源,对服务模块进行测试得到。
在本公开实施例的数据测试装置中,提出场景化的概念,将服务模块和测试场景绑定,通过场景ID可以同时迭代多个服务模块,服务模块之间的资源调度由场景ID进行,打破测试联调受限,从而达到提高数据测试效率的技术效果,解决了数据测试效率低的技术问题。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品和一种自动驾驶车辆。
本公开的实施例提供了一种电子设备,该电子设备可以包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例的数据测试方法。
可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
根据本公开的实施例,本公开的实施例还提供了一种自动驾驶车辆,其中,自动驾驶车辆可以包括上述电子设备。
根据本公开的实施例,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例的数据测试方法。
可选地,在本实施例中,上述非易失性存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在服务对象中,确定多个服务模块,其中,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;
S2,将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境,以分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。
可选地,在本实施例中,上述非易失性存储介质还可以被设置为存储用于执行以下步骤的计算机程序:
S1,响应作用于操作界面上的分配操作,在操作界面上显示分配至测试环境中的至少一服务模块,其中,至少一服务模块来自服务对象中多个服务模块,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;
S2,响应作用于操作界面上的测试操作,在操作界面上显示服务模块的测试结果,其中,测试结果为基于调度至测试环境下的测试资源,对服务模块进行测试得到。
可选地,在本实施例中,上述非瞬时计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现以下步骤:
S1,在服务对象中,确定多个服务模块,其中,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;
S2,将测试场景下预先设置的测试资源,调度至测试场景中的多个测试环境,以分别对多个测试环境对应的至少一服务模块进行测试,得到测试结果。
可选地,在本实施例中,上述计算机程序在被处理器执行时还可以实现下步骤:
S1,响应作用于操作界面上的分配操作,在操作界面上显示分配至测试环境中的至少一服务模块,其中,至少一服务模块来自服务对象中多个服务模块,多个服务模块处于相同测试场景,服务模块用于表示在测试场景下待测试服务功能的程序代码;
S2,响应作用于操作界面上的测试操作,在操作界面上显示服务模块的测试结果,其中,测试结果为基于调度至测试环境下的测试资源,对服务模块进行测试得到。
图15是根据本公开实施例的一种数据测试方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图15所示,设备1500包括计算单元1501,其可以根据存储在只读存储器(ROM)1502中的计算机程序或者从存储单元1508加载到随机访问存储器(RAM)1503中的计算机程序,来执行各种适当的动作和处理。在RAM1503中,还可存储设备1500操作所需的各种程序和数据。计算单元1501、ROM1502以及RAM1503通过总线1504彼此相连。输入/输出(I/O)接口1505也连接至总线1504。
设备1500中的多个部件连接至I/O接口1505,包括:输入单元1506,例如键盘、鼠标等;输出单元1504,例如各种类型的显示器、扬声器等;存储单元1508,例如磁盘、光盘等;以及通信单元1509,例如网卡、调制解调器、无线通信收发机等。通信单元1509允许设备1500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1501执行上文所描述的各个方法和处理,例如自动驾驶车辆的行驶轨迹方法。例如,在一些实施例中,数据测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1502和/或通信单元1509而被载入和/或安装到设备1500上。当计算机程序加载到RAM 1503并由计算单元1501执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据测试方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器、监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (20)

1.一种数据测试方法,包括:
在服务对象中,确定多个服务模块,其中,所述多个服务模块处于相同测试场景,所述服务模块用于表示在所述测试场景下待测试服务功能的程序代码;
将所述测试场景下预先设置的测试资源,调度至所述测试场景中的多个测试环境,以分别对所述多个测试环境对应的至少一所述服务模块进行测试,得到测试结果。
2.根据权利要求1所述的方法,还包括:
生成所述测试场景的标识信息,其中,所述标识信息用于标识所述测试场景,且用于表征所述多个服务模块之间的关联关系。
3.根据权利要求2所述的方法,其中,还包括:
基于所述标识信息,向所述测试场景设置所述测试资源。
4.根据权利要求3所述的方法,其中,基于所述标识信息,向所述测试场景设置所述测试资源包括:
将所述标识信息确定为特征值,来向资源提供端请求所述测试资源。
5.根据权利要求1所述的方法,其中,将所述测试场景下预先设置的测试资源,调度至所述测试场景中的多个测试环境包括:
按照调度信息,将所述测试资源调度至所述多个测试环境,其中,所述调度信息用于表征调度所述测试资源的规则,且按照时间周期进行更新。
6.根据权利要求5所述的方法,其中,按照调度信息,将所述测试资源调度至所述多个测试环境包括:
按照所述调度信息,将所述测试资源由所述多个测试环境中第一测试环境调度至所述多个测试环境中第二测试环境。
7.根据权利要求6所述的方法,其中,所述第一测试环境对应的至少一所述服务模块与所述第二测试环境对应的至少一所述服务模块相同。
8.根据权利要求5所述的方法,其中,按照调度信息,将所述测试资源调度至所述多个测试环境包括:
按照调度信息,将所述测试资源中多个子测试资源调度至所述多个测试环境,其中,所述多个子测试资源与所述多个测试环境一一对应。
9.根据权利要求1所述的方法,其中,将所述测试场景下预先设置的测试资源,调度至所述测试场景中的多个测试环境包括:
调用服务网格将所述测试资源调度至所述多个测试环境。
10.根据权利要求1所述的方法,还包括:
向所述服务模块构建至少一目标容器,其中,所述目标容器用于表征所述服务模块对应的所述测试环境。
11.根据权利要求10所述的方法,其中,向所述服务模块构建至少一目标容器包括:
基于所述测试环境的镜像信息构建所述目标容器。
12.根据权利要求11所述的方法,其中,基于所述测试环境的镜像信息构建所述目标容器包括:
在应用容器引擎中利用所述测试环境的镜像信息构建所述目标容器。
13.一种数据测试方法,包括:
响应作用于操作界面上的分配操作,在所述操作界面上显示分配至测试环境中的至少一服务模块,其中,所述至少一服务模块来自服务对象中多个服务模块,所述多个服务模块处于相同测试场景,所述服务模块用于表示在所述测试场景下待测试服务功能的程序代码;
响应作用于所述操作界面上的测试操作,在所述操作界面上显示所述服务模块的测试结果,其中,所述测试结果为基于调度至所述测试环境下的测试资源,对所述服务模块进行测试得到。
14.根据权利要求13所述的方法,还包括:
在所述操作界面上显示所述测试场景的标识信息,其中,所述标识信息用于标识所述测试场景,且用于表征所述多个服务模块之间的关联关系。
15.根据权利要求13所述的方法,还包括:
响应作用于所述操作界面上的调用操作,在所述操作界面上显示至少一目标容器,其中,所述目标容器用于表征所述服务模块对应的所述测试环境。
16.一种数据测试装置,包括:
确定单元,用于在服务对象中,确定多个服务模块,其中,所述多个服务模块处于相同测试场景,所述服务模块用于表示在所述测试场景下待测试服务功能的程序代码;
调度单元,用于将所述测试场景下预先设置的测试资源,调度至所述测试场景中的多个测试环境,以分别对所述多个测试环境对应的至少一所述服务模块进行测试,得到测试结果。
17.一种数据测试装置,包括:
第一显示单元,用于响应作用于操作界面上的分配操作,在所述操作界面上显示分配至测试环境中的至少一服务模块,其中,所述至少一服务模块来自服务对象中多个服务模块,所述多个服务模块处于相同测试场景,所述服务模块用于表示在所述测试场景下待测试服务功能的程序代码;
第二显示单元,用于响应作用于所述操作界面上的测试操作,在所述操作界面上显示所述服务模块的测试结果,其中,所述测试结果为基于调度至所述测试环境下的测试资源,对所述服务模块进行测试得到。
18.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-15中任一项所述的方法。
19.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-15中任一项所述的方法。
20.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-15中任一项所述的方法。
CN202311009012.6A 2023-08-10 2023-08-10 数据测试方法、装置、电子设备、存储介质和程序产品 Pending CN117009238A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311009012.6A CN117009238A (zh) 2023-08-10 2023-08-10 数据测试方法、装置、电子设备、存储介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311009012.6A CN117009238A (zh) 2023-08-10 2023-08-10 数据测试方法、装置、电子设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
CN117009238A true CN117009238A (zh) 2023-11-07

Family

ID=88563333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311009012.6A Pending CN117009238A (zh) 2023-08-10 2023-08-10 数据测试方法、装置、电子设备、存储介质和程序产品

Country Status (1)

Country Link
CN (1) CN117009238A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234954A (zh) * 2023-11-14 2023-12-15 杭银消费金融股份有限公司 一种基于机器学习算法的智能在线测试方法及***

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234954A (zh) * 2023-11-14 2023-12-15 杭银消费金融股份有限公司 一种基于机器学习算法的智能在线测试方法及***
CN117234954B (zh) * 2023-11-14 2024-02-06 杭银消费金融股份有限公司 一种基于机器学习算法的智能在线测试方法及***

Similar Documents

Publication Publication Date Title
CN112866333B (zh) 基于云原生的微服务场景优化方法、***、设备和介质
CN110942387A (zh) 基于微服务的电票业务功能构建方法和***
CN104378252A (zh) 一种云测试服务平台
CN108961033A (zh) 多业务***交互方法及装置、存储介质、电子终端
CN107632937B (zh) 一种对虚拟机集群进行测试的方法、装置、可读存储介质
CN112527349A (zh) 动态部署策略优化及持续部署业务保障***
US8214245B2 (en) Method and system for synchronizing inclusive decision branches
CN109901985B (zh) 分布式测试装置及方法、存储介质和电子设备
CN110502217B (zh) 一种基于ros的机器人云平台设计方法
CN115292026A (zh) 容器集群的管理方法、装置、设备及计算机可读存储介质
CN117009238A (zh) 数据测试方法、装置、电子设备、存储介质和程序产品
US20200274758A1 (en) Provisioning hybrid cloud resources in an operating environment
CN113050929A (zh) 一种基于Hyperledger Fabric的智能合约开发运维一体化平台
CN111625317A (zh) 一种业务***的容器云构建方法及相关装置
CN111459506A (zh) 深度学习平台集群的部署方法、装置、介质及电子设备
US10346155B1 (en) Compilation optimization via dynamic server cloning
CN105933136A (zh) 一种资源调度方法及***
CN116974689A (zh) 集群容器调度方法、装置、设备及计算机可读存储介质
US10176062B2 (en) Cloud servers and methods for handling dysfunctional cloud services
CN115237441A (zh) 一种基于云平台的升级测试方法、装置及介质
CN113240088A (zh) 文本意图识别模型的训练方法
CN112181403A (zh) 开发运维一体化实现方法、装置、设备及可读存储介质
Lim et al. Service management in virtual machine and container mixed environment using service mesh
Veselý et al. Tools for modeling exemplary network infrastructures
CN112564979A (zh) 构建任务的执行方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination