CN113190443A - 测试方法、装置、计算机设备和存储介质 - Google Patents

测试方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN113190443A
CN113190443A CN202110468343.0A CN202110468343A CN113190443A CN 113190443 A CN113190443 A CN 113190443A CN 202110468343 A CN202110468343 A CN 202110468343A CN 113190443 A CN113190443 A CN 113190443A
Authority
CN
China
Prior art keywords
test
case
cases
file
function
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
CN202110468343.0A
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.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202110468343.0A priority Critical patent/CN113190443A/zh
Publication of CN113190443A publication Critical patent/CN113190443A/zh
Pending legal-status Critical Current

Links

Images

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/368Test management for test version control, e.g. updating test cases to a new software version
    • 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

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

测试方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种测试方法、装置、计算机设备和存储介质。
背景技术
持续集成是一种软件开发实践,每次集成都通过构建编译、发布、测试一体化的流程来验证,从而尽早发现集成错误。
当前OpenBMC软件项目已经开始使用持续集成***进行项目的开发、测试和维护,且在持续集成的测试过程中,负责该项目的各研发人员需要将各自负责的部分编辑成测试用例,并集成在一起手动进行反复测试、调整、分析,直至测试通过为止,然后该软件项目即可进行发布以提供给用户使用。
但是,上述软件项目的测试方法存在效率低下的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高项目测试效率,且实现持续集成的测试方法、装置、计算机设备和存储介质。
第一方面,一种测试方法,所述方法包括:
获取待测试项目的所有测试用例;
调用各所述测试用例对应的测试函数,从数据库中获取各所述测试用例的测试文件;各所述测试文件中包括各所述测试用例所需的测试数据和测试逻辑;
若获取到所述测试文件,则根据所述测试文件和对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果;
根据各所述测试用例的测试结果生成测试报告。
上述测试方法中,由于测试函数和测试文件是分离的,因此,在测试过程中需要修改测试数据或测试逻辑时,计算机设备可以直接修改测试文件,再将修改后的测试文件导入到现有的测试函数后,就可以达到自动调整测试函数中测试代码的效果,而不需要用户再按照需要修改的测试数据或测试逻辑重新编辑一套测试代码得到新的测试函数,进而根据新的测试函数进行测试,极大的提高了测试效率。
在其中一个实施例中,所述根据所述测试文件和对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果,包括:
读取所述测试文件中的测试数据和测试逻辑;
调用所述对应的测试函数基于所述测试数据和所述测试逻辑对所述测试用例进行测试,得到所述测试用例的测试结果。
上述实施例所述的测试方法将测试文件中的测试数据和测试逻辑作为函数参数传递到测试函数,可以得到用于对测试用例进行测试的测试函数,所以在测试过程中需要修改测试数据或测试逻辑时,计算机设备可以直接修改测试文件,再直接传递到测试函数中,即可实现对测试代码的修改,而不需要通过用户在源代码中手动编辑修改测试代码,可以提高测试效率。
在其中一个实施例中,所述获取待测试项目的所有测试用例之前,所述方法还包括:
展示测试用例的显示界面;所述显示界面中包括多个所述测试用例的选项;
获取用户在所述显示界面上的输入指令;所述输入指令包括被选中的测试用例的标识;
所述获取待测试项目的多个测试用例,包括:
根据所述输入指令将所述被选中的测试用例的标识对应的测试用例确定为所述待测试项目的多个测试用例。
上述实施例所述的测试方法可以使计算机设备在对各测试用例进行测试时,有选择性的执行测试流程而不需要执行不必要的测试流程,进一步的可以提高测试效率,还可以满足用户的应用需求。
在其中一个实施例中,若所述显示界面包括图形选择界面;所述图形选择界面中包括多个测试套件的选项,各所述测试套件的选项对应的子界面中包含多个所述测试用例选项;所述输入指令包括被选中的测试套件标识和测试用例标识;
则所述根据所述输入指令将所述被选中的测试用例标识对应的测试用例确定为所述待测试项目的多个测试用例,包括:
根据所述选择指令将所述被选中的测试套件标识和测试用例标识对应的测试用例确定为所述待测试项目的多个测试用例。
上述实施例中提供了一种可供用户自主选择测试用例进行测试的功能,因为传统的测试方法中,当测试机调用测试用例对待测试项目进行测试时,一般都是默认执行各测试用例的测试代码,执行完成后即完成测试,并没有给用户提供可选择测试用例进行测试的功能,因此,本申请提出的测试方法通过提供人机交互的方式,极大的满足了用户的测试需求,而且提供了更为人性化的图形选择界面,使用户操作更为简单方便,提高了用户测试的体验度。
在其中一个实施例中,所述测试报告包括邮件版本、阅读版本、网页版本中的至少一种版本的测试报告。
上述实施例通过使用不同版本的测试报告向用户展示测试结果,可以使用户从各个维度了解到测试失败、测试成功的原因,或是能够详细的了解到测试用例的测试内容和测试过程,便于技术人员及时维护调整,从而减少bug的出现,可以提高待测试项目的生成效率。
在其中一个实施例中,所述方法还包括:
将所述测试结果上报至云端服务器,以使所述云端服务器对预设时间段内接收到的测试结果进行统计分析,得到统计分析结果;
接收所述云端服务器返回的统计分析结果,并在显示界面上展示所述统计分析结果。
上述实施例结合大数据分析预设时间段内积累的测试结果,且可视化的向用户展示,可以便于用户能够更加详细和全面的了解测试过程和测试结果,进而提高测试效率。
在其中一个实施例中,所述待测试项目为Openbmc项目,所述获取待测试项目的所有测试用例,包括:
在Robot框架上获取所述Openbmc项目的所有测试用例;每个所述测试用例使用Python框架预先构建。
本实施例中将两种框架结合,内部细致的测试用例采用Python框架语言编辑,外部采用Robot框架进行测试用例的管理,充分结合了两种框架各自的优点,克服了仅基于Robot框架进行开发和测试带来的测试复杂,编写测试用例逻辑混乱等缺陷,以及克服了仅基于Python框架进行开发和测试带来的测试用例管理不方便、报告可读性差的缺陷,因此,本申请提供的基于上述结合框架进行项目测试的测试方法不仅便于测试用例管理,还能提供详细且可读性好的测试报告,实现了对Openbmc项目的高效测试。
在其中一个实施例中,所述获取待测试项目的所有测试用例,包括:
基于Jenkins框架的定时功能,按照预设时间周期获取所述Robot框架上的所有测试用例。
本实施例通过将Jenkins框架嵌套在Robot框架和Python框架上,可以实现定时测试功能,即设定固定的测试开始、结束、上报、发布时间,实现全自动的整套测试流程,因为在实际应用中,对待测试项目测试时往往需要耗费很长的时间,比如一个月或一个季度的不间断重复测试,这就需要相应的测试人员每天手动在固定时间进行测试,给测试人员相应带来的很大的工作量,因此,本申请提供的自动测试功能极大的降低了人力成本,同时还避免了因负责不同模块的技术人员进行测试集成对接时容易出现的及交接或融合错误,进而提高了项目测试效率。
在其中一个实施例中,所述方法还包括:
若未获取到所述测试文件,则执行所述测试用例对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果。
第二方面,一种测试装置,所述装置包括:
获取模块,用于获取待测试项目的多个测试用例;
调用模块,用于调用各所述测试用例对应的测试函数;
测试模块,用于在获取到所述测试文件的情况下,根据所述测试文件和对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果;
生成模块,用于根据各所述测试用例的测试结果生成测试报告。
第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
上述测试方法、装置、计算机设备和存储介质,通过获取待测试项目的多个测试用例,调用各测试用例对应的测试函数,从数据库中获取各测试用例的测试文件,若获取到测试文件,则根据测试文件和对应的测试函数对测试用例进行测试,得到测试用例的测试结果,根据各测试用例的测试结果生成测试报告。上述测试方法中,由于测试函数和测试文件是分离的,因此,在测试过程中需要修改测试数据或测试逻辑时,计算机设备可以直接修改测试文件,再将修改后的测试文件导入到现有的测试函数后,就可以达到自动调整测试函数中测试代码的效果,而不需要用户再按照需要修改的测试数据或测试逻辑重新编辑一套测试代码进行测试,极大的提高了测试效率。
附图说明
图1为一个实施例中计算机设备的内部结构图;
图2为一个实施例中测试方法的流程示意图;
图3为图2实施例中S103的一种实现方式的流程示意图;
图4为一个实施例中测试文件的示意图;
图5为一个实施例中测试方法的流程示意图;
图5A为一个实施例中显示界面的示意图;
图5B为一个实施例中显示界面的示意图;
图6为一个实施例中阅读版本的测试报告的示意图;
图7为一个实施例中网页版本的测试报告的示意图;
图8为一个实施例中测试方法的流程示意图;
图9为一个实施例中显示界面的示意图;
图10为一个实施例中测试方法的流程示意图;
图11为一个实施例中测试装置的流程示意图;
图12为一个实施例中测试装置的流程示意图;
图13为一个实施例中测试装置的流程示意图;
图14为一个实施例中测试装置的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的测试方法,可以应用于如图1所示的计算机设备中,该计算机设备可以是服务器,该计算机设备也可以是终端,其内部结构图可以如图1所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种测试方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图2所示,提供了一种测试方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:
S101,获取待测试项目的多个测试用例。
其中,待测试项目可以为任一类型的软件应用项目,比如Openbmc软件开发项目,Openbmc是基板管理控制器(Baseboard Management Controller,BMC)的Linux发行版,旨在跨越异构***,包括企业,高性能计算,电信和云规模数据中心等***的管理。待测试项目的测试用例是指对待测试项目的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略,其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。
本实施例中,当技术人员预对待测试项目的产品进行测试时,计算机设备可以先在相应的软件测试框架上构建待测试项目,再将预先编辑完成的待测试项目的所有测试用例导入到软件测试框架中,之后,计算机设备即可将导入的所有测试用例作为默认要测试的测试用例进行测试。可选的,计算机设备也可以先在导入的所有测试用例中选择要测试的测试用例,再相继对选择出的测试用例进行测试。
S102,调用各测试用例对应的测试函数,从数据库中获取各测试用例的测试文件。
其中,各测试文件中包括各测试用例所需的测试数据和测试逻辑。测试文件可以采用任何类型的文档表示,例如,excel文档、TXT文档等。测试函数可以由计算机设备预先构建,用于获取对应测试用例的测试文件,并完成对测试用例的测试。各测试用例对应的测试函数可以相同,也可以不相同。而且,测试函数中包含对测试用例进行测试的测试代码,当计算机设备执行测试函数时,依次执行其中的每行测试代码,可以实现对测试用例的测试流程。
本实施例中,计算机设备可以预先建立测试用例和测试文件之间的对应关系,以及预先建立测试用例和测试函数之间的对应关系。在实际应用中,计算机设备在获取到待测试项目的多个测试用例后,即可从数据库中获取测试用例和测试函数之间的对应关系,并根据测试用例和测试函数之间的对应关系确定与待测试项目的每个测试用例对应的测试函数,再从数据库中获取测试用例和测试文件之间的对应关系,并根据测试用例和测试文件之间的对应关系获取各测试用例的测试文件。
S103,若获取到测试文件,则根据测试文件和对应的测试函数对测试用例进行测试,得到测试用例的测试结果。
当计算机设备获取到测试用例的测试文件时,计算机设备可以直接将测试文件中的测试数据和测试逻辑导入到测试函数中,并根据导入的测试数据和测试逻辑自动调整测试函数中的测试代码,进而自动生成可以用于测试的测试函数,并执行测试函数,以完成测试用例的测试,得到测试用例的测试结果。需要说明的是,上述测试文件与测试函数是分离的,且当后期需要修改测试用例时,用户只需要修改测试文件,再根据测试文件生成测试函数时,可以达到自动调整测试函数中测试代码的效果。
S104,根据各测试用例的测试结果生成测试报告。
其中,测试报告包括邮件版本、阅读版本、网页版本中的至少一种版本的测试报告。阅读版本也即PDF版本。PDF版本的测试报告可提供通俗易懂的测试结果和测试失败原因,且适合提供给测试人员、对外人员、以及客户查看。邮件版本的测试报告可提供简单直接的测试结果,可以直接展示测试失败的部分,让测试人员可以直接了解当前的测试情况,且适合提供给研发人员查看。网页版本的测试报告可以通过图表的形式展示测试结果,且可以通过不同维度记录同一个测试用例的历史错误次数和时间,或者记录不同测试用例在相同时间的测试结果。
本实施例中,当计算机设备对待测试项目的多个测试用例进行测试,以及得到各测试用例的测试结果时,计算机设备可以根据各测试用例的测试结果生成不同版本的测试报告;可选的,计算机设备也可以先对各测试结果进行分析或处理,再根据分析或处理后的各测试结果生成测试报告;可选的,计算机设备还可以根据各测试结果绘制相关的测试图或测试曲线,再根据测试图或测试曲线生成测试报告。需要说明的是,计算机设备具体可以生成邮件版本的测试报告,也可以生成阅读版本的测试报告,还可以生成网页版本的测试报告;可选的,计算机设备还可以同时生成多种版本的测试报告,比如,同时输出邮件版本和阅读版本的测试报告、同时生成阅读版本和网页版本的测试报告、同时生成邮件版本和网页版本的测试报告,还可以同时生成邮件版本、阅读版本和网页版本的测试报告。
上述测试方法通过获取待测试项目的多个测试用例,调用各测试用例对应的测试函数,从数据库中获取各测试用例的测试文件,若获取到测试文件,则根据测试文件和对应的测试函数对测试用例进行测试,得到测试用例的测试结果,根据各测试用例的测试结果生成测试报告。上述测试方法中,由于测试函数和测试文件是分离的,因此,在测试过程中需要修改测试数据或测试逻辑时,计算机设备可以直接修改测试文件,再将修改后的测试文件导入到现有的测试函数后,就可以达到自动调整测试函数中测试代码的效果,而不需要用户再按照需要修改的测试数据或测试逻辑重新编辑一套测试代码得到新的测试函数,进而根据新的测试函数进行测试,极大的提高了测试效率。
在实际应用中,待测试项目对应多个测试用例,且有的测试用例存在关联的测试文件,有的测试用例由于可以通过固定的测试数据和测试逻辑进行测试,因此对应固定的测试函数,且该测试函数中包含描述上述固定的测试数据和测试逻辑的测试代码,并不需要关联额外的测试文件,所以有的测试用例可能不存在关联的测试文件,因此,计算机设备调用测试用例对应的测试函数获取测试文件时,可能获取不到测试文件,在此情况下,计算机设备直接执行测试用例对应的测试函数对测试用例进行测试,得到测试用例的测试结果。
上述实施例还考虑到了在测试过程中,不需要修改测试用例的情况,即在测试过程中,计算机设备直接执行与测试用例对应的测试函数即可完成测试。因此,本申请针对实际应用场景提供了一种最优的测试方法,即,一方面,在面对后期可能需要修改测试数据或测试逻辑的测试用例时,为该测试用例对应的测试函数关联测试文件,以便后期修改该测试用例时通过修改测试文件的方式达到提高测试效率的目的;另一方面,在面对后期不需要修改测试数据或测试逻辑的测试用例时,直接执行测试函数进行测试,进而提高测试效率。
在一个实施例中,提供了上述S103的一种实现方式,如图3所示,上述S103中的“根据测试文件和对应的测试函数对测试用例进行测试,得到测试用例的测试结果”,包括:
S201,读取测试文件中的测试数据和测试逻辑。
其中,测试文件中可以包括对应测试用例下的多个子用例的测试数据和测试逻辑,比如,如图4所示的excel表格类型的测试文件中包含了电源控制测试用例下的3个子用例:1电源关闭、2电源开启、3电源重启,这3个子用例对应各自的测试数据和测试逻辑。本实施例中,当计算机设备获取到测试用例的测试文件时,即可从测试文件中依次读取每个子用例的测试数据和测试逻辑,以便之后使用读取出的每个子用例的测试数据和测试逻辑对测试用例进行测试。
S202,调用对应的测试函数基于测试数据和测试逻辑对测试用例进行测试,得到测试用例的测试结果。
本实施例中,当计算机设备从测试文件中读取出每个子用例的测试数据和测试逻辑时,计算机设备即可调用与该测试文件对应的测试函数,并将读取出的测试数据和测试逻辑作为测试函数的参数传递到测试函数中,进一步的根据测试数据和测试逻辑调整测试函数中的测试代码,以获取到可以用于测试的测试函数,最后计算机设备执行传递参数后的测试函数,使该测试函数可以按照测试文件中的测试数据和测试逻辑完成对测试用例中各子用例的测试,得到该测试用例的测试结果,该测试结果中包含对各子用例的测试结果,例如,电源控制测试用例下包括3个子用例:1电源关闭、2电源开启、3电源重启,当测试完成后,可以得到的测试结果包括:1电源关闭正常,2电源开启正常,3电源重启正常。需要说明的是,图3实施例仅是说明了一个关联测试文件的测试用例的测试方法,在实际应用中,计算机设备可以采用S201-S202所述的测试方法对待测试项目的每个存在关联测试文件的测试用例进行测试,得到各测试用例的测试结果。
上述实施例所述的测试方法将测试文件中的测试数据和测试逻辑作为函数参数传递到测试函数,可以得到用于对测试用例进行测试的测试函数,所以在测试过程中需要修改测试数据或测试逻辑时,计算机设备可以直接修改测试文件,再直接传递到测试函数中,即可实现对测试函数中的测试代码的修改,而不需要通过用户在源代码中手动编辑修改测试代码,可以提高测试效率。
在实际应用中,用户还可以根据测试需求自主选择测试用例对待测试项目进行测试,基于此,计算机设备在执行上述S101的步骤之前,如图5所示,计算机设备还可以执行如下步骤:
S301,展示测试用例的显示界面。
其中,显示界面中包括多个测试用例的选项。该显示界面可以具体为命令行显示界面(比如图5A所示),也可以为图形选择界面(比如图5B所示)。本实施例中,当计算机设备将预先编辑完成的待测试项目的所有测试用例导入到软件测试框架之后,计算机设备即可展示导入的所有测试用例的显示界面,向用户显示可用于测试的测试用例,以便用户根据测试需求自主选择使用的测试用例。
S302,获取用户在显示界面上的输入指令。
其中,输入指令包括被选中的测试用例的标识。用户可以通过勾选显示界面上各测试用例的选项的方式输入指令,也可以通过设置各测试用例的选项对应的参数值的方式输入指令,比如,当显示界面为命令行显示界面时,可以将选择的测试用例的标志位设置为1,表示使用选择的测试用例进行测试(见图5A所示);当显示界面为图形选择界面时,可以在选择的测试用例的选项框中进行勾选,表示使用选择的测试用例进行测试(见图5B所示)。当用户在显示界面上执行完成相应的选择操作时,计算机设备即可根据各选中的测试用例的标识生成输入指令。
对应的,计算机设备在执行图2实施例中S101的步骤时,可以具体执行步骤:S1011,根据输入指令将被选中的测试用例的标识对应的测试用例确定为待测试项目的多个测试用例。
本实施例中,当计算机设备获取到用户在显示界面上的输入指令时,即可根据该输入指令确定被选中的测试用例的标识,以便确定后期需要测试的测试用例,使计算机设备在对各测试用例进行测试时,有选择性的执行测试流程而不需要执行不必要的测试流程,进一步的可以提高测试效率,还可以满足用户的应用需求。
需要说明的是,当显示界面为图形选择界面时,该图形选择界面中包括多个测试套件的选项(例如,图5B中的1-7测试套件的选项),各测试套件的选项对应的子界面中包含多个测试用例选项(例如,图5B中的1-Web Dashboard下的多个测试用例选项);输入指令包括被选中的测试套件标识和测试用例标识,则上述S1011“根据输入指令将被选中的测试用例标识对应的测试用例确定为待测试项目的多个测试用例”,包括:根据选择指令将被选中的测试套件标识和测试用例标识对应的测试用例确定为待测试项目的多个测试用例。
上述实施例中提供了一种可供用户自主选择测试用例进行测试的功能,因为传统的测试方法中,当测试机调用测试用例对待测试项目进行测试时,一般都是默认执行各测试用例的测试代码,执行完成后即完成测试,并没有给用户提供可选择测试用例进行测试的功能,因此,本申请提出的测试方法提供了一种人机交互的方式,极大的满足了用户的测试需求,而且提供了更为人性化的图形选择界面,使用户操作更为简单方便,提高了用户测试的体验度。
在一个实施例中,当计算机设备执行图2实施例中的S104步骤生成测试报告时,可以同时输出邮件版本、阅读版本、网页版本的测试报告。
其中阅读版本的测试报告可以采用如图6所示的形式展示,例如,该测试报告上包括了两个测试用例(#1物理盘状态改变和#2逻辑盘raid创建)、各测试用例的用例描述、各测试用例测试所用时长、各测试用例的测试结果。网页版本的测试报告可以采用如图7所示的形式展示,该测试报告中包括了经过统计分析所有测试用例的测试结果后的测试报告,例如,图7中图表(a)的横坐标表示事故等级:正常的、严重的、没有测试的、……、等,纵坐标表示经过测试的测试用例的数目,图表(a)表示不同事故等级的测试结果对应的测试用例的数目;图7中图表(b)的横坐标表示经过测试的测试用例,纵坐标表示经过测试的测试用例所耗时间,图表(b)表示不同测试用例经过测试后所耗时间;图7中图表(c)的横坐标表示每天测试的测试用例,纵坐标表示经过测试的测试用例所耗时间,图表(c)表示每天对待测试项目的测试用例进行测试时,测试完成后所耗的时长。
本实施例通过使用不同版本的测试报告向用户展示测试结果,可以使用户从各个维度了解到测试失败、测试成功的原因,或是能够详细的了解到测试用例的测试内容和测试过程,便于技术人员及时维护调整,从而减少bug的出现,可以提高待测试项目的生成效率。
在实际应用中,计算机设备可以在每次完成测试后,向云端服务器上报测试结果进行大数据统计分析,因此,计算机设备执行步骤S103之后,如图8所示,可以具体可以执行步骤:
S501,将测试结果上报至云端服务器,以使云端服务器对预设时间段内接收到的测试结果进行统计分析,得到统计分析结果。
S502,接收云端服务器返回的统计分析结果,并在显示界面上展示统计分析结果。
其中,预设时间段可以为一个月、一个季度、一年等不同的时间段,预设时间段可以由云端服务器预先根据统计需求确定。本实施例中,当计算机设备在每次完成测试后,可以进一步的将测试结果上报至云端服务器存放至数据库中(比如Mysql数据库)。云端服务器在接收到计算机设备上报的预设时间段内的测试结果后,可以进一步的结合历史数据(比如距离当前时间半年内获取到的测试结果)对测试结果进行统计分析和记录,得到统计分析结果,并将统计分析结果返回至计算机设备。当计算机设备接收到远端服务器返回的统计分析结果时,可以在显示界面上展示该统计结果,以供用户查看。例如,图9所示的显示界面,该显示界面上包含各种可以表示测试结果变化趋势的图表。
上述实施例结合大数据分析预设时间段内积累的测试结果,且可视化的向用户展示,以便技术人员基于大数据统计后的统计分析结果可以详细了解在预设时间段内测试结果的变化情况,进而能够准确的把握测试过程中出现的问题,便于及时修正,进而提高测试效率。
在一个实施例中,本申请还将两种框架(Robot框架和Python框架)进行结合,并在结合后的框架上实现对Openbmc项目的测试,因此,计算机设备在采用前述实施例所述的测试方法对Openbmc项目进行测试,执行S101“获取待测试项目的多个测试用例”的步骤时,可以具体执行步骤:在Robot框架上获取Openbmc项目的多个测试用例;每个测试用例使用Python框架预先构建。
也就是说,当技术人员预对Openbmc项目的产品进行测试时,计算机设备可以先在Robot框架上构建Openbmc项目,再将预先根据Python框架语言编辑完成的Openbmc项目的所有测试用例导入到Robot框架中,之后,计算机设备即可将导入的所有测试用例作为默认要测试的测试用例进行测试。本实施例中将两种框架结合,内部细致的测试用例采用Python框架语言编辑,外部采用Robot框架进行测试用例的管理,充分结合了两种框架各自的优点,克服了仅基于Robot框架进行开发和测试带来的测试复杂,编写测试用例逻辑混乱等缺陷,以及克服了仅基于Python框架进行开发和测试带来的测试用例管理不方便、报告可读性差的缺陷,因此,本申请提供的基于上述结合框架进行项目测试的测试方法不仅便于测试用例管理,还能提供详细且可读性好的测试报告,实现了对Openbmc项目的高效测试。
基于上述提供的开源框架,本申请还提供了一种基于上述结合框架嵌套Jenkins框架的测试方法,因此,计算机设备在采用前述实施例所述的测试方法对Openbmc项目进行测试,执行S101“获取待测试项目的多个测试用例”的步骤时,还可以具体执行步骤:基于Jenkins框架的定时功能,按照预设时间周期获取Robot框架上的多个测试用例。
示例性说明上述测试方法:基于Jenkins框架的定时功能,假设预设时间周期为24小时,具体设置每天18:00点准时进行测试代码打包,sonar代码质量检测,上传gitlab保留,持续部署,每天21:00点准时下载测试代码部署到计算机设备(测试机)上进行测试,得到每天测试的测试报告,然后可以将该测试报告以不同的版本输出,并发送至测试人员进行查看,也可以将每天的测试结果自动上传至云端服务器进行统计分析,得到统计分析结果。
上述实施例通过将Jenkins框架嵌套在Robot框架和Python框架上,可以实现定时测试功能,即设定固定的测试开始、结束、上报、发布时间,实现全自动的整套测试流程,因为在实际应用中,对待测试项目测试时往往需要耗费很长的时间,比如一个月或一个季度的不间断重复测试,这就需要相应的测试人员每天手动在固定时间进行测试,给测试人员相应带来的很大的工作量,因此,本申请提供的自动测试功能极大的降低了人力成本,同时还避免了因负责不同模块的技术人员进行测试集成对接时容易出现的及交接或融合错误,进而提高了项目测试效率。
综合上述所有实施例,本申请还提供了一种测试方法,如图10所述,该方法包括:
S601,在Robot框架上展示Openbmc项目的所有测试用例的显示界面,每个测试用例使用Python框架预先构建。
S602,获取用户在显示界面上的输入指令。输入指令包括被用户选中的测试用例的标识。
S603,根据输入指令将被选中的测试用例的标识对应的测试用例确定为待测试项目的多个测试用例。
S604,调用各测试用例对应的测试函数,从数据库中获取各测试用例的测试文件,若获取到测试文件,则执行步骤S605;若未获取到测试文件,则执行步骤S607。
S605,读取各测试文件中的测试数据和测试逻辑。
S606,调用对应的测试函数基于测试数据和测试逻辑对测试用例进行测试,得到测试用例的测试结果。
S607,执行测试用例对应的测试函数对测试用例进行测试,得到测试用例的测试结果。
S608,根据各测试用例的测试结果生成测试报告。
S609,将测试结果上报至云端服务器,以使云端服务器对预设时间段内接收到的测试结果进行统计分析,得到统计分析结果。
S610,接收云端服务器返回的统计分析结果,并在显示界面上展示统计分析结果。
上述实施例中各步骤的说明请参见前述内容,此处不赘述。
本实施例提供了一种新的测试框架,即Robot框架、Python框架和Jenkins框架的结合框架,该新的测试框架用于实现Openbmc项目的测试、发布、报告等整个流程的自动化集成和持续集成处理,相比于现有实现持续集成的测试方法,必须使各环节的技术人员将各自模块的测试方法集成在一起,其中介入了大量的人力干预,导致持续集成的效率极低。而本申请可以克服上述问题,实现一键集成,其中不需要太多的人力介入,进行自动测试、自动输出报告、自动发布测试结果等流程,且可以每天定时进行重复的测试测流,不需要人工监督手动操作,因此本申请提供的测试方法极大的提高了Openbmc项目的生成效率。
应该理解的是,虽然图2-10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-10中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图11所示,提供了一种测试装置,包括:
获取模块11,用于获取待测试项目的多个测试用例;
调用模块12,用于调用各所述测试用例对应的测试函数;
测试模块13,用于在获取到所述测试文件的情况下,根据所述测试文件和对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果;
生成模块14,用于根据各所述测试用例的测试结果生成测试报告。
在一个实施例中,上述测试模块12,如图12所示,包括:
读取单元121,用于读取所述测试文件中的测试数据和测试逻辑;
测试单元122,用于调用所述对应的测试函数基于所述测试数据和所述测试逻辑对所述测试用例进行测试,得到所述测试用例的测试结果。
在一个实施例中,如图13所述,上述测试装置还包括:
展示模块15,用于展示测试用例的显示界面;所述显示界面中包括多个所述测试用例的选项;
获取指令模块16,用于获取用户在所述显示界面上的输入指令;所述输入指令包括被选中的测试用例的标识;
对应的,上述获取模块11具体用于根据所述输入指令将所述被选中的测试用例的标识对应的测试用例确定为所述待测试项目的多个测试用例。
在一个实施例中,若所述显示界面包括图形选择界面;所述图形选择界面中包括多个测试套件的选项,各所述测试套件的选项对应的子界面中包含多个所述测试用例选项;所述输入指令包括被选中的测试套件标识和测试用例标识;
则上述获取模块11具体用于根据所述选择指令将所述被选中的测试套件标识和测试用例标识对应的测试用例确定为所述待测试项目的所有测试用例。
在一个实施例中,所述测试报告包括邮件版本、阅读版本、网页版本中的至少一种版本的测试报告。
在一个实施例中,如图14所述,上述测试装置还包括:
上报模块17,用于将所述测试结果上报至云端服务器,以使所述云端服务器对预设时间段内接收到的测试结果进行统计分析,得到统计分析结果;
展示模块18,用于接收所述云端服务器返回的统计分析结果,并在显示界面上展示所述统计分析结果。
在一个实施例中,所述待测试项目为Openbmc软件开发项目,对应的上述获取模块11具体用于在Robot框架上获取所述Openbmc软件开发项目的多个测试用例;每个所述测试用例使用Python框架预先构建。
在一个实施例中,上述获取模块11具体用于基于Jenkins框架的定时功能,按照预设时间周期获取所述Robot框架上的多个测试用例。
在一个实施例中,上述测试模块13还用于在未获取到所述测试文件的情况下,执行所述测试用例对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果。
关于测试装置的具体限定可以参见上文中对于测试方法的限定,在此不再赘述。上述测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待测试项目的多个测试用例;
调用各所述测试用例对应的测试函数,从数据库中获取各所述测试用例的测试文件;各所述测试文件中包括各所述测试用例所需的测试数据和测试逻辑;
若获取到所述测试文件,则根据所述测试文件和对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果;
根据各所述测试用例的测试结果生成测试报告。
上述实施例提供的一种计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待测试项目的多个测试用例;
调用各所述测试用例对应的测试函数,从数据库中获取各所述测试用例的测试文件;各所述测试文件中包括各所述测试用例所需的测试数据和测试逻辑;
若获取到所述测试文件,则根据所述测试文件和对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果;
根据各所述测试用例的测试结果生成测试报告。
上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种测试方法,其特征在于,所述方法包括:
获取待测试项目的多个测试用例;
调用各所述测试用例对应的测试函数,从数据库中获取各所述测试用例的测试文件;各所述测试文件中包括各所述测试用例所需的测试数据和测试逻辑;
若获取到所述测试文件,则根据所述测试文件和对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果;
根据各所述测试用例的测试结果生成测试报告。
2.根据权利要求1所述的方法,其特征在于,所述根据所述测试文件和对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果,包括:
读取所述测试文件中的测试数据和测试逻辑;
调用所述对应的测试函数基于所述测试数据和所述测试逻辑对所述测试用例进行测试,得到所述测试用例的测试结果。
3.根据权利要求1或2所述的方法,其特征在于,所述获取待测试项目的多个测试用例之前,所述方法还包括:
展示测试用例的显示界面;所述显示界面中包括多个所述测试用例的选项;
获取用户在所述显示界面上的输入指令;所述输入指令包括被选中的测试用例的标识;
所述获取待测试项目的多个测试用例,包括:
根据所述输入指令将所述被选中的测试用例的标识对应的测试用例确定为所述待测试项目的多个测试用例。
4.根据权利要求1或2所述的方法,其特征在于,所述测试报告包括邮件版本、阅读版本、网页版本中的至少一种版本的测试报告。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
将所述测试结果上报至云端服务器,以使所述云端服务器对预设时间段内接收到的测试结果进行统计分析,得到统计分析结果;
接收所述云端服务器返回的统计分析结果,并在显示界面上展示所述统计分析结果。
6.根据权利要求1所述的方法,其特征在于,所述待测试项目为Openbmc软件开发项目,所述获取待测试项目的多个测试用例,包括:
在Robot框架上获取所述Openbmc软件开发项目的多个测试用例;每个所述测试用例使用Python框架预先构建。
7.根据权利要求6所述的方法,其特征在于,所述获取待测试项目的多个测试用例,包括:
基于Jenkins框架的定时功能,按照预设时间周期获取所述Robot框架上的多个测试用例。
8.一种测试装置,其特征在于,所述装置包括:
获取模块,用于获取待测试项目的所有测试用例;
调用模块,用于调用各所述测试用例对应的测试函数;
测试模块,用于在获取到所述测试文件的情况下,根据所述测试文件和对应的测试函数对所述测试用例进行测试,得到所述测试用例的测试结果;
生成模块,用于根据各所述测试用例的测试结果生成测试报告。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202110468343.0A 2021-04-28 2021-04-28 测试方法、装置、计算机设备和存储介质 Pending CN113190443A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110468343.0A CN113190443A (zh) 2021-04-28 2021-04-28 测试方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110468343.0A CN113190443A (zh) 2021-04-28 2021-04-28 测试方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN113190443A true CN113190443A (zh) 2021-07-30

Family

ID=76980080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110468343.0A Pending CN113190443A (zh) 2021-04-28 2021-04-28 测试方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113190443A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590491A (zh) * 2021-08-06 2021-11-02 深圳市共进电子股份有限公司 一种测试平台和产品测试方法
CN113886257A (zh) * 2021-10-18 2022-01-04 斑马网络技术有限公司 一种多媒体框架测试方法、装置、设备及存储介质
CN114968823A (zh) * 2022-07-27 2022-08-30 国能日新科技股份有限公司 自动化测试方法、装置、设备和存储介质
CN115766541A (zh) * 2022-11-15 2023-03-07 合众新能源汽车有限公司 器件测试方法、装置、计算机设备和存储介质
CN117093497A (zh) * 2023-09-11 2023-11-21 苏州云体科技有限公司 测试报告处理方法、装置、电子设备及存储介质
CN117094302A (zh) * 2023-08-04 2023-11-21 广州赛意信息科技股份有限公司 基于ChatGPT的自动化处理方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630685A (zh) * 2016-01-29 2016-06-01 广州酷狗计算机科技有限公司 程序接口测试方法及装置
WO2019218444A1 (zh) * 2018-05-14 2019-11-21 平安科技(深圳)有限公司 测试报告的生成方法、装置、设备及存储介质
CN112286779A (zh) * 2019-07-23 2021-01-29 腾讯科技(深圳)有限公司 测试任务处理方法、装置、存储介质和计算机设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630685A (zh) * 2016-01-29 2016-06-01 广州酷狗计算机科技有限公司 程序接口测试方法及装置
WO2019218444A1 (zh) * 2018-05-14 2019-11-21 平安科技(深圳)有限公司 测试报告的生成方法、装置、设备及存储介质
CN112286779A (zh) * 2019-07-23 2021-01-29 腾讯科技(深圳)有限公司 测试任务处理方法、装置、存储介质和计算机设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590491A (zh) * 2021-08-06 2021-11-02 深圳市共进电子股份有限公司 一种测试平台和产品测试方法
CN113590491B (zh) * 2021-08-06 2024-03-29 深圳市共进电子股份有限公司 一种测试平台和产品测试方法
CN113886257A (zh) * 2021-10-18 2022-01-04 斑马网络技术有限公司 一种多媒体框架测试方法、装置、设备及存储介质
CN114968823A (zh) * 2022-07-27 2022-08-30 国能日新科技股份有限公司 自动化测试方法、装置、设备和存储介质
CN115766541A (zh) * 2022-11-15 2023-03-07 合众新能源汽车有限公司 器件测试方法、装置、计算机设备和存储介质
CN115766541B (zh) * 2022-11-15 2024-05-07 合众新能源汽车股份有限公司 器件测试方法、装置、计算机设备和存储介质
CN117094302A (zh) * 2023-08-04 2023-11-21 广州赛意信息科技股份有限公司 基于ChatGPT的自动化处理方法、装置及存储介质
CN117093497A (zh) * 2023-09-11 2023-11-21 苏州云体科技有限公司 测试报告处理方法、装置、电子设备及存储介质
CN117093497B (zh) * 2023-09-11 2024-05-07 苏州云体科技有限公司 测试报告处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN113190443A (zh) 测试方法、装置、计算机设备和存储介质
CN110851356B (zh) 一种基于Selenium的Web应用自动化测试框架及其构建方法、***
CN109302522B (zh) 测试方法、装置以及计算机***和介质
CN103365770B (zh) 移动终端软件测试***及软件测试方法
US7673179B2 (en) Online testing unification system with remote test automation technology
EP2778929B1 (en) Test script generation system
CN109977012B (zh) ***的联调测试方法、装置、设备及计算机可读存储介质
CN110764998A (zh) 基于Django框架的数据比对方法、装置、设备及存储介质
CN110569194A (zh) 接口测试方法、装置、电子设备及存储介质
CN113094251B (zh) 嵌入式***测试方法、装置、计算机设备和存储介质
CN111176974B (zh) 容灾测试方法、装置、计算机可读介质及电子设备
US9507692B2 (en) Downward propagation of results for test cases in application testing
CN114915643A (zh) 铁路信号集中监测***的配置方法、装置、设备及介质
CN110737985A (zh) 运行数据验证方法、装置、计算机设备和可读存储介质
CN110633213B (zh) 单元测试方法、装置、计算机设备和存储介质
US8773527B2 (en) System and method for capturing debug information using a peripheral device
CN105653445A (zh) 一种满足do-178c测试结果的实现方法
CN113535560B (zh) 测试执行方法、装置、存储介质和计算设备
CN113849404A (zh) 对接口测试相关信息的管理方法、装置及存储介质
JP2023000907A (ja) ソースコード修正支援装置及びソースコード修正支援方法
CN111159027A (zh) 自动化测试方法、装置、计算机设备和可读存储介质
CN113392002A (zh) 一种测试***构建方法、装置、设备及存储介质
CN112346994A (zh) 一种测试信息关联方法、装置、计算机设备及存储介质
US20230418728A1 (en) Method and system for generating real-time test environment activity view for functional simulations
CN110750452B (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