CN116795611A - 测试方法、装置、电子设备和存储介质 - Google Patents

测试方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116795611A
CN116795611A CN202310797568.XA CN202310797568A CN116795611A CN 116795611 A CN116795611 A CN 116795611A CN 202310797568 A CN202310797568 A CN 202310797568A CN 116795611 A CN116795611 A CN 116795611A
Authority
CN
China
Prior art keywords
test
terminal
link
items
result
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
CN202310797568.XA
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.)
Kunlun Core Beijing Technology Co ltd
Original Assignee
Kunlun Core Beijing 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 Kunlun Core Beijing Technology Co ltd filed Critical Kunlun Core Beijing Technology Co ltd
Priority to CN202310797568.XA priority Critical patent/CN116795611A/zh
Publication of CN116795611A publication Critical patent/CN116795611A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results

Landscapes

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

Abstract

本公开提供了一种测试方法、装置、设备、存储介质以及程序产品,涉及计算机技术领域,尤其涉及芯片技术领域。具体实现方案为:响应于接收到的测试请求,确定与测试请求对应的测试类别;利用多个预设测试项,生成与测试类别对应测试链路;以及通过调用与测试链路对应的工具链接口,对第一测试终端的加速卡进行测试,得到第一测试结果。

Description

测试方法、装置、电子设备和存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及芯片技术领域。
背景技术
随着深度学习技术的发展,深度学习的场景越来越多元化,深度学习模型复杂度也不断增加,这使得深度学习加速卡也得到了持续的更新。
常见的加速卡测试工具支持有限的测试功能,并且在测试时需要指定特定的加速卡的设备。这使得在多加速卡的测试场景下,需要进行大量重复的测试工作,造成资源浪费。
发明内容
本公开提供了一种测试方法、装置、设备、存储介质以及程序产品。
根据本公开的一方面,提供了一种测试方法,应用于第一测试终端,包括:响应于接收到的测试请求,确定与测试请求对应的测试类别;利用多个预设测试项,生成与测试类别对应测试链路;以及通过调用与测试链路对应的工具链接口,对第一测试终端的加速卡进行测试,得到第一测试结果。
根据本公开的另一方面,提供了一种测试方法,应用于至少一个第二测试终端,包括:接收来自第一测试终端的测试任务;利用多个预设测试项,生成与测试任务对应测试链路;以及通过调用与测试链路对应的工具链接口,分别对至少一个第二测试终端中各自的加速卡进行测试,得到至少一个第二测试结果。
根据本公开的另一方面,提供了一种测试装置,应用于第一测试终端,包括:确定模块,用于响应于接收到的测试请求,确定与测试请求对应的测试类别;生成模块,用于利用多个预设测试项,生成与测试类别对应测试链路;以及测试模块,用于通过调用与测试链路对应的工具链接口,对第一测试终端的加速卡进行测试,得到第一测试结果。
根据本公开的另一方面,提供了一种测试装置,应用于至少一个第二测试终端,包括:接收模块,用于接收来自第一测试终端的测试任务;生成模块,用于利用多个预设测试项,生成与测试任务对应测试链路;以及测试模块,用于通过调用与测试链路对应的工具链接口,分别对至少一个第二测试终端中各自的加速卡进行测试,得到至少一个第二测试结果。
根据本公开的另一方面,提供了一种测试设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例所示的测试方法。
根据本公开的另一方面,提供了一种测试系统,包括:第一测试终端;以及至少一个第二测试终端;其中,第一测试终端执行本公开实施例所示的测试方法,至少一个第二测试终端执行本公开实施例所示的测试方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例所示的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现本公开实施例所示方法的步骤。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1示意性示出了根据本公开的实施例的测试系统的示意图;
图2示意性示出了根据本公开的实施例的测试方法的软件架构的示意图;
图3示意性示出了根据本公开的实施例的测试方法的流程图;
图4示意性示出了根据本公开的另一实施例的测试方法的流程图;
图5示意性示出了根据本公开实施例的测试装置的框图;
图6示意性示出了根据本公开另一实施例的测试装置的框图;以及
图7示意性示出了可以用来实施本公开的实施例的示例测试设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在人工智能(Artificial Intelligence,AI)加速卡的测试领域中,现有的测试工具往往用于实现一种测试功能,不同的测试工具对平台的支持能力也参差不齐,这导致使用多个测试工具才能完成对AI加速卡的全面测试时。此外,在面对搭载AI加速卡的多台计算设备时,可能需要多个测试人员一起测试多个工作日才可以完成测试工作,这会造成极大的资源浪费。
本公开提供了一种用于AI加速卡的自动测试方法,包括:响应于接收到的测试请求,第一测试终端确定与测试请求对应的测试类别;利用多个预设测试项,生成与测试类别对应测试链路;以及通过调用与测试链路对应的工具链接口,对第一测试终端进行测试,得到第一测试结果。
通过本公开实施例的测试方法,可以在搭载AI加速卡的计算设备上进行自动测试,从而实现对AI加速卡多测试场景下的功能测试。例如,可以对AI加速卡进行算力测试、压力测试、直接存储器访问(Direct Memory Access,DMA)性能测试、显存带宽测试、降频测试、板卡间通讯测试和模型推理测试。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
以下将结合图1对本公开提供的测试系统进行描述。
图1示意性示出了根据本公开的实施例的测试系统的示意图。
如图1所示,测试系统100包括第一测试终端110和至少一个第二测试终端120。例如,至少一个第二测试终端120可以包括第二测试终端1201。例如,至少一个第二测试终端120还可以包括第二测试终端1201、第二测试终端1202、…、第二测试终端120n。
根据本公开实施例,第一测试终端110和至少一个第二测试终端120均为具有加速卡的计算设备。例如,第一测试终端110和至少一个第二测试终端120可以为搭载有AI加速卡的服务器。第一测试终端110和至少一个第二测试终端120还可以为搭载有AI加速卡的计算机。
根据本公开实施例,第一测试终端110可以为执行测试方法的主控机。至少一个第二测试终端120可以为执行测试方法的从机。例如,第一测试终端1l 0可以向至少一个第二测试终端120发送控制指令,至少一个第二测试终端120基于接收到的控制指令执行测试方法,从而实现多机联合测试。
根据本公开实施例,第一测试终端110可以通过执行本公开实施例提供的测试方法,对自身搭载的AI加速卡进行多种功能测试。例如,响应于接收到的测试请求,第一测试终端110确定与测试请求对应的测试类别,第一测试终端110利用多个预设测试项,生成与测试类别对应测试链路。第一测试终端110通过调用与测试链路对应的工具链接口,对第一测试终端110搭载的AI加速芯片进行测试,得到第一测试结果。
根据本公开实施例,至少一个第二测试终端120接收来自第一测试终端110的测试任务。至少一个第二测试终端120分别利用多个预设测试项,生成与测试任务对应测试链路。至少一个第二测试终端120分别通过调用与测试链路对应的工具链接口,对各自搭载的AI加速卡进行测试,得到至少一个第二测试结果。
例如,第一测试终端110可以接收操作人员输入的测试请求,第一测试终端110将包括测试请求的测试任务发送给至少一个第二测试终端120。第一测试终端110可以基于接收到的测试请求构建对应的测试链路,至少一个第二测试终端120可以分别基于接收到的测试任务构建对应的测试链路。第一测试终端110和至少一个第二测试终端120可以基于各自构建的测试链路对各自搭载的AI加速卡进行并行测试。
例如,第一测试终端110与至少一个第二测试终端120执行的测试内容可以相同,也可以不相同。
第一测试终端110和至少一个第二测试终端120可以根据测试结果自动生成测试报告。至少一个第二测试终端120可以将生成的测试报告发送给第一测试终端110。第一测试终端110对自身产生的测试报告和来自至少一个第二测试终端120的测试报告进行统计和分析,从而获得第一测试终端110和至少一个第二测试终端120的最终测试结果,第一测试终端110可以将最终测试结果打印到控制台和日志文件中。操作人员可以通过查询控制台和日志文件获得第一测试终端110和至少一个第二测试终端120的最终测试结果。
根据本公开实施例,第一测试终端110和至少一个第二测试终端120可以为相同的计算设备,也可以为不同的计算设备。至少一个第二测试终端120中的任一第二测试终端也可以为主机,第一测试终端110也可以为从机。
例如,第二测试终端1201可以为主机,第一测试终端110、第二测试终端1202、…、第二测试终端120n为从机。第二测试终端1201可以接收操作人员输入的测试请求,第二测试终端1201将包括测试请求的测试任务发送给第一测试终端110、第二测试终端1202、…、第二测试终端120n。第二测试终端1201基于接收到的测试请求构建对应的测试链路,第一测试终端110、第二测试终端1202、…、第二测试终端120n分别基于接收到的测试任务构建对应的测试链路。第一测试终端110、第二测试终端1201、…、第二测试终端120n可以基于各自构建的测试链路对各自搭载的AI加速卡进行并行测试。
根据本公开实施例,在作为主机的计算设备上进行操作,可以实现对多台计算设备的联合测试,提高测试效率。
以下将结合图2对本公开提供的测试方法的软件架构进行描述。
图2示意性示出了根据本公开的实施例的测试方法的软件架构的示意图。
根据本公开实施例,在第一测试终端和第二测试终端上安装测试软件,第一测试终端和第二测试终端可以通过运行测试软件实现对各自搭载的AI加速卡进行测试。
如图2所示,软件架构200可以包括工具层210、功能测试层220、场景测试层230和联合测试层240。
根据本公开实施例,工具层210为测试软件的最底层。工具层210负责封装接口和调用AI加速卡工具链,工具层210可以借助AI加速卡工具链的已有能力进行测试。工具层210可以包括执行环境211、通信库212、应用层序接口213和操作系统214。
根据本公开实施例,功能测试层220包括多个功能测试模块。例如,功能测试层220可以包括模型测试221、算力测试222、算子测试223、压力测试224、内存测试225、显存测试226和降频测试227等。功能测试层220可以对工具层210封装的软件开发工具包(softwaredevelopment kit,SDK)接口进行组合调用,从而完成功能测试模块对应的功能测试。
此外,功能测试层220还提供对外开放接口。通过对外开放接口可以在功能测试层220中添加新的功能测试模块。例如,功能测试层220的功能测试模块可以是由二进制语言编译得到的,通过二进制工具可以编译新的功能测试模块。通过二进制工具和参数可以调用相同的功能测试模块,从而完成相应的功能测试。
根据本公开实施例,场景测试层230包括多个场景测试模块。例如,场景测试层230可以包括全链路测试231、自定义测试232和板卡硬件参数测试233。场景测试层230通过配置方法对功能测试层220提供的多种功能测试进行组合,得到多个场景测试模块,从而完成业务场景所需的场景测试。
例如,场景测试层230可以对功能测试层220提供的多种功能测试模块的调用接口进行封装,得到一个总接口。通过调用该总接口可以完成相应的场景测试。
根据本公开实施例,联合测试层240包括多机联合测试241。联合测试层240通过分布式通信库在多台计算设备中建立通信连接。在多机联合测试的场景下,主机可以通过配置等方法对从机下发测试任务,控制从机运行测试内容,测试完成后从机将测试报告发送给主机。
根据本公开实施例,通过功能测试层220可以对第一测试终端和第二测试终端可以实现多种独立的功能测试。通过场景测试层230可以根据实际业务场景对测试项目进行组合,对第一测试终端和第二测试终端可以实现多种场景测试,丰富测试场景。通过联合测试层240可以实现对多台测试终端同时进行测试,提高测试效率。
以下将结合图3对第一测试终端执行的本公开提供的测试方法进行描述。
图3示意性示出了根据本公开的实施例的测试方法的流程图。
如图3所示,该测试方法300包括操作S310至操作S330。接下来将参考图3来描述根据本公开实施例的测试方法。例如,测试方法300可以应用于例如图1所示的第一测试终端110。
在操作S310,响应于接收到的测试请求,确定与测试请求对应的测试类别。
根据本公开的实施例,测试请求可以是由第一测试终端产生的。例如,操作人员可以在第一测试终端上通过命令行交互或浏览器交付的方式发送测试请求。
根据本公开的实施例,第一测试终端可以为具有加速卡的计算设备。例如,第一测试终端可以搭载有AI加速卡。第一测试终端可以搭载一个AI加速卡,也可以搭载多个AI加速卡。
根据本公开的实施例,测试类别可以包括功能测试、场景测试和联合测试。例如,第一测试终端解析测试请求可以确定测试类别。
例如,在第一测试终端的测试软件运行后,第一测试终端可以解析接收到的测试请求,得到等级参数rank。根据rank参数,可以从功能测试、场景测试和联合测试中确定测试类别。例如,在确定rank参数为scenario的情况下,指定测试类别为场景测试。
然后,在操作S320,利用多个预设测试项,生成与测试类别对应测试链路。
根据本公开的实施例,预设测试项可以包括测试软件的功能测试层中提供的多个功能测试模块。
例如,在确定测试类别为场景测试的情况下,第一测试终端可以对测试请求进行解析,得到场景参数scene。根据scene参数对应目标场景,可以从多个功能测试模块中确定与目标场景对应的多个目标测试项,并将多个目标测试项进行组合,得到测试链路。
根据本公开的实施例,测试链路包括多个目标测试项。根据测试链路层,可以对第一测试终端搭载的AI加速卡依次执行多个目标测试项,从而得到目标场景下的测试结果。
然后,在操作S330,通过调用与测试链路对应的工具链接口,对第一测试终端的加速卡进行测试,得到第一测试结果。
根据本公开的实施例,工具链接口可以位于测试软件的工具层。通过工具链接口调用工具链,可以执行测试链路中的目标测试项。
根据本公开的实施例,根据实际的目标场景,对多种预设测试项进行组合,可以得到多种目标场景的测试链路,从而实现多场景测试。测试类别和测试场景可以根据测试请求中的参数确定,基于操作人员输入的测试请求包括的参数,可以一键触发执行所有的测试项目并自动检测测试结果,生成测试报告,从而实现自动化测试和自动结果检测,减少测试过程的资源开销。
根据本公开实施例中,第一测试终端接收操作人员输入的测试请求,测试请求可以命令行参数的形式被输入。第一测试终端对命令行参数进行解析,可以得到多级参数。例如,多级参数可以包括一级参数、二级参数和三级参数。一级参数rank可以为scenario、item和multi。根据一级参数可以确定测试类别。例如,在确定一级参数rank为scenario的情况下,测试类别为场景测试。在确定一级参数rank为item的情况下,测试类别为功能测试。在确定一级参数rank为multi的情况下,测试类别为联合测试。
在一些实施例中,操作S320利用多个预设测试项,生成与测试类别对应测试链路可以包括:根据测试类别,确定测试场景;获取与测试场景对应的配置文件;根据配置文件,从多个预设测试项中确定多个目标测试项和多个目标测试项之间的执行顺序;以及根据执行顺序,对与多个目标测试项对应的多个目标调用接口进行封装,得到测试链路。
例如,在确定一级参数rank指定了测试类别为scenario的情况下,二级参数为scene,二级参数scene可以指定测试场景。例如,测试场景可以包括全链路测试、自定义测试和板卡硬件参数测试等。
根据本公开实施例中,配置文件包括测试场景的多个目标测试项和多个目标测试项之间的执行顺序。例如,在确定测试场景为全链路测试的情况下,获取全链路测试的配置文件。根据配置文件,确定全链路测试的多个测试项和多个测试项之间的执行顺序。
根据本公开实施例中,配置文件可以预先注册在测试软件的场景测试层中,多个配置文件可以形成场景库。例如,第一测试终端可以根据二级参数scene在场景库中搜索配置文件。
第一测试终端根据配置文件解析得到多个目标测试项和多个目标测试项之间的执行顺序,将多个目标测试项组合成测试链路pipeline。例如,全链路测试包括模型测试、算力测试、算子测试、压力测试、内存测试、显存测试和降频测试。全链路测试的测试链路可以为模型测试→内存测试→算子测试→算力测试→压力测试→显存测试→降频测试。
第一测试终端将多个目标测试项的多个接口进行封装,得到全链路测试接口。全链路测试接口可以存储与测试软件的场景测试层。第一测试终端通过调用全链路测试接口,实现全链路测试。
根据本公开实施例中,利用多个预设测试项,生成与测试类别对应测试链路还包括:校验测试链路,得到校验结果;以及根据校验结果,在确定测试链路存在异常的情况下,修正测试链路。
根据本公开实施例中,在生成测试链路pipeline后,第一测试终端遍历测试链路pipeline,得到多个目标测试项,并对测试链路pipeline的完整性和正确性进行校验。
例如,通过对测试链路pipeline包括的多个目标测试项进行校验,确定测试链路的完整性。在确定测试链路pipeline的完整性缺失的情况下,可以在测试链路pipeline中添加确实的目标测试项。
例如,通过对测试链路pipeline包括的多个目标测试项之间的执行顺序进行校验,确定测试链路的正确性。例如,在确定测试链路pipeline存在死循环的情况下,删除测试链路pipeline中错误的目标测试项。
在一些实施例中,操作S330通过调用与测试链路对应的工具链接口,对第一测试终端的加速卡进行测试,得到第一测试结果包括:通过调用工具链接口,获取测试链路对应的工具链;利用工具链,运行测试链路中测试项,得到第一运行结果;以及计算第一运行结果,得到第一测试结果。
根据本公开的实施例,通过调用工具链接口,调用测试软件的工具层中的工具链。例如,从工具层中调用运行AI加速卡所需的执行环境、应用程序接口和操作系统等。
根据本公开的实施例,利用工具链运行测试项,可以直接得到测试结果,也可以得到运算结果,在对运算结果进行计算,得到测试结果。
例如,利用工具链运行算力测试,使第一测试终端利用AI加速卡执行计算任务,得到计算时间和计算效率。对计算时间和计算效率进行计算,可以得到AI加速卡的算力,从而得到算力测试结果。
在本公开的实施例中,第一测试终端还可以对AI加速卡执行单独的功能测试。例如,在确定一级参数rank指定了测试类别为item的情况下,第一测试终端可以对AI加速卡执行单独的功能测试。此时,二级参数为task,二级参数task可以指定测试项。例如,测试项可以包括算力测试、压力测试、带宽测试、模型测试、算子测试、内存测试、显存测试和降频测试等。
例如,通过二级参数task的不同值指定不同的测试项。通过二级参数task指定测试项的名称,可以控制调用对应的测试项。例如,二级参数task的值为perf,调用的测试项为算力测试。二级参数task的值为pressure,调用的测试项为压力测试。二级参数task的值为gddr,调用的测试项为带宽测试。在确定二级参数task指定的测试项不存在的情况下,可以生成task error错误的提示。
例如,在确定二级参数为task的情况下,三级参数还可以为自定义参数。自定义参数可以为测试项的测试参数,例如模型测试的模型名称等。
在确定二级参数task和自定义参数的情况下,第一测试终端可以调用工具层的接口进行测试。在确定功能测试包括性能结果后处理计算的情况下,第一测试终端对运行结果进行后续计算,得到测试结果。在测试借宿后,第一终端测试可以根据测试结果自动生成测试报告,并将测试报告打印到控制台和日志文件中。
根据本公开的实施例,在确定一级参数rank指定了测试类别为multi的情况下,第一测试终端可以与其他测试终端执行多机联合测试。此时二级参数可以为item和scenario。
在确定二级参数为item的情况下,第一测试终端和其他测试终端可以并行执行单独的功能测试。在确定二级参数为scene的情况下,第一测试终端和其他测试终端可以并行执行场景测试。
根据本公开的实施例,在确定一级参数为multi的情况下,第一测试终端可以与与至少一个第二测试终端建立通信连接,并向至少一个第二终端发送测试任务,测试任务与测试链路相关。
例如,至少一个第二测试终端可以为图1所示的第二测试终端120。在此种情况下,第一测试终端为主机,第二测试终端为从机。第一测试终端启动测试软件后,向第二测试终端下发控制指令,以建立连接。主机与从机可以执行同样的测试。
例如,第一测试终端可以根据至少一个第二测试终端的地址,向至少一个第二测试终端发送远程控制指令。
例如,地址可以为第二测试终端的IP地址。第二测试终端接收远程控制指令,可以基于远程控制指令启动测试服务,并进入工作状态。在工作状态中,第二测试终端处于等待第一测试终端指令的状态中。
例如,第一测试终端可以向第二测试终端发送测试任务。测试任务包括测试请求包括的多级参数。第二测试终端可以根据多级参数确定测试项和测试链路。
根据本公开的实施例,第一测试终端对加速卡的测试过程与至少一个第二测试终端执行测试任务的过程并行。
例如,在一级参数rank为multi的情况下,二级参数可以为item,三级参数可以为task。此时第一测试终端和第二测试终端可以并行的独立执行各自的功能测试,第一测试终端生成第一测试结果,第二测试终端生成第二测试结果。
例如,在一级参数rank为multi的情况下,二级参数可以为scenario,三级参数可以为scene。此时第一测试终端和第二测试终端可以并行的独立执行各自的场景测试,第一测试终端生成第一测试结果,第二测试终端生成第二测试结果。
根据本公开的实施例,第一测试终端接收来自第二终端设备的第二测试结果,并对第一测试结果和第二测试结果进行合并处理。
例如,第一测试终端对第一测试结果和第二测试结果进行统计分析,确定第一测试终端和第二测试终端的测试详情,并整理多台测试终端的测试报告。第一测试终端还可以将测试报告打印到控制台和日志文件中。
根据本公开的实施例,使用分布式通信库可以使多台测试终端实现互联互通。操作人员在作为主机的第一测试终端中进行配置,可以调用第二测试终端进行并行测试,测试完成后第二测试终端可以通过网络将测试报告发送到第一测试中段的指定目录中。
例如,待测试对象为50个搭载了AI加速卡的测试终端。从50个测试终端中选择其中一个测试终端为主机,其他49个测试终端为从机,每个测试终端上均安装有本公开提供的测试软件。在确定一级参数rank指定为multi的情况下,每个测试终端分别调用各自测试软件的联合测试层,主机向从机发送测试任务,使得50个测试终端可以独立的对各自搭载的AI加速卡进行测试,得到50个测试结果。50个测试终端对各自的AI加速卡进行测试的过程是并行的。从机将测试结果发送到主机,由主机汇总测试结果。
根据本公开的实施例,在一级参数rank指定了除items、scenario和multi以外的参数时,第一测试终端生成rank error错误的提示。
根据本公开的实施例,第一测试终端和第二测试终端可以基于测试软件对各自搭载的AI加速卡进行测试。测试软件可以集成多种测试功能和测试场景。操作人员可以通过命令行和参数的形式执行场景测试和单独的测试项测试,提高测试效率。
本公开提供的测试方法可以支持在一个主机上配置测试,并控制多个从机执行测试,从而实现多个测试终端联合一起测试。通过在主机上输入测试请求,可以控制多个测试终端自动执行测试项,提高测试效率。
以下将结合图4对第二测试终端执行的本公开提供的测试方法进行描述。
图4示意性示出了根据本公开的另一实施例的测试方法的流程图。
如图4所示,该测试方法400包括操作S410至操作S430。接下来将参考图4来描述根据本公开实施例的测试方法。测试方法400可以应用于例如图1所示的至少一个第二测试终端120。
在操作S410,接收来自第一测试终端的测试任务。
根据本公开的实施例,测试任务可以是由第一测试终端生成的,第一测试终端可以为图1所示的第一测试终端110。例如,第一测试终端根据操作人员输出的测试请求,生成测试任务。测试任务包括多级参数。
根据本公开的实施例,第二测试终端可以为具有加速卡的计算设备。例如,第二测试终端可以搭载有AI加速卡。第二测试终端可以搭载一个AI加速卡,也可以搭载多个AI加速卡。
然后,在操作S420,利用多个预设测试项,生成与测试任务对应测试链路。
然后,在操作S430,通过调用与测试链路对应的工具链接口,分别对至少一个第二测试终端中各自的加速卡进行测试,得到至少一个第二测试结果。
根据本公开的实施例,第二测试终端生成测试链路的过程与第一测试终端生成测试链路的过程类似,第二测试终端执行的测试过程与第一测试终端执行的测试过程类似,为了简明不再赘述。
根据本公开的实施例,第二测试终端接收来自第一测试终端的远程控制指令,基于远程控制指令,接收来自第一测试终端的测试任务。
例如,基于远程控制指令,至少一个第二测试终端进入工作状态,在工作状态中,至少一个第二测试终端接收来自第一测试终端的测试任务。
根据本公开的实施例,至少一个第二测试终端对各自加速卡进行测试的过程与第一测试终端对自身加速卡的测试过程并行。
根据本公开的实施例,第二测试终端向第一测试终端发送至少一个第二测试结果,使第一测试终端可以对第一测试结果和至少一个第二测试结果进行合并处理。
根据本公开的实施例,利用多个预设测试项,生成与测试任务对应测试链路包括:根据测试任务,确定测试场景;获取与测试场景对应的配置文件;根据配置文件,从多个预设测试项中确定多个目标测试项和多个目标测试项之间的执行顺序;以及根据执行顺序,对与多个目标测试项对应的多个目标调用接口进行封装,得到测试链路。
根据本公开的实施例利用多个预设测试项,生成与测试任务对应测试链路还包括:校验测试链路,得到校验结果;以及根据校验结果,在确定测试链路存在异常的情况下,修正测试链路。
根据本公开的实施例通过调用与测试链路对应的工具链接口,对至少一个第二测试终端进行测试,得到测试结果包括:通过调用工具链接口,获取测试链路对应的工具链;利用工具链,分别为至少一个第二测试终端运行测试链路中测试项,得到第二运行结果;以及计算第二运行结果,得到至少一个第二测试结果。
以下将结合图5对本公开提供的测试装置进行描述。
图5示意性示出了根据本公开实施例的测试装置的框图。
如图5所示,该测试装置500包括确定模块510、生成模块520和测试模块530。
根据本公开的实施例,确定模块510,用于响应于接收到的测试请求,确定与测试请求对应的测试类别。
根据本公开的实施例,生成模块520,用于利用多个预设测试项,生成与测试类别对应测试链路。
根据本公开的实施例,测试模块530,用于通过调用与测试链路对应的工具链接口,对第一测试终端的加速卡进行测试,得到第一测试结果。
根据本公开的实施例,该测试装置500可以用于例如图1所示的第一测试终端110。第一测试终端为具有加速卡的计算设备。
根据本公开的实施例,测试装置500还用于与至少一个第二测试终端建立通信连接;以及向至少一个第二测试终端发送测试任务,测试任务与测试链路相关。例如,至少一个第二测试终端可以为图1所示的至少一个第二测试终端120。
根据本公开的实施例,测试装置500还用于根据至少一个第二测试终端的地址,向至少一个第二测试终端设备发送远程控制指令,使第一测试终端与至少一个第二测试终端建立通信连接。
根据本公开的实施例,第一测试终端对加速卡的测试过程与至少一个第二测试终端执行测试任务的过程并行。
根据本公开的实施例,测试装置500还用于接收来自至少一个第二测试终端的至少一个第二测试结果;以及对第一测试结果和至少一个第二测试结果进行合并处理。
根据本公开的实施例,生成模块520还用于根据测试类别,确定测试场景;获取与测试场景对应的配置文件;根据配置文件,从多个预设测试项中确定多个目标测试项和多个目标测试项之间的执行顺序;以及根据执行顺序,对与多个目标测试项对应的多个目标调用接口进行封装,得到测试链路。
根据本公开的实施例,生成模块520还用于校验测试链路,得到校验结果;以及根据校验结果,在确定测试链路存在异常的情况下,修正测试链路。
根据本公开的实施例,测试模块530还用于通过调用工具链接口,获取测试链路对应的工具链;利用工具链,运行测试链路中测试项,得到第一运行结果;以及计算第一运行结果,得到第一测试结果。
以下将结合图6对本公开提供的测试装置进行描述。
图6示意性示出了根据本公开另一实施例的测试装置的框图。
如图6所示,该测试装置600包括接收模块610、生成模块620和测试模块630。
根据本公开的实施例,接收模块610,用于接收来自第一测试终端的测试任务。
根据本公开的实施例,生成模块620,用于利用多个预设测试项,生成与测试任务对应测试链路。
根据本公开的实施例,测试模块630,用于通过调用与测试链路对应的工具链接口,分别对至少一个第二测试终端中各自的加速卡进行测试,得到至少一个第二测试结果。
根据本公开的实施例,该测试装置600可以用于例如图1所示的至少一个第二测试终端120。第二测试终端为具有加速卡的计算设备。
根据本公开的实施例,测试装置600还用于接收来自第一测试终端的远程控制指令;以及基于远程控制指令,接收来自第一测试终端的测试任务。例如,第一测试终端可以为图1所示的第一测试终端110。
根据本公开的实施例,至少一个第二测试终端对各自加速卡进行测试的过程与第一测试终端对自身加速卡的测试过程并行。
根据本公开的实施例,测试装置600还用于向第一测试终端发送至少一个第二测试结果。
根据本公开的实施例,生成模块620还用于根据测试任务,确定测试场景;获取与测试场景对应的配置文件;根据配置文件,从多个预设测试项中确定多个目标测试项和多个目标测试项之间的执行顺序;以及根据执行顺序,对与多个目标测试项对应的多个目标调用接口进行封装,得到测试链路。
根据本公开的实施例,生成模块620还用于校验测试链路,得到校验结果;以及根据校验结果,在确定测试链路存在异常的情况下,修正测试链路。
根据本公开的实施例,测试模块630还用于通过调用工具链接口,获取测试链路对应的工具链;利用工具链,分别为至少一个第二测试终端运行测试链路中测试项,得到第二运行结果;以及计算第二运行结果,得到至少一个第二测试结果。
根据本公开的实施例,本公开还提供了一种测试设备、一种可读存储介质和一种计算机程序产品。
图7示意性示出了可以用来实施本公开的实施例的示例测试设备700的框图。测试设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM.702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如测试方法。例如,在一些实施例中,测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM703并由计算单元701执行时,可以执行上文描述的测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行测试方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (23)

