CN113900926A - 一种测试用例的批量测试方法、系统及介质 - Google Patents
一种测试用例的批量测试方法、系统及介质 Download PDFInfo
- Publication number
- CN113900926A CN113900926A CN202111047794.3A CN202111047794A CN113900926A CN 113900926 A CN113900926 A CN 113900926A CN 202111047794 A CN202111047794 A CN 202111047794A CN 113900926 A CN113900926 A CN 113900926A
- Authority
- CN
- China
- Prior art keywords
- queue
- test
- function
- case
- expected value
- 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 373
- 238000010998 test method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000002159 abnormal effect Effects 0.000 claims abstract description 24
- 238000010276 construction Methods 0.000 claims abstract description 11
- 230000008676 import Effects 0.000 claims description 44
- 238000012216 screening Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 12
- 238000011161 development Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 107
- 230000007547 defect Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test 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
技术领域
本发明涉及函数开发测试技术领域,特别是涉及一种测试用例的批量测试方法、系统及介质。
背景技术
在开发过程中,若干JavaScript函数的正确性验证需要人工进行若干JavaScript用例的逐个运行并记录相应的运行结果;对应的,该测试过程中还需引入三方测试框架,导致其测试具有局限性且测试的效率较低,耗时较久。
发明内容
本发明主要解决的是现有的JavaScript函数正确性测试方法的测试效率较低且测试方法局限性较高的问题。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种测试用例的批量测试方法,包括以下步骤:
队列配置步骤:
配置定义函数和队列规格匹配集;设置第一队列类型和第二队列类型;获取测试需求;基于所述定义函数、所述队列规格匹配集、所述第一队列类型、所述第二队列类型和所述测试需求创建用例存储队列和期望值存储队列;
数据导入步骤:
配置构造函数、用例添加函数和期望值添加函数;设置第一参数类型和第二参数类型;基于所述用例存储队列、所述期望值存储队列、所述构造函数、所述用例添加函数、所述期望值添加函数、所述第一参数类型和所述第二参数类型执行数据导入操作,得到待测试队列和待比对队列;
用例测试步骤:
配置执行函数、异常捕捉函数和报告模板;设置数量阈值;基于所述待测试队列、所述待比对队列、所述执行函数、所述异常捕捉函数、所述报告模板和所述数量阈值执行用例批量测试操作,得到测试报告。
作为一种改进的方案,所述基于所述定义函数、所述队列规格匹配集、所述第一队列类型、所述第二队列类型和所述测试需求创建用例存储队列和期望值存储队列的步骤进一步包括:
识别所述测试需求中的测试用例数量;在所述队列规格匹配集中筛选出与所述测试用例数量均匹配的第一队列规格和第二队列规格;创建与所述第一队列规格和所述第二队列规格分别匹配的第一存放队列和第二存放队列;
调用所述定义函数将所述第一存放队列的队列类型和所述第二存放队列的队列类型分别设置为所述第一队列类型和所述第二队列类型,得到所述用例存储队列和所述期望值存储队列。
作为一种改进的方案,所述数据导入操作包括:
参数获取步骤:获取用例参数,基于所述用例参数执行第一导入步骤;
所述第一导入步骤包括:
获取与所述用例参数相匹配的期望值参数;基于所述定义函数、所述用例参数和所述期望值参数获取第一待导入参数和第二待导入参数;基于所述构造函数和所述第一待导入参数获取第一测试用例;
基于所述用例存储队列、所述用例添加函数和所述第一测试用例获取匹配值;基于所述期望值添加函数、所述第二待导入参数和所述匹配值执行第二导入步骤。
作为一种改进的方案,所述第一导入步骤进一步包括:
调用所述定义函数将所述用例参数和所述期望值参数分别转换为与所述第一参数类型相匹配的所述第一待导入参数和与所述第二参数类型相匹配的所述第二待导入参数;将所述第一待导入参数传入所述构造函数,得到所述第一测试用例;
调用所述用例添加函数将所述第一测试用例添加至所述用例存储队列;识别所述第一测试用例在所述用例存储队列中的索引信息;设置所述索引信息为所述第二待导入参数的所述匹配值。
作为一种改进的方案,所述第二导入步骤包括:
将所述匹配值与所述第二待导入参数进行整合,得到基准期望值;调用所述期望值添加函数将所述基准期望值添加至所述期望值存储队列;
将所述基准期望值添加至所述期望值存储队列后,检测所述用例参数的键入情况;当所述键入情况为存在用例参数键入时,回到所述参数获取步骤;当所述键入情况为不存在用例参数键入时,设定所述用例存储队列和所述期望值存储队列分别为所述待测试队列和所述待比对队列。
作为一种改进的方案,所述用例批量测试操作包括:
检测所述待测试队列中所述第一测试用例的第一数量;比对所述第一数量与所述数量阈值;若所述第一数量不小于所述数量阈值,则判断所述待测试队列中存在若干所述第一测试用例;若所述第一数量小于所述数量阈值,则判断所述待测试队里中存在单一所述第一测试用例;
当所述待测试队列中存在若干所述第一测试用例时,调用所述执行函数和所述异常捕捉函数基于所述待比对队列对若干所述第一测试用例分别执行第一测试步骤,得到若干第一测试结果;将若干所述第一测试结果分别填充至所述报告模板中,得到所述测试报告;
当所述待测试队列中存在单一所述第一测试用例时,调用所述执行函数和所述异常捕捉函数基于所述待比对队列对所述第一测试用例执行所述第一测试步骤,得到第二测试结果;将所述第二测试结果填充至所述报告模板中,得到所述测试报告。
作为一种改进的方案,所述第一测试步骤包括:
调用所述执行函数执行所述第一测试用例,并记录第一时间点;检测所述执行函数是否输出与所述第一测试用例相匹配的第一测试值;
若输出,则记录第二时间点,并设定该第一测试用例为已测试用例;在所述待比对队列中筛选出具有与所述已测试用例相匹配的所述匹配值的所述基准期望值,并设定该基准期望值为第一期望值;
基于所述异常捕捉函数、所述第一时间点、所述第一测试值、所述第二时间点、所述已测试用例和所述第一期望值执行第二测试步骤。
作为一种改进的方案,所述第二测试步骤包括:
比对所述第一测试值是否与所述第一期望值相匹配;
若匹配,则生成成功信息,并计算所述第二时间点和所述第一时间点的差值,得到执行时长;将所述已测试用例所对应的所述第一待导入参数、所述第一测试值、所述第一期望值、所述成功信息和所述执行时长整合为所述第一测试结果或所述第二测试结果;所述成功信息包括:该用例通过测试;
若非匹配,则调用所述异常捕捉函数生成错误信息,并调用所述异常捕捉函数判断所述第一测试值中与所述第一期望值非匹配的位数信息;基于所述第二时间点和所述第一时间点获取所述执行时长;将所述已测试用例所对应的所述第一待导入参数、所述第一测试值、所述第一期望值、所述错误信息、所述位数信息和所述执行时长整合为所述第一测试结果或所述第二测试结果;所述错误信息包括:该用例未通过测试。
本发明还提供一种测试用例的批量测试系统,包括:
队列配置模块、数据导入模块和用例测试模块;
所述队列配置模块中配置有第一程序,所述第一程序用于配置定义函数和队列规格匹配集,并设置第一队列类型和第二队列类型;所述队列配置模块用于获取测试需求,并基于所述定义函数、所述队列规格匹配集、所述第一队列类型、所述第二队列类型和所述测试需求创建用例存储队列和期望值存储队列;
所述数据导入模块中配置有第二程序,所述第二程序用于配置构造函数、用例添加函数和期望值添加函数,并设置第一参数类型和第二参数类型;所述数据导入模块用于根据所述用例存储队列、所述期望值存储队列、所述构造函数、所述用例添加函数、所述期望值添加函数、所述第一参数类型和所述第二参数类型执行数据导入操作,得到待测试队列和待比对队列;
所述用例测试模块中配置有第三程序,所述第三程序用于配置执行函数、异常捕捉函数和报告模板,并设置数量阈值;所述用例测试模块用于根据所述待测试队列、所述待比对队列、所述执行函数、所述异常捕捉函数、所述报告模板和所述数量阈值执行用例批量测试操作,得到测试报告。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述测试用例的批量测试方法的步骤。
本发明的有益效果是:
1、本发明所述的测试用例的批量测试方法,可以实现大批量的对测试用例进行测试,且在任一用例出错时,不会中断相关的测试进程,并在最终输出完整的所有测试用例的测试结果,极大的提高了测试代码开发的效率,弥补了现有技术的不足,具有极高的市场影响力。
2、本发明所述的测试用例的批量测试系统,可以通过队列配置模块、数据导入模块和用例测试模块的相互配合,进而实现大批量的对测试用例进行测试,且在任一用例出错时,不会中断相关的测试进程,并在最终输出完整的所有测试用例的测试结果,极大的提高了测试代码开发的效率,弥补了现有技术的不足,具有极高的市场影响力。
3、本发明所述的计算机可读存储介质,可以实现引导队列配置模块、数据导入模块和用例测试模块进行配合,进而实现实现大批量的对测试用例进行测试,且在任一用例出错时,不会中断相关的测试进程,并在最终输出完整的所有测试用例的测试结果,极大的提高了测试代码开发的效率,弥补了现有技术的不足,具有极高的市场影响力,并有效提高所述测试用例的批量测试方法的可操作性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1所述测试用例的批量测试方法的流程图;
图2是本发明实施例1所述测试用例的批量测试方法的具体流程示意图;
图3是本发明实施例2所述测试用例的批量测试系统的架构图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
在本发明的描述中,需要说明的是,本发明所描述的实施例是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“定义函数”、“队列规格匹配集”、“队列类型”、“测试需求”、“用例存储队列”、“期望值存储队列”、“构造函数”、“用例添加函数”、“期望值添加函数”、“参数类型”、“数据导入操作”、“待测试队列”、“待比对队列”、“执行函数”、“异常捕捉函数”、“报告模板”、“数量阈值”、“用例批量测试操作”、“测试报告”、“测试用例数量”、“队列规格”、“存放队列”、“用例参数”、“导入步骤”、“期望值参数”、“待导入参数”、“匹配值”、“索引信息”、“基准期望值”、“键入情况”、“参数获取步骤”、“测试步骤”、“时间点”、“测试值”、“已测试用例”、“第二测试步骤”、“成功信息”、“执行时长”、“错误信息”、“位数信息”、“队列配置模块”、“数据导入模块”、“用例测试模块”应做广义理解。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是:JavaScript是即时编译型编程语言;Array是数组类型;Object是对象类型的基类型。
实施例1
本实施例提供一种测试用例的批量测试方法,如图1和图2所示,包括以下步骤:
S100、队列配置步骤:
步骤S100具体包括:
S101、配置定义函数和队列规格匹配集;设置第一队列类型和第二队列类型;获取测试需求;基于所述定义函数、所述队列规格匹配集、所述第一队列类型、所述第二队列类型和所述测试需求创建用例存储队列和期望值存储队列;在本实施例中,本方法通过JavaScript编译实现,不需要引入第三方测试框架,及其的方便;对应的,定义函数即为JavaScript中的声明语句;队列规格匹配集为预设有队列规格与测试用例数量相匹配的若干映射关系的数据集;第一队列类型为Array类型,第二队列类型为Object类型;具体的,识别所述测试需求中的测试用例数量;在所述队列规格匹配集中筛选出与所述测试用例数量均匹配的第一队列规格和第二队列规格;创建与所述第一队列规格和所述第二队列规格分别匹配的第一存放队列和第二存放队列;此步骤为了确保创建的存储队列可以完全满足测试需求,对应的,在本实施例中,第一存放队列的规格和第二存放队列的规格分别不小于第一队列规格和第二队列规格;调用所述定义函数将所述第一存放队列的队列类型和所述第二存放队列的队列类型分别设置为所述第一队列类型和所述第二队列类型,得到所述用例存储队列和所述期望值存储队列;在本实施例中,用例存储队列为实现代码中的caseList,期望值存储队列为实现代码中的expectMap;设置完队列类型后,对应的存储队列即为程序中的可用属性,进而实现用例存储队列和期望值存储队列的创建;通过此步骤,首先搭建好批量用例测试前的基准,进一步提高测试的效率。
步骤S100的部分实现代码如下:
class Tester {
constructor(fn) {
this.fn = fn;
this.caseList = [];
this.expectMap = {};
}
S200、数据导入步骤:
步骤S200具体包括:
S201、配置构造函数、用例添加函数和期望值添加函数;设置第一参数类型和第二参数类型;基于所述用例存储队列、所述期望值存储队列、所述构造函数、所述用例添加函数、所述期望值添加函数、所述第一参数类型和所述第二参数类型执行数据导入操作,得到待测试队列和待比对队列;在本实施例中,构造函数为实现代码中的Tester;用例添加函数和期望值添加函数分别基于addCase的实例方法和answer方法进行实现;第一参数类型为Function类型;第二参数类型同样为Function类型;定义参数类型的目的在于数据可以在程序中被稳定和正确的调用;
具体的,所述数据导入操作包括:参数获取步骤:获取用例参数,基于所述用例参数执行第一导入步骤;
具体的,所述第一导入步骤包括:调用所述定义函数将所述用例参数和所述期望值参数分别转换为与所述第一参数类型相匹配的所述第一待导入参数和与所述第二参数类型相匹配的所述第二待导入参数;将所述第一待导入参数传入所述构造函数,得到所述第一测试用例;对应的,在本实施例中,通过new操作符将所述第一待导入参数fn传入对应的构造函数,进而生成所述第一测试用例;调用所述用例添加函数将所述第一测试用例添加至所述用例存储队列,即通过addCase实例方法将所述第一测试用例存入所述caseList;识别所述第一测试用例在所述用例存储队列中的索引信息;设置所述索引信息为所述第二待导入参数的所述匹配值;在本实施例中,索引信息包括但不限于第一测试用例对于所述用例存储队列的调用信息或索引基于所述期望值添加函数、所述第二待导入参数和所述匹配值执行第二导入步骤;对应的,第二导入步骤主要为期望值导入的步骤;第一导入步骤主要为测试用例的导入步骤;
具体的,所述第二导入步骤包括:将所述匹配值与所述第二待导入参数进行整合,得到基准期望值;调用所述期望值添加函数将所述基准期望值添加至所述期望值存储队列;对应的,上述addCase实例方法每添加一个测试用例,即返回一个拥有answer方法的对象,该拥有answer方法的对象将上述获得的匹配值作为第二待导入参数所对应的测试用例的key,并将其标记整合之后,添加至期望值存储队列;在本实施例的实现代码中,第二待导入参数为res,故上述步骤为将res存入expectMap;将所述基准期望值添加至所述期望值存储队列后,检测所述用例参数的键入情况;键入情况即为操作者键入用例参数的情况;对应的,当所述键入情况为存在用例参数键入时,说明还有需要测试的用例需要添加,故回到所述参数获取步骤,继续获取测试用例参数并继续执行第一导入步骤和第二导入步骤;当所述键入情况为不存在用例参数键入时,说明需要进行测试的用例已添加完毕,故设定所述用例存储队列和所述期望值存储队列分别为所述待测试队列和所述待比对队列,并准备执行对应的测试步骤;通过上述步骤,利用步骤S100中得到的队列存储需要进行测试的测试用例和该测试用例对应的期望值;期望值为预先设置的测试用例的预期测试结果值;通过该预期测试结果值和后续的批量用例测试操作就可以准确的知晓若干测试用例分别对应的测试结果,便利性极强。
步骤S200的部分实现代码如下:
addCase(...params) {
const ctx = this;
this.caseList.push(params);
return {
answer(res) {
let i = ctx.caseList.length - 1;
ctx.expectMap[i] = res;
}
}
}
S300、用例测试步骤:
步骤S300具体包括:
S301、配置执行函数、异常捕捉函数和报告模板;设置数量阈值;基于所述待测试队列、所述待比对队列、所述执行函数、所述异常捕捉函数、所述报告模板和所述数量阈值执行用例批量测试操作,得到测试报告;对应的,在本实施例中,执行函数基于execute的实例方法实现;异常捕获函数基于try catch语句实现;对应的,报告模板中设有待导入参数、测试值、期望值、错误信息/成功信息、位数信息和测试执行时长的若干填充位;对应的,数量阈值在本实施例中设置为2;
具体的,所述用例批量测试操作包括:检测所述待测试队列中所述第一测试用例的第一数量;比对所述第一数量与所述数量阈值;若所述第一数量不小于所述数量阈值,则说明待测试队列中的测试用例至少为两个,故判断所述待测试队列中存在若干所述第一测试用例;若所述第一数量小于所述数量阈值,则说明待测试队列中的测试用例至多为一个,故判断所述待测试队里中存在单一所述第一测试用例;
对应的,本实施例侧重于对测试用例进行批量测试,但同时也可以对单独的测试用例进行测试,对应的,当所述待测试队列中存在若干所述第一测试用例时,调用所述执行函数和异常捕捉函数基于所述待比对队列对若干所述第一测试用例分别执行第一测试步骤,得到若干第一测试结果;将若干所述第一测试结果分别填充至所述报告模板中,得到所述测试报告;对应的,采用异常捕捉函数可以在用例执行过程中发生错误的情况下,捕捉错误信息但不妨碍下一用例的执行,及其的智能化,且弥补了现有技术的不足;对应的,当所述待测试队列中存在单一所述第一测试用例时,同样调用所述执行函数和异常捕捉函数基于所述待比对队列对所述第一测试用例执行所述第一测试步骤,得到第二测试结果;将所述第二测试结果填充至所述报告模板中,得到所述测试报告;
具体的,所述第一测试步骤包括:调用所述执行函数执行所述第一测试用例,并记录第一时间点,第一时间点为执行函数开始执行所述第一测试用例的当前时间点;检测所述执行函数是否输出与所述第一测试用例相匹配的第一测试值;若输出,则说明该用例执行完毕,则记录第二时间点,第二时间点为所述第一测试用例执行完毕的当前时间点;对应的,便于区分,故设定该第一测试用例为已测试用例;在所述待比对队列中筛选出具有与所述已测试用例相匹配的所述匹配值的所述基准期望值,并设定该基准期望值为第一期望值;基于所述第一时间点、所述第一测试值、所述第二时间点、所述已测试用例和所述第一期望值执行第二测试步骤;
具体的,所述第二测试步骤包括:比对所述第一测试值是否与所述第一期望值相匹配;若匹配,则生成成功信息,在本实施例中所述成功信息包括但不限于:该用例通过测试;通过计算所述第二时间点和所述第一时间点的差值,得到执行时长,该执行时长即为用例测试的总时长;对应的,将所述已测试用例所对应的所述第一待导入参数、所述第一测试值、所述第一期望值、所述成功信息和所述执行时长整合为所述第一测试结果或所述第二测试结果;
若非匹配,则调用异常捕捉函数生成错误信息,并判断所述第一测试值中与所述第一期望值非匹配的位数信息;对应的,若出现错误,则可能出现相应的期望值与测试值位数不匹配的情况,在本实施例中,仅作为一种实施方式,将该位数信息进行记录;而位数信息包括但不限于测试值中与期望值未匹配的所在字符串位的位数;例如:121与120的位数信息是第三位不匹配;同时,还需要基于所述第二时间点和所述第一时间点获取所述执行时长;将所述已测试用例所对应的所述第一待导入参数、所述第一测试值、所述第一期望值、所述错误信息、所述位数信息和所述执行时长整合为所述第一测试结果或所述第二测试结果;在本实施例中,所述错误信息包括但不限于:该用例未通过测试;对应的,可以想到的是,可以通过以上的第一测试结果或第二测试结果所得出的测试报告分析出整个用例的测试过程中究竟是哪部分出现了问题或错误,进而导致的测试未通过;结果及其的准确,进一步提升了本方法的便利性。
步骤S300的部分实现代码如下:
execute() {
const ctx = this;
const { fn, caseList } = ctx;
const result = caseList.map((item, index) => {
let r, error, time;
let t = new Date().getTime();
try{
r = fn.apply(null, item)
} catch(e) {
error = e
}
time = new Date().getTime() - t;
return {
params: item.toString(),
passed: r === ctx.expectMap[index],
result: r,
expected: ctx.expectMap[index],
time,
error
}
})
console.table(result, ['params', 'passed', 'result', 'expected', 'time', 'error']);
}
}
通过本实施例所描述的测试用例的批量测试方法,可以对批量用例进行一次性导入并一次性测试,极大的缩短了测试时间,提高了测试效率,且测试的同时若出现用例错误,还可以捕捉相应的错误信息,不会影响其他用例的测试过程,及其的方便,智能性极高,一定程度上提升了开发人员的开发效率,弥补了现有技术的不足。
实施例2
本实施例提供一种测试用例的批量测试系统,如图3所示,包括:队列配置模块、数据导入模块和用例测试模块;
所述测试用例的批量测试系统中,队列配置模块中配置有第一程序,所述第一程序用于配置定义函数和队列规格匹配集,并设置第一队列类型和第二队列类型;所述队列配置模块用于获取测试需求,并基于所述定义函数、所述队列规格匹配集、所述第一队列类型、所述第二队列类型和所述测试需求创建用例存储队列和期望值存储队列;
具体的,队列配置模块识别所述测试需求中的测试用例数量,并在所述队列规格匹配集中筛选出与所述测试用例数量均匹配的第一队列规格和第二队列规格;队列配置模块创建与所述第一队列规格和所述第二队列规格分别匹配的第一存放队列和第二存放队列;队列配置模块调用所述定义函数将所述第一存放队列的队列类型和所述第二存放队列的队列类型分别设置为所述第一队列类型和所述第二队列类型,得到所述用例存储队列和所述期望值存储队列;
所述测试用例的批量测试系统中,数据导入模块中配置有第二程序,所述第二程序用于配置构造函数、用例添加函数和期望值添加函数,并设置第一参数类型和第二参数类型;所述数据导入模块用于根据所述用例存储队列、所述期望值存储队列、所述构造函数、所述用例添加函数、所述期望值添加函数、所述第一参数类型和所述第二参数类型执行数据导入操作,得到待测试队列和待比对队列;
具体的,所述数据导入操作包括:参数获取步骤:数据导入模块获取用例参数,并基于所述用例参数执行第一导入步骤;具体的,所述第一导入步骤包括:数据导入模块调用所述定义函数将所述用例参数和所述期望值参数分别转换为与所述第一参数类型相匹配的所述第一待导入参数和与所述第二参数类型相匹配的所述第二待导入参数;数据导入模块将所述第一待导入参数传入所述构造函数,得到所述第一测试用例;数据导入模块调用所述用例添加函数将所述第一测试用例添加至所述用例存储队列,并识别所述第一测试用例在所述用例存储队列中的索引信息;数据导入模块设置所述索引信息为所述第二待导入参数的所述匹配值,并基于所述期望值添加函数、所述第二待导入参数和所述匹配值执行第二导入步骤;
具体的,所述第二导入步骤包括:数据导入模块将所述匹配值与所述第二待导入参数进行整合,得到基准期望值;数据导入模块调用所述期望值添加函数将所述基准期望值添加至所述期望值存储队列;数据导入模块将所述基准期望值添加至所述期望值存储队列后,检测所述用例参数的键入情况;当所述键入情况为存在用例参数键入时,数据导入模块回到所述参数获取步骤;当所述键入情况为不存在用例参数键入时,数据导入模块设定所述用例存储队列和所述期望值存储队列分别为所述待测试队列和所述待比对队列。
所述测试用例的批量测试系统中,用例测试模块中配置有第三程序,所述第三程序用于配置执行函数、异常捕捉函数和报告模板,并设置数量阈值;所述用例测试模块用于根据所述待测试队列、所述待比对队列、所述执行函数、所述异常捕捉函数、所述报告模板和所述数量阈值执行用例批量测试操作,得到测试报告;
具体的,所述用例批量测试操作包括:
用例测试模块检测所述待测试队列中所述第一测试用例的第一数量,并比对所述第一数量与所述数量阈值;若所述第一数量不小于所述数量阈值,则用例测试模块判断所述待测试队列中存在若干所述第一测试用例;若所述第一数量小于所述数量阈值,则用例测试模块判断所述待测试队里中存在单一所述第一测试用例;当所述待测试队列中存在若干所述第一测试用例时,用例测试模块调用所述执行函数和所述异常捕捉函数基于所述待比对队列对若干所述第一测试用例分别执行第一测试步骤,得到若干第一测试结果;用例测试模块将若干所述第一测试结果分别填充至所述报告模板中,得到所述测试报告;当所述待测试队列中存在单一所述第一测试用例时,用例测试模块调用所述执行函数和所述异常捕捉函数基于所述待比对队列对所述第一测试用例执行所述第一测试步骤,得到第二测试结果;用例测试模块将所述第二测试结果填充至所述报告模板中,得到所述测试报告;
具体的,用例测试模块执行所述第一测试步骤时包括:用例测试模块调用所述执行函数执行所述第一测试用例,并记录第一时间点;用例测试模块检测所述执行函数是否输出与所述第一测试用例相匹配的第一测试值;若输出,则用例测试模块记录第二时间点,并设定该第一测试用例为已测试用例;用例测试模块在所述待比对队列中筛选出具有与所述已测试用例相匹配的所述匹配值的所述基准期望值,并设定该基准期望值为第一期望值;用例测试模块基于所述异常捕捉函数、所述第一时间点、所述第一测试值、所述第二时间点、所述已测试用例和所述第一期望值执行第二测试步骤;
具体的,用例测试模块执行所述第二测试步骤时包括:用例测试模块比对所述第一测试值是否与所述第一期望值相匹配;若匹配,则用例测试模块生成成功信息,并计算所述第二时间点和所述第一时间点的差值,得到执行时长;用例测试模块将所述已测试用例所对应的所述第一待导入参数、所述第一测试值、所述第一期望值、所述成功信息和所述执行时长整合为所述第一测试结果或所述第二测试结果;所述成功信息包括:该用例通过测试;若非匹配,则用例测试模块调用所述异常捕捉函数生成错误信息,并调用所述异常捕捉函数判断所述第一测试值中与所述第一期望值非匹配的位数信息;用例测试模块基于所述第二时间点和所述第一时间点获取所述执行时长;用例测试模块将所述已测试用例所对应的所述第一待导入参数、所述第一测试值、所述第一期望值、所述错误信息、所述位数信息和所述执行时长整合为所述第一测试结果或所述第二测试结果;所述错误信息包括:该用例未通过测试。
通过本实施例所描述的测试用例的批量测试系统,可以通过队列配置模块、数据导入模块和用例测试模块的相互配合,进而对批量用例进行一次性导入并一次性测试,极大的缩短了测试时间,提高了测试效率,且测试的同时若出现用例错误,还可以捕捉相应的错误信息,不会影响其他用例的测试过程,及其的方便,智能性极高,一定程度上提升了开发人员的开发效率,弥补了现有技术的不足。
实施例3
本实施例提供一种计算机可读存储介质,包括:
所述存储介质用于储存将上述实施例1所述的测试用例的批量测试方法实现所用的计算机软件指令,其包含用于执行上述为所述测试用例的批量测试方法所设置的程序;具体的,该可执行程序可以内置在实施例2所述的测试用例的批量测试系统中,这样,测试用例的批量测试系统就可以通过执行内置的可执行程序实现所述实施例1所述的测试用例的批量测试方法。
此外,本实施例具有的计算机可读存储介质可以采用一个或多个可读存储介质的任意组合,其中,可读存储介质包括电、光、电磁、红外线或半导体的系统、装置或器件,或者以上任意组合。
区别于现有技术,采用本申请一种测试用例的批量测试方法、系统及介质可以通过本方法实现大批量的对测试用例进行测试,且在任一用例出错时,不会中断相关的测试进程,并在最终输出完整的所有测试用例的测试结果,通过本系统为本方法提供了有效的技术支撑,最终极大的提高了测试代码开发的效率,弥补了现有技术的不足,具有极高的市场影响力。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种测试用例的批量测试方法,其特征在于,包括以下步骤:
队列配置步骤:
配置定义函数和队列规格匹配集;设置第一队列类型和第二队列类型;获取测试需求;基于所述定义函数、所述队列规格匹配集、所述第一队列类型、所述第二队列类型和所述测试需求创建用例存储队列和期望值存储队列;
数据导入步骤:
配置构造函数、用例添加函数和期望值添加函数;设置第一参数类型和第二参数类型;基于所述用例存储队列、所述期望值存储队列、所述构造函数、所述用例添加函数、所述期望值添加函数、所述第一参数类型和所述第二参数类型执行数据导入操作,得到待测试队列和待比对队列;
用例测试步骤:
配置执行函数、异常捕捉函数和报告模板;设置数量阈值;基于所述待测试队列、所述待比对队列、所述执行函数、所述异常捕捉函数、所述报告模板和所述数量阈值执行用例批量测试操作,得到测试报告。
2.根据权利要求1所述的一种测试用例的批量测试方法,其特征在于,所述基于所述定义函数、所述队列规格匹配集、所述第一队列类型、所述第二队列类型和所述测试需求创建用例存储队列和期望值存储队列的步骤进一步包括:
识别所述测试需求中的测试用例数量;在所述队列规格匹配集中筛选出与所述测试用例数量均匹配的第一队列规格和第二队列规格;创建与所述第一队列规格和所述第二队列规格分别匹配的第一存放队列和第二存放队列;
调用所述定义函数将所述第一存放队列的队列类型和所述第二存放队列的队列类型分别设置为所述第一队列类型和所述第二队列类型,得到所述用例存储队列和所述期望值存储队列。
3.根据权利要求1或2所述的一种测试用例的批量测试方法,其特征在于,所述数据导入操作包括:
参数获取步骤:获取用例参数,基于所述用例参数执行第一导入步骤;
所述第一导入步骤包括:
获取与所述用例参数相匹配的期望值参数;基于所述定义函数、所述用例参数和所述期望值参数获取第一待导入参数和第二待导入参数;基于所述构造函数和所述第一待导入参数获取第一测试用例;
基于所述用例存储队列、所述用例添加函数和所述第一测试用例获取匹配值;基于所述期望值添加函数、所述第二待导入参数和所述匹配值执行第二导入步骤。
4.根据权利要求3所述的一种测试用例的批量测试方法,其特征在于,所述第一导入步骤进一步包括:
调用所述定义函数将所述用例参数和所述期望值参数分别转换为与所述第一参数类型相匹配的所述第一待导入参数和与所述第二参数类型相匹配的所述第二待导入参数;将所述第一待导入参数传入所述构造函数,得到所述第一测试用例;
调用所述用例添加函数将所述第一测试用例添加至所述用例存储队列;识别所述第一测试用例在所述用例存储队列中的索引信息;设置所述索引信息为所述第二待导入参数的所述匹配值。
5.根据权利要求4所述的一种测试用例的批量测试方法,其特征在于,所述第二导入步骤包括:
将所述匹配值与所述第二待导入参数进行整合,得到基准期望值;调用所述期望值添加函数将所述基准期望值添加至所述期望值存储队列;
将所述基准期望值添加至所述期望值存储队列后,检测所述用例参数的键入情况;当所述键入情况为存在用例参数键入时,回到所述参数获取步骤;当所述键入情况为不存在用例参数键入时,设定所述用例存储队列和所述期望值存储队列分别为所述待测试队列和所述待比对队列。
6.根据权利要求5所述的一种测试用例的批量测试方法,其特征在于,所述用例批量测试操作包括:
检测所述待测试队列中所述第一测试用例的第一数量;比对所述第一数量与所述数量阈值;若所述第一数量不小于所述数量阈值,则判断所述待测试队列中存在若干所述第一测试用例;若所述第一数量小于所述数量阈值,则判断所述待测试队里中存在单一所述第一测试用例;
当所述待测试队列中存在若干所述第一测试用例时,调用所述执行函数和所述异常捕捉函数基于所述待比对队列对若干所述第一测试用例分别执行第一测试步骤,得到若干第一测试结果;将若干所述第一测试结果分别填充至所述报告模板中,得到所述测试报告;
当所述待测试队列中存在单一所述第一测试用例时,调用所述执行函数和所述异常捕捉函数基于所述待比对队列对所述第一测试用例执行所述第一测试步骤,得到第二测试结果;将所述第二测试结果填充至所述报告模板中,得到所述测试报告。
7.根据权利要求6所述的一种测试用例的批量测试方法,其特征在于,所述第一测试步骤包括:
调用所述执行函数执行所述第一测试用例,并记录第一时间点;检测所述执行函数是否输出与所述第一测试用例相匹配的第一测试值;
若输出,则记录第二时间点,并设定该第一测试用例为已测试用例;在所述待比对队列中筛选出具有与所述已测试用例相匹配的所述匹配值的所述基准期望值,并设定该基准期望值为第一期望值;
基于所述异常捕捉函数、所述第一时间点、所述第一测试值、所述第二时间点、所述已测试用例和所述第一期望值执行第二测试步骤。
8.根据权利要求7所述的一种测试用例的批量测试方法,其特征在于,所述第二测试步骤包括:
比对所述第一测试值是否与所述第一期望值相匹配;
若匹配,则生成成功信息,并计算所述第二时间点和所述第一时间点的差值,得到执行时长;将所述已测试用例所对应的所述第一待导入参数、所述第一测试值、所述第一期望值、所述成功信息和所述执行时长整合为所述第一测试结果或所述第二测试结果;所述成功信息包括:该用例通过测试;
若非匹配,则调用所述异常捕捉函数生成错误信息,并调用所述异常捕捉函数判断所述第一测试值中与所述第一期望值非匹配的位数信息;基于所述第二时间点和所述第一时间点获取所述执行时长;将所述已测试用例所对应的所述第一待导入参数、所述第一测试值、所述第一期望值、所述错误信息、所述位数信息和所述执行时长整合为所述第一测试结果或所述第二测试结果;所述错误信息包括:该用例未通过测试。
9.一种测试用例的批量测试系统,其特征在于,包括:队列配置模块、数据导入模块和用例测试模块;
所述队列配置模块中配置有第一程序,所述第一程序用于配置定义函数和队列规格匹配集,并设置第一队列类型和第二队列类型;所述队列配置模块用于获取测试需求,并基于所述定义函数、所述队列规格匹配集、所述第一队列类型、所述第二队列类型和所述测试需求创建用例存储队列和期望值存储队列;
所述数据导入模块中配置有第二程序,所述第二程序用于配置构造函数、用例添加函数和期望值添加函数,并设置第一参数类型和第二参数类型;所述数据导入模块用于根据所述用例存储队列、所述期望值存储队列、所述构造函数、所述用例添加函数、所述期望值添加函数、所述第一参数类型和所述第二参数类型执行数据导入操作,得到待测试队列和待比对队列;
所述用例测试模块中配置有第三程序,所述第三程序用于配置执行函数、异常捕捉函数和报告模板,并设置数量阈值;所述用例测试模块用于根据所述待测试队列、所述待比对队列、所述执行函数、所述异常捕捉函数、所述报告模板和所述数量阈值执行用例批量测试操作,得到测试报告。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~8中任一项所述测试用例的批量测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111047794.3A CN113900926A (zh) | 2021-09-08 | 2021-09-08 | 一种测试用例的批量测试方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111047794.3A CN113900926A (zh) | 2021-09-08 | 2021-09-08 | 一种测试用例的批量测试方法、系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113900926A true CN113900926A (zh) | 2022-01-07 |
Family
ID=79188816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111047794.3A Pending CN113900926A (zh) | 2021-09-08 | 2021-09-08 | 一种测试用例的批量测试方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113900926A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115374019A (zh) * | 2022-10-27 | 2022-11-22 | 畅捷通信息技术股份有限公司 | 分布式ui测试用例的测试方法、系统及计算机存储介质 |
CN116187257A (zh) * | 2022-12-29 | 2023-05-30 | 深圳华大九天科技有限公司 | 一种批量生成光栅耦合器测试阵列版图的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664381A (zh) * | 2017-03-27 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 测试方法及装置 |
US20200073789A1 (en) * | 2018-08-21 | 2020-03-05 | Marlabs Innovations Private Limited | Testing automation controller framework and a method to operate the same |
-
2021
- 2021-09-08 CN CN202111047794.3A patent/CN113900926A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664381A (zh) * | 2017-03-27 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 测试方法及装置 |
US20200073789A1 (en) * | 2018-08-21 | 2020-03-05 | Marlabs Innovations Private Limited | Testing automation controller framework and a method to operate the same |
Non-Patent Citations (1)
Title |
---|
曾帅: "自动化测试工具Conductor的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 February 2013 (2013-02-15), pages 138 - 682 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115374019A (zh) * | 2022-10-27 | 2022-11-22 | 畅捷通信息技术股份有限公司 | 分布式ui测试用例的测试方法、系统及计算机存储介质 |
CN116187257A (zh) * | 2022-12-29 | 2023-05-30 | 深圳华大九天科技有限公司 | 一种批量生成光栅耦合器测试阵列版图的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106909510B (zh) | 一种获取测试用例的方法以及服务器 | |
Hagerer et al. | Model generation by moderated regular extrapolation | |
CN113900926A (zh) | 一种测试用例的批量测试方法、系统及介质 | |
CN107357727A (zh) | App运行测试方法、装置、可读存储介质和计算机设备 | |
US20090222646A1 (en) | Method and apparatus for detecting processor behavior using instruction trace data | |
CN109857637B (zh) | 基于注解的Java语言方法覆盖率和方法输入输出统计方法 | |
CN111190827A (zh) | 接口自动化测试方法、装置、存储介质及电子设备 | |
CN112559348A (zh) | 基于jacoco的测试分析方法、系统、设备以及介质 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
Burrows et al. | Reasoning about faults in aspect-oriented programs: a metrics-based evaluation | |
CN112579440A (zh) | 一种虚拟测试依赖对象的确定方法及装置 | |
CN110990282B (zh) | 一种自动化单元测试方法 | |
CN112685316A (zh) | 代码执行路径的获取方法、装置、计算机设备及存储介质 | |
CN105468530B (zh) | 一种基于有限状态机的程序错误检测方法及系统 | |
CN113608089B (zh) | 开关电源mos管的soa测试方法、系统、装置及可读存储介质 | |
CN116521538A (zh) | 命令行界面自动测试方法、装置、电子设备及存储介质 | |
CN110633213A (zh) | 单元测试方法、装置、计算机设备和存储介质 | |
CN109684205A (zh) | 系统测试方法、装置、电子设备及存储介质 | |
CN105608006B (zh) | 一种基于概率模型的程序错误检测方法及系统 | |
CN115098401A (zh) | 一种html报告验证方法、装置、电子设备及存储介质 | |
CN114676061A (zh) | 一种基于知识图谱自动化固件检测方法 | |
CN113094277A (zh) | 芯片测试用例管理方法及装置 | |
WO2021104027A1 (zh) | 代码性能检测方法、装置、设备及存储介质 | |
CN111813665A (zh) | 一种基于python的大数据平台接口数据测试方法和系统 | |
CN111143221B (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 |