CN117667680A - 一种用例测试方法、系统、设备以及存储介质 - Google Patents
一种用例测试方法、系统、设备以及存储介质 Download PDFInfo
- Publication number
- CN117667680A CN117667680A CN202311605388.3A CN202311605388A CN117667680A CN 117667680 A CN117667680 A CN 117667680A CN 202311605388 A CN202311605388 A CN 202311605388A CN 117667680 A CN117667680 A CN 117667680A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- case
- testing
- target
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 718
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 83
- 238000012545 processing Methods 0.000 claims abstract description 42
- 230000008569 process Effects 0.000 claims description 37
- 230000006870 function Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 17
- 238000004806 packaging method and process Methods 0.000 claims description 14
- 238000002360 preparation method Methods 0.000 claims description 7
- 238000011161 development Methods 0.000 abstract description 5
- 238000013522 software testing Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000007405 data analysis Methods 0.000 description 8
- XSQUKJJJFZCRTK-NJFSPNSNSA-N UREA C 14 Chemical compound N[14C](N)=O XSQUKJJJFZCRTK-NJFSPNSNSA-N 0.000 description 4
- 230000009471 action Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010998 test method Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009517 secondary packaging Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用例测试方法、系统、设备以及存储介质,涉及软件设计技术领域领域。该方法包括,准备测试数据,测试数据包括多种目标测试用例;对目标测试用例进行数据处理,确定需要使用的测试方式,测试方式包括:关键字驱动和数据驱动;根据测试方式,读取目标测试用例的类型参数;将类型参数输入测试框架进行测试,并输出测试结果。通过本实施例提供的方法,可以随意切换使用关键字驱动、数据驱动模型,该软件测试方法可以大量提高代码复用度,有效减少代码冗余度,从而提升自动化测试用例代码开发效率,让回归测试方便可靠,测试用例覆盖面广泛,减少测试周期,产品可以快速迭代,同时还能保证往期功能的准确性。
Description
技术领域
本申请涉及软件设计技术领域,尤其涉及一种用例测试方法、系统、设备以及存储介质。
背景技术
在互联网产业高速发展的时代,软件产品的开发、测试、交付频率和周期越来越短,由于版本的快速迭代更新,回归测试已成为软件测试中极为重要的环节。
在关键字驱动模型中,测试人员可以使用关键字来描述测试步骤和动作,自动化测试执行时通过读取这些关键字来批处理测试用例,代码的复用性高,虽然可以有效提升测试效率,但很难实现复杂场景下的测试用例。而在数据驱动模型中,测试人员将可以使用数据来驱动测试的执行,自动化测试执行时,只需将规定好数据传递给函数,就可以实现相对复杂的测试场景,不过相同功能的不同场景存在代码冗余的问题。
关键字驱动虽然对工作效率有明显的提高,但是其开发成本大,过度依赖关键字驱动的自动化测试,可能会导致在一些不必要的场景中浪费时间和资源,反而降低了工作效率,且很难兼容一些特殊的异常场景,而数据驱动器恰好弥补了关键字驱动的缺点,可以完成一些场景复杂异常场景用例,但是用例之间存在重复操作,当重复的操作发生改变时,需要逐一进行测试用例代码的修改,两种模型的缺点显著。
发明内容
本发明的目的之一在于提供一种用例测试方法、系统、设备以及存储介质。
为了实现上述目的,本发明采用的技术方案如下:
本发明实施例第一方面提供了一种用例测试方法,所述方法包括:
准备测试数据,所述测试数据包括多种目标测试用例;
对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;
根据所述测试方式,读取所述目标测试用例的类型参数;
将所述类型参数输入测试框架进行测试,并输出测试结果。
可选的,在所述将所述类型参数输入测试框架进行测试之前,所述方法还包括按照以下步骤初始化测试环境:
导入测试所需的辅助函数和数据;
对当前测试框架进行配置,定义初始化环境参数;
将测试过程中需要使用的封装工具加入测试环境中,所述封装工具用于记录测试日志、存储所述测试结果及生成测试报告。
可选的,所述根据所述测试方式,读取所述目标测试用例的类型参数,包括:
在所述测试方式为关键字驱动的情况下,读取所述目标测试用例的list类型参数;
在所述测试方式为数据驱动的情况下,读取所述目标测试用例的dict类型参数;
所述将所述类型参数输入测试框架进行测试,包括:
在所述目标测试用例的类型参数为list类型参数的情况下,进行关键字驱动用例测试;
在所述目标测试用例的类型参数为dict类型参数的情况下,进行数据驱动用例测试。
可选的,在所述进行关键字驱动用例测试之后,所述方法还包括:
在所述关键字驱动用例测试有部分测试出错的情况下,获取出错部分对应的目标测试用例;
对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
可选的,所述对所述目标测试用例进行数据处理,确定需要使用的测试方式,包括:
对所述目标测试用例进行数据处理,将测试方式确定为关键字驱动;
所述根据所述关键字方式,读取所述目标测试用例的类型参数,包括:
根据所述关键字驱动,将所述目标测试用例的类型参数读取为list类型参数;
所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
将所述list类型参数输入所述测试框架进行测试;
在所述测试全部完成的情况下,输出测试结果;
在所述测试部分出错的情况下,获取出错部分对应的目标测试用例;
对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
可选的,所述方法还包括:
在所述测试过程中,获取测试日志数据,所述测试日志数据包括输入数据和输出数据,以及所述测试过程中出现的bug;
所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
将所述类型参数输入测试框架进行测试,并在测试过程中,获取测试日志数据;
根据所述测试日志数据,输出测试结果;
所述方法还包括:
根据所述测试日志数据和所述测试结果生成测试报告。
可选的,所述准备测试数据,包括:
通过用例函数名称从预设文件中读取目标测试用例;
所述目标测试用例中存储至少一条测试数据,所述测试数据预设在目标测试用例中。
本发明实施例第二方面提供了一种用例测试系统,所述系统包括:
第一数据准备模块,用于准备测试数据,所述测试数据包括多种目标测试用例;
第二数据处理模块,用于对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;
第三数据测试模块,用于根据所述测试方式,读取所述目标测试用例的类型参数;
第四结果输出模块,用于将所述类型参数输入测试框架进行测试,并输出测试结果。
可选的,所述系统还包括:
第二数据准备模块,导入测试所需的辅助函数和数据;
第一数据整理模块,对当前测试框架进行配置,定义初始化环境参数;
数据分析模块,将测试过程中需要使用的封装工具加入测试环境中,所述封装工具用于记录测试日志、存储所述测试结果及生成测试报告。
可选的,所述第二数据处理模块,包括:
第一数据读取模块,在所述测试方式为关键字驱动的情况下,读取所述目标测试用例的list类型参数;
第二数据读取模块,在所述测试方式为数据驱动的情况下,读取所述目标测试用例的dict类型参数;
所述将所述类型参数输入测试框架进行测试,包括:
第一数据执行模块,在所述目标测试用例的类型参数为list类型参数的情况下,进行关键字驱动用例测试;
第二数据执行模块,在所述目标测试用例的类型参数为dict类型参数的情况下,进行数据驱动用例测试。
可选的,所述系统还包括:
第一数据获取模块,在所述关键字驱动用例测试有部分测试出错的情况下,获取出错部分对应的目标测试用例;
第二数据整理模块,对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
第二数据获取模块,根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
第三数据整理模块,将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
可选的,所述第二数据处理模块,包括:
第一确定模块,对所述目标测试用例进行数据处理,将测试方式确定为关键字驱动;
所述根据所述关键字方式,读取所述目标测试用例的类型参数,包括:
第一执行模块,根据所述关键字驱动,将所述目标测试用例的类型参数读取为list类型参数;
第二数据分析模块,所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
第二执行模块,将所述list类型参数输入所述测试框架进行测试;
第三数据分析模块,在所述测试全部完成的情况下,输出测试结果;
判断获取模块,在所述测试部分出错的情况下,获取出错部分对应的目标测试用例;
数据转换模块,对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
第三执行模块根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
第三数据整合模块,将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
可选的,所述系统还包括:
第一日志获取模块,在所述测试过程中,获取测试日志数据,所述测试日志数据包括输入数据和输出数据,以及所述测试过程中出现的bug;
第一报告生成模块,所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
第二日志获取模块将所述类型参数输入测试框架进行测试,并在测试过程中,获取测试日志数据;
第二报告生成模块,根据所述测试日志数据,输出测试结果;
第三报告生成模块,根据所述测试日志数据和所述测试结果生成测试报告。
可选的,所述第一数据准备模块,包括:
数据调用模块,通过用例函数名称从预设文件中读取目标测试用例;
所述目标测试用例中存储至少一条测试数据,所述测试数据预设在目标测试用例中。
本发明实施例第三方面提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如本发明实施例第一方面任一项所述的用例测试方法。
本发明实施例第四方面提供了一种可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例第一方面任一项所述的用例测试方法。
通过本发明实施例提供的用例测试方法,准备测试数据,所述测试数据包括多种目标测试用例;对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;根据所述测试方式,读取所述目标测试用例的类型参数;将所述类型参数输入测试框架进行测试,并输出测试结果。通过本实施例提供的方法,可以使关键字驱动与数据驱动之间建立一座桥梁,可以随意切换使用关键字驱动、数据驱动模型,该软件测试方法可以大量提高代码复用度,有效减少代码冗余度,从而提升自动化测试用例代码开发效率,让回归测试方便可靠,测试用例覆盖面广泛,减少测试周期,产品可以快速迭代,同时还能保证往期功能的准确性。
附图说明
图1是本发明一个实施例提供的一种用例测试方法的流程图;
图2是本发明一个实施例提供的一种用例测试方法的流程简图;
图3是本发明一个实施例提供的一种用例测试方法的具体框图;
图4是本发明一个实施例提供的一种用例测试系统框图;
图5是本发明一个实施例提供的一种电子设备的示意图。
具体实施方式
以下将参照附图和优选实施例来说明本发明的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
首先,对本发明实施例的模块组件进行选择:
选用pytest测试框架来控制测试过程中各个阶段的处理,例如初始化测试环境,读取测试环境变量,执行测试用例以及收集测试结果生成测试报告。
基于pytest所配置的服务器节点环境,可选用farbic进行二次封装,来实现在远程服务器上执行各种任务,如部署代码、运行命令、管理配置等。
通过其他第三方包封装相关使用工具,例如时间管理工具,日志管理工具,断言管理工具,数据读取管理工具以及配置文件读取管理工具等,根据实际应用可以拓展相关工具包。
然后,根据分层管理思想针对不同功能规划目录结构:
公用配置目录(common),基于fabric封装与远程服务器上的交互,以及路径管理。
测试用例管理目录(data),用于存放各存储特性自动化测试用例,易于测试用例的维护管理。
功能对象管理目录(function_object),用于管理主线关键字驱动脚本,各存储特性关键字驱动脚本等。
测试用例执行目录(test_case),主线以及各存储特性测试用例执行入口。
日志管理目录(logs),主线以及各存储特性自动化测试日志管理,跟踪步骤,分析bug产生原因。
工具目录(utils),用于常用工具的封装管理。
环境文件,对测试环境进行配置。
参考图1,图1是本发明一个实施例提供的一种用例测试方法的流程图。如图1所示,本实施例提供的一种用例测试方法,包括以下步骤:
步骤S11,准备测试数据,所述测试数据包括多种目标测试用例;
在本实施例中,在接收到远程服务器下发的测试命令时,自动从测试用例管理目录(data)中读取各存储特性自动化测试用例数据。当接收模块接收到远程服务器下发的测试命令时,读取模块会自动从测试用例管理目录(data)中读取与该测试命令对应的存储特性自动化测试用例数据。这些测试数据可能包括针对不同目标对象的测试用例,如性能测试用例、功能测试用例、兼容性测试用例等。
步骤S12,对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;
在本实施例中,对读取的测试数据进行处理。根据测试数据的特性和要求,系统会确定需要使用的测试方式。所述测试方式包括关键字驱动和数据驱动。
所述关键字驱动测试,通过定义一系列的关键字,以及这些关键字在测试用例中的组合和排列,来描述和执行测试。所述关键字驱动测试方式通常用于测试一些具有固定流程或步骤的业务场景。所述数据驱动测试,通过将测试数据和测试步骤分离,将测试数据存储在外部文件中,然后通过读取这些文件来执行测试。所述数据驱动测试方式可以方便地管理和维护大量的测试数据,同时也能提高测试的复用性和可维护性。在处理测试数据时,系统会根据测试数据的特性和要求,以及测试场景的具体情况,来确定需要使用的测试方式。
例如,如果测试数据具有高度的重复性,且测试步骤相对固定,那么可能更适合使用关键字驱动的方式;如果测试数据比较复杂,且需要根据不同的数据组合进行不同的测试,那么可能更适合使用数据驱动的方式。
步骤S13,根据所述测试方式,读取所述目标测试用例的类型参数;
在本实施例中,在确定所述测试方式为关键字驱动测试的情况下,系统会读取关键字以及关键字在测试用例中的组合和排列,来确定测试的类型和流程。在确定所述测试方式数据驱动测试的情况下,系统会读取测试数据中的参数,来确定测试的类型和数据。通过根据确定的测试方式对目标测试用例进行读取,并读取与测试方式对应的参数类型,系统更准确地执行相应的测试。
步骤S14,将所述类型参数输入测试框架进行测试,并输出测试结果。
在本实施例中,系统将读取到的类型参数和测试数据传递pytest测试框架进行测试,在测试完成后,输出最终的测试结果。
结合以上实施例,在本发明另一种实施方式中,在所述将所述类型参数输入测试框架进行测试之前,所述方法还包括按照以下步骤初始化测试环境:
导入测试所需的辅助函数和数据;
对当前测试框架进行配置,定义初始化环境参数;
将测试过程中需要使用的封装工具加入测试环境中,所述封装工具用于记录测试日志、存储所述测试结果及生成测试报告。
在本实施例中,在进行数据测试之前还需要对测试环境进行初始化,通过环境文件对所述测试环境进行初始化,所述初始化测试环境包括:conftest.py(导入测试所需的辅助函数和数据),pytest.ini(定制测试框架的行为),site_config(对当前测试框架进行配置,定义初始化环境参数)。
所述封装工具存放在工具目录(utils)当中,负责在测试过程中记录测试日志、存储测试结果并生成测试报告。系统会将封装工具加入测试环境中,以便在执行测试用例时使用。封装工具会根据测试结果生成测试报告。测试报告是通过对测试结果进行分析和整理后生成的,它包含了测试用例的执行情况、通过率、错误信息等重要信息。测试报告可以方便地查看和分析测试结果,从而为后续的测试和开发提供有价值的参考信息。
结合以上实施例,在本发明另一种实施方式中,所述根据所述测试方式,读取所述目标测试用例的类型参数,包括:
在所述测试方式为关键字驱动的情况下,读取所述目标测试用例的list类型参数;
在所述测试方式为数据驱动的情况下,读取所述目标测试用例的dict类型参数;
所述将所述类型参数输入测试框架进行测试,包括:
在所述目标测试用例的类型参数为list类型参数的情况下,进行关键字驱动用例测试;
在所述目标测试用例的类型参数为dict类型参数的情况下,进行数据驱动用例测试。
在本实施例中,在确定测试方式为数据驱动的情况下,系统会读取目标测试用例的dict类型参数。这些参数通常是一组包含测试数据和测试步骤的字典,用于描述测试用例的数据和流程。系统会将读取到的dict类型参数传递给测试框架,测试框架根据这些参数执行相应的数据驱动用例测试。
具体的,数据驱动用例测试为:
在确定测试方式为关键字驱动的情况下,系统会读取目标测试用例的list类型参数。系统会将读取到的list类型参数传递给测试框架,测试框架根据这些参数执行相应的关键字驱动用例测试。
具体的,关键字驱动为:
通过根据目标测试用例的类型参数选择相应的测试方式,并输入测试框架进行测试,可以实现对目标测试用例的自动化管理和执行,提高了测试的效率和准确性。
结合以上实施例,在本发明另一种实施方式中,在所述进行关键字驱动用例测试之后,所述方法还包括:
在所述关键字驱动用例测试有部分测试出错的情况下,获取出错部分对应的目标测试用例;
对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
在本实施例中,在进行关键字驱动用例测试时,所述关键字驱动用例测试出现错误的情况下,获取出错部分对应的目标测试用例。对出错部分对应的目标测试用例进行数据处理,并将测试方式确定为数据驱动。
在确定测试方式为数据驱动后,将出错部分对应的目标测试用例的类型参数读取为dict类型参数。将读取到的dict类型参数输入测试框架通过数据驱动的方式进行测试,并输出测试结果。这样做的目的是为了方便对出错部分进行更详细和精确的测试,从而提高测试的效率和准确性。
结合以上实施例,在本发明另一种实施方式中,所述对所述目标测试用例进行数据处理,确定需要使用的测试方式,包括:
对所述目标测试用例进行数据处理,将测试方式确定为关键字驱动;
所述根据所述关键字方式,读取所述目标测试用例的类型参数,包括:
根据所述关键字驱动,将所述目标测试用例的类型参数读取为list类型参数;
所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
将所述list类型参数输入所述测试框架进行测试;
在所述测试全部完成的情况下,输出测试结果;
在所述测试部分出错的情况下,获取出错部分对应的目标测试用例;
对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
在本实施例中,对目标测试用例进行数据处理,将其测试方式确定为关键字驱动。根据关键字驱动的方式,读取目标测试用例的类型参数将目标测试用例的类型参数读取为list类型参数。将所述list类型参数输入测试框架进行测试。在测试过程中,测试框架会根据输入的类型参数来执行相应的测试用例。如果测试全部完成并且没有出现任何错误,那么测试结果将会被输出。
在测试过程中,如果发现错误或异常情况,系统会立即停止测试,并记录出错部分对应的目标测试用例。所述出错的目标测试用例将从关键字驱动的方式转换为数据驱动的方式。
在数据驱动的方式下,将目标测试用例的类型参数读取为dict类型参数,将所述dict类型参数输入测试框架进行测试。
与关键字驱动不同,数据驱动的方式将测试过程与数据分离。这表示在执行数据驱动用例测试时,不需要编写特定的关键字来描述测试步骤。相反,所有的测试步骤和数据都包含在dict类型参数中,这使得测试过程更加灵活和可定制。
本实施例提供了一种混合的测试方式,即关键字驱动和数据驱动的结合使用。这种混合的测试方式可以充分发挥两种驱动方式的优点,提高了测试的效率和准确性。同时,对于出错的目标测试用例,通过转换为数据驱动的方式进行处理,可以更好地识别和处理问题,有助于提高整个测试过程的可靠性和稳定性。
结合以上实施例,在本发明另一种实施方式中,所述方法还包括:
在所述测试过程中,获取测试日志数据,所述测试日志数据包括输入数据和输出数据,以及所述测试过程中出现的bug;
所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
将所述类型参数输入测试框架进行测试,并在测试过程中,获取测试日志数据;
根据所述测试日志数据,输出测试结果;
所述方法还包括:
根据所述测试日志数据和所述测试结果生成测试报告。
在本实施例中获取测试日志数据是非常重要的一步。测试日志数据包括了输入数据、输出数据以及测试过程中出现的bug。这些数据对于后续的测试分析和报告生成都至关重要。
在将类型参数输入测试框架进行测试并输出测试结果的过程中,当测试框架执行测试用例时,会记录测试过程中的各种数据,包括传递参数为实际结果、预期结果、断言方式,断言结果,以及任何在测试过程中出现的bug。并且将测试过程当中产生的测试日志信息,存入日志管理目录(logs)。通过分析测试日志数据,可以确定每个测试用例是否通过,以及哪些用例在测试过程中出现了问题。
根据测试日志数据和测试结果生成测试报告。测试报告是一个综合性的文档,它详细描述了测试过程、结果和发现的问题。通过将测试日志数据和结果整合到测试报告中,可以提供全面的测试信息,使相关人员能够更好地理解测试情况并做出相应的决策。
通过获取测试日志数据、根据测试日志数据输出测试结果以及生成测试报告,上述方法提供了一个完整的测试过程,这有助于确保测试的准确性和有效性。
结合以上实施例,在本发明另一种实施方式中,所述准备测试数据,包括:
通过用例函数名称从预设文件中读取目标测试用例;
所述目标测试用例中存储至少一条测试数据,所述测试数据预设在目标测试用例中。
在本实施例中,通过用例函数名称从预设文件中读取目标测试用例。涉及到打开预设文件、搜索对应的用例函数名称,然后读取与该名称对应的测试用例。这个步骤假定预设文件中包含了许多预定义的测试用例,每个用例都以函数名称的方式被唯一标识。
具体地,所述目标测试用例的测试数据按照表一的格式进行存储。
目标测试用例中存储了至少一条测试数据,所述测试数据包括:用例名称、用例函数名称、前置条件、测试数据、断言结果以及备注说明这表示在创建或预设这个测试用例时,已经将所需的测试数据一并存储在其中。
参考图2,图2是本发明一个实施例提供的一种用例测试方法的流程简图。
当测试框架接收到来自远程服务器的测试命令后,它开始准备进行测试。首先,测试框架读取测试数据,并将这些测试用例数据读取为list类型参数和dict类型参数。这些参数用于两种驱动方式:关键字驱动和数据驱动。
对于list类型参数,被用于关键字驱动。在这种驱动方式下,测试框架会根据list类型参数的指示,执行一系列与测试用例相关的关键字操作。这些关键字操作通常涉及到测试步骤、测试数据和预期结果的描述。通过使用关键字驱动,测试框架能够按照预设的流程执行测试用例。
同时,dict类型参数被用于数据驱动。在这种驱动方式下,测试框架会根据dict类型参数中包含的数据和指示来执行测试用例。与关键字驱动不同,数据驱动将测试过程与数据分离,这意味着不需要编写特定的关键字来描述测试步骤。相反,所有的测试步骤和数据都包含在dict类型参数中,使得测试过程更加灵活和可定制。
在读取测试用例参数后,测试框架会对测试环境进行初始化,确保测试所需的资源和设置都已准备就绪。接着,根据读取得到的测试用例参数,测试框架会执行相应的测试。
在测试过程中,测试框架会记录并输出打印日志,这些日志包括输入数据、输出数据以及在测试过程中出现的bug。完成测试后,测试框架会输出测试结果,并生成相应的测试报告。测试报告是一个综合性的文档,它详细描述了测试过程、结果和发现的问题。
参考图3,图3是本发明一个实施例提供的一种用例测试方法的具体框图。
在测试开始之前,需要准备测试用例。所述目标测试用例需要经过数据处理,以确定需要使用的测试方式。
所述测试方式包括两种:关键字驱动和数据驱动。在关键字驱动方式中,确定数据类型参数为list。这些关键字描述了测试步骤和预期结果。而在数据驱动方式中,定数据类型参数为dict。数据集包含了所有需要用到的输入数据和对应的预期结果。
根据所选择的测试方式,需要读取目标测试用例的类型参数。对于关键字驱动,类型参数可能是一个包含关键字序列的列表或元组;对于数据驱动,类型参数可能是一个包含数据集的列表或字典。类型参数通过测试功能传输到功能对象中,并且所述功能对象当中存在从所述公共类封装工具信息,便于功能对象在进行测试时能通过工具信息直接调用封装工具,根据所述类型参数对应的功能对象选着对应驱动方式,用于执行相应的测试用例。
基于同一发明构思,本发明一实施例提供了一种用例测试系统,参考图4,图4是本发明一个实施例提供的一种用例测试系统框图,所述系统包括:
第一数据准备模块401,用于准备测试数据,所述测试数据包括多种目标测试用例;
第二数据处理模块402,用于对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;
第三数据测试模块403,用于根据所述测试方式,读取所述目标测试用例的类型参数;
第四结果输出模块404,用于将所述类型参数输入测试框架进行测试,并输出测试结果。
可选的,所述系统还包括:
第二数据准备模块,导入测试所需的辅助函数和数据;
第一数据整理模块,对当前测试框架进行配置,定义初始化环境参数;
数据分析模块,将测试过程中需要使用的封装工具加入测试环境中,所述封装工具用于记录测试日志、存储所述测试结果及生成测试报告。
可选的,所述第二数据处理模块402,包括:
第一数据读取模块,在所述测试方式为关键字驱动的情况下,读取所述目标测试用例的list类型参数;
第二数据读取模块,在所述测试方式为数据驱动的情况下,读取所述目标测试用例的dict类型参数;
所述将所述类型参数输入测试框架进行测试,包括:
第一数据执行模块,在所述目标测试用例的类型参数为list类型参数的情况下,进行关键字驱动用例测试;
第二数据执行模块,在所述目标测试用例的类型参数为dict类型参数的情况下,进行数据驱动用例测试。
可选的,所述系统还包括:
第一数据获取模块,在所述关键字驱动用例测试有部分测试出错的情况下,获取出错部分对应的目标测试用例;
第二数据整理模块,对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
第二数据获取模块,根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
第三数据整理模块,将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
可选的,所述第二数据处理模块402,包括:
第一确定模块,对所述目标测试用例进行数据处理,将测试方式确定为关键字驱动;
所述根据所述关键字方式,读取所述目标测试用例的类型参数,包括:
第一执行模块,根据所述关键字驱动,将所述目标测试用例的类型参数读取为list类型参数;
第二数据分析模块,所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
第二执行模块,将所述list类型参数输入所述测试框架进行测试;
第三数据分析模块,在所述测试全部完成的情况下,输出测试结果;
判断获取模块,在所述测试部分出错的情况下,获取出错部分对应的目标测试用例;
数据转换模块,对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
第三执行模块根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
第三数据整合模块,将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
可选的,所述系统还包括:
第一日志获取模块,在所述测试过程中,获取测试日志数据,所述测试日志数据包括输入数据和输出数据,以及所述测试过程中出现的bug;
第一报告生成模块,所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
第二日志获取模块将所述类型参数输入测试框架进行测试,并在测试过程中,获取测试日志数据;
第二报告生成模块,根据所述测试日志数据,输出测试结果;
第三报告生成模块,根据所述测试日志数据和所述测试结果生成测试报告。
可选的,所述第一数据准备模块401,包括:
数据调用模块,通过用例函数名称从预设文件中读取目标测试用例;
所述目标测试用例中存储至少一条测试数据,所述测试数据预设在目标测试用例中。
基于同一发明构思,本发明另一实施例提供一种电子设备500,如图5所示。图5是本发明一个实施例提供的一种电子设备的示意图。该电子设备包括存储器502、处理器501及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如本发明上述任一实施例所述的用例测试方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的用例测试方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语″包括″、″包含″或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句″包括一个......″限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种用例测试方法、系统、设备以及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。以上实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。
Claims (10)
1.一种用例测试方法,其特征在于,所述方法包括:
准备测试数据,所述测试数据包括多种目标测试用例;
对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;
根据所述测试方式,读取所述目标测试用例的类型参数;
将所述类型参数输入测试框架进行测试,并输出测试结果。
2.根据权利要求1所述的方法,其特征在于,在所述将所述类型参数输入测试框架进行测试之前,所述方法还包括按照以下步骤初始化测试环境:
导入测试所需的辅助函数和数据;
对当前测试框架进行配置,定义初始化环境参数;
将测试过程中需要使用的封装工具加入测试环境中,所述封装工具用于记录测试日志、存储所述测试结果及生成测试报告。
3.根据权利要求1所述的方法,其特征在于,所述根据所述测试方式,读取所述目标测试用例的类型参数,包括:
在所述测试方式为关键字驱动的情况下,读取所述目标测试用例的list类型参数;
在所述测试方式为数据驱动的情况下,读取所述目标测试用例的dict类型参数;
所述将所述类型参数输入测试框架进行测试,包括:
在所述目标测试用例的类型参数为list类型参数的情况下,进行关键字驱动用例测试;
在所述目标测试用例的类型参数为dict类型参数的情况下,进行数据驱动用例测试。
4.根据权利要求3所述的方法,其特征在于,在所述进行关键字驱动用例测试之后,所述方法还包括:
在所述关键字驱动用例测试有部分测试出错的情况下,获取出错部分对应的目标测试用例;
对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
5.根据权利要求1所述的方法,其特征在于,所述对所述目标测试用例进行数据处理,确定需要使用的测试方式,包括:
对所述目标测试用例进行数据处理,将测试方式确定为关键字驱动;
所述根据所述关键字方式,读取所述目标测试用例的类型参数,包括:
根据所述关键字驱动,将所述目标测试用例的类型参数读取为list类型参数;
所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
将所述list类型参数输入所述测试框架进行测试;
在所述测试全部完成的情况下,输出测试结果;
在所述测试部分出错的情况下,获取出错部分对应的目标测试用例;
对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述测试过程中,获取测试日志数据,所述测试日志数据包括输入数据和输出数据,以及所述测试过程中出现的bug;
所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
将所述类型参数输入测试框架进行测试,并在测试过程中,获取测试日志数据;
根据所述测试日志数据,输出测试结果;
所述方法还包括:
根据所述测试日志数据和所述测试结果生成测试报告。
7.根据权利要求1所述的方法,其特征在于,所述准备测试数据,包括:
通过用例函数名称从预设文件中读取目标测试用例;
所述目标测试用例中存储至少一条测试数据,所述测试数据预设在目标测试用例中。
8.一种用例测试系统,其特征在于,所述系统包括:
第一数据准备模块,用于准备测试数据,所述测试数据包括多种目标测试用例;
第二数据处理模块,用于对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;
第三数据测试模块,用于根据所述测试方式,读取所述目标测试用例的类型参数;
第四结果输出模块,用于将所述类型参数输入测试框架进行测试,并输出测试结果。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至7任一所述的用例测试方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一所述的用例测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311605388.3A CN117667680A (zh) | 2023-11-28 | 2023-11-28 | 一种用例测试方法、系统、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311605388.3A CN117667680A (zh) | 2023-11-28 | 2023-11-28 | 一种用例测试方法、系统、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667680A true CN117667680A (zh) | 2024-03-08 |
Family
ID=90085684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311605388.3A Pending CN117667680A (zh) | 2023-11-28 | 2023-11-28 | 一种用例测试方法、系统、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667680A (zh) |
-
2023
- 2023-11-28 CN CN202311605388.3A patent/CN117667680A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107908541B (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
US8924933B2 (en) | Method and system for automated testing of computer applications | |
CN108073400A (zh) | 软件自动化构建方法、服务器及存储介质 | |
CN106446412B (zh) | 一种航空电子系统基于模型的测试方法 | |
CN109344053B (zh) | 接口覆盖测试方法、系统、计算机设备和存储介质 | |
US20170228220A1 (en) | Self-healing automated script-testing tool | |
CN105760296B (zh) | 自动化测试控制方法、装置及终端 | |
CN111949520A (zh) | 接口自动测试方法及设备 | |
CN108874649B (zh) | 自动化测试脚本的生成方法、装置及其计算机设备 | |
CN111158656B (zh) | 基于因果树法的测试代码生成方法及装置 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
US20190243750A1 (en) | Test reuse exchange and automation system and method | |
CN115080398A (zh) | 一种接口自动化测试系统及方法 | |
CN112527676A (zh) | 模型自动化测试方法、装置及存储介质 | |
CN114996127A (zh) | 固态硬盘固件模块智能化测试方法及系统 | |
CN117370203B (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN114138633A (zh) | 基于数据驱动的软件测试的方法、装置、设备及可读介质 | |
CN110147313B (zh) | 一种日志输出方法及装置 | |
CN111143228A (zh) | 基于决策表法的测试代码生成方法及装置 | |
CN117667680A (zh) | 一种用例测试方法、系统、设备以及存储介质 | |
CN112256554B (zh) | 一种基于场景测试用例进行测试的方法及设备 | |
CN113672509A (zh) | 自动化测试方法、装置、测试平台及存储介质 | |
CN114385493A (zh) | 一种性能测试方法、装置、电子设备及存储介质 | |
CN113986263A (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 |