1.一种测试方法,应用于第一测试终端,包括:
响应于接收到的测试请求,确定与所述测试请求对应的测试类别;
利用多个预设测试项,生成与所述测试类别对应测试链路;以及
通过调用与所述测试链路对应的工具链接口,对所述第一测试终端的加速卡进行测试,得到第一测试结果。
2.根据权利要求1所述的方法,还包括:
与至少一个第二测试终端建立通信连接;以及
向所述至少一个第二测试终端发送测试任务,所述测试任务与所述测试链路相关。
3.根据权利要求2所述的方法,其中,所述与至少一个第二测试终端建立通信连接包括:
根据所述至少一个第二测试终端的地址,向所述至少一个第二测试终端设备发送远程控制指令。
4.根据权利要求2所述的方法,其中,
所述第一测试终端对所述加速卡的测试过程与所述至少一个第二测试终端执行所述测试任务的过程并行。
5.根据权利要求2所述的方法,还包括:
接收来自所述至少一个第二测试终端的至少一个第二测试结果;以及
对所述第一测试结果和所述至少一个第二测试结果进行合并处理。
6.根据权利要求1所述的方法,其中,所述利用多个预设测试项,生成与所述测试类别对应测试链路包括:
根据所述测试类别,确定测试场景;
获取与所述测试场景对应的配置文件;
根据所述配置文件,从所述多个预设测试项中确定多个目标测试项和所述多个目标测试项之间的执行顺序;以及
根据所述执行顺序,对与所述多个目标测试项对应的多个目标调用接口进行封装,得到所述测试链路。
7.根据权利要求6所述的方法,其中,所述利用多个预设测试项,生成与所述测试类别对应测试链路还包括:
校验所述测试链路,得到校验结果;以及
根据所述校验结果,在确定所述测试链路存在异常的情况下,修正所述测试链路。
8.根据权利要求1所述的方法,其中,所述通过调用与所述测试链路对应的工具链接口,对所述第一测试终端的加速卡进行测试,得到第一测试结果包括:
通过调用所述工具链接口,获取所述测试链路对应的工具链;
利用所述工具链,运行所述测试链路中测试项,得到第一运行结果;以及
计算所述第一运行结果,得到所述第一测试结果。
9.根据权利要求1-8任一项所述的方法,其中,所述第一测试终端为具有加速卡的计算设备。
10.一种测试方法,应用于至少一个第二测试终端,包括:
接收来自第一测试终端的测试任务;
利用多个预设测试项,生成与所述测试任务对应测试链路;以及
通过调用与所述测试链路对应的工具链接口,分别对所述至少一个第二测试终端中各自的加速卡进行测试,得到至少一个第二测试结果。
11.根据权利要求10所述的方法,其中,还包括:
接收来自所述第一测试终端的远程控制指令;以及
基于所述远程控制指令,接收来自所述第一测试终端的测试任务。
12.根据权利要求10所述的方法,其中,
所述至少一个第二测试终端对各自加速卡进行测试的过程与所述第一测试终端对自身加速卡的测试过程并行。
13.根据权利要求10所述的方法,还包括:
向所述第一测试终端发送所述至少一个第二测试结果。
14.根据权利要求10所述的方法,其中,所述利用多个预设测试项,生成与所述测试任务对应测试链路包括:
根据所述测试任务,确定测试场景;
获取与所述测试场景对应的配置文件;
根据所述配置文件,从所述多个预设测试项中确定多个目标测试项和所述多个目标测试项之间的执行顺序;以及
根据所述执行顺序,对与所述多个目标测试项对应的多个目标调用接口进行封装,得到所述测试链路。
15.根据权利要求14所述的方法,其中,所述利用多个预设测试项,生成与所述测试任务对应测试链路还包括:
校验所述测试链路,得到校验结果;以及
根据所述校验结果,在确定所述测试链路存在异常的情况下,修正所述测试链路。
16.根据权利要求1所述的方法,其中,所述通过调用与所述测试链路对应的工具链接口,分别对所述至少一个第二测试终端中各自的加速卡进行测试,得到至少一个第二测试结果包括:
通过调用所述工具链接口,获取所述测试链路对应的工具链;
利用所述工具链,分别为所述至少一个第二测试终端运行所述测试链路中测试项,得到第二运行结果;以及
计算所述第二运行结果,得到所述至少一个第二测试结果。
17.根据权利要求10-16任一项所述的方法,其中,所述第二测试终端为具有加速卡的计算设备。
18.一种测试装置,应用于第一测试终端,包括:
确定模块,用于响应于接收到的测试请求,确定与所述测试请求对应的测试类别;
生成模块,用于利用多个预设测试项,生成与所述测试类别对应测试链路;以及
测试模块,用于通过调用与所述测试链路对应的工具链接口,对所述第一测试终端的加速卡进行测试,得到第一测试结果。
19.一种测试装置,应用于至少一个第二测试终端,包括:
接收模块,用于接收来自第一测试终端的测试任务;
生成模块,用于利用多个预设测试项,生成与所述测试任务对应测试链路;以及
测试模块,用于通过调用与所述测试链路对应的工具链接口,分别对所述至少一个第二测试终端中各自的加速卡进行测试,得到至少一个第二测试结果。
20.一种测试设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9或10-17中任一项所述的方法。
21.一种测试系统,包括:
第一测试终端;以及
至少一个第二测试终端;
其中,所述第一测试终端执行权利要求1-9中任一项所述的方法,所述至少一个第二测试终端执行权利要求10-17中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9或10-17中任一项所述的方法。
23.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-9或10-17中任一项所述方法的步骤。
CN202310797568.XA 2023-06-30 2023-06-30 测试方法、装置、电子设备和存储介质 Pending CN116795611A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310797568.XA CN116795611A (zh) 2023-06-30 2023-06-30 测试方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310797568.XA CN116795611A (zh) 2023-06-30 2023-06-30 测试方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN116795611A true CN116795611A (zh) 2023-09-22

Family

ID=88041472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310797568.XA Pending CN116795611A (zh) 2023-06-30 2023-06-30 测试方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116795611A (zh)

Similar Documents

Publication Publication Date Title
CN111897724B (zh) 一种适用于云平台的自动化测试方法及装置
CN111782524B (zh) 应用测试方法和装置、存储介质和电子装置
CN109977012B (zh) 系统的联调测试方法、装置、设备及计算机可读存储介质
CN111666563B (zh) 用于验证应用运行状态的方法及装置
CN111966597B (zh) 测试数据生成方法及装置
CN111752843A (zh) 用于确定影响面的方法、装置、电子设备及可读存储介质
CN112035344A (zh) 多场景测试方法、装置、设备和计算机可读存储介质
CN114064208A (zh) 检测应用服务状态的方法、装置、电子设备及存储介质
CN111209203A (zh) 一种基于源代码的模型验证方法
CN112732499A (zh) 一种基于微服务架构的测试方法、装置及计算机系统
CN114389969A (zh) 客户端的测试方法、装置、电子设备和存储介质
CN113821433A (zh) 云手机应用程序的测试方法、装置、设备、介质及产品
CN110609786B (zh) 软件测试方法、装置、计算机设备和存储介质
CN115391219A (zh) 测试用例生成方法、装置、电子设备及存储介质
CN117520195A (zh) 测试接口的方法、装置、设备、存储介质及程序产品
CN116401113B (zh) 一种异构众核架构加速卡的环境验证方法、装置及介质
US20230359976A1 (en) Real-Time Prediction Method, Electronic Device And Non-transitory Computer-Readable Storage Medium
CN115481594B (zh) 计分板实现方法、计分板、电子设备及存储介质
CN116126719A (zh) 接口测试方法、装置、电子设备及存储介质
CN116795611A (zh) 测试方法、装置、电子设备和存储介质
CN113691403A (zh) 拓扑节点配置方法、相关装置及计算机程序产品
CN113836291B (zh) 数据处理方法、装置、设备和存储介质
CN113656268B (zh) 业务服务的性能测试方法、装置、电子设备和存储介质
CN112667498B (zh) 服务器搭建方法、装置、计算机设备和可读存储介质
CN116089307B (zh) 一种bios测试方法、装置、设备及介质

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