CN111240970B - 一种测试用例生成方法及装置 - Google Patents
一种测试用例生成方法及装置 Download PDFInfo
- Publication number
- CN111240970B CN111240970B CN202010009877.2A CN202010009877A CN111240970B CN 111240970 B CN111240970 B CN 111240970B CN 202010009877 A CN202010009877 A CN 202010009877A CN 111240970 B CN111240970 B CN 111240970B
- Authority
- CN
- China
- Prior art keywords
- test case
- attribute
- data
- value
- annotation
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 282
- 238000000034 method Methods 0.000 title claims abstract description 99
- 230000015654 memory Effects 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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
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
技术领域
本发明涉及软件开发测试领域,具体涉及一种测试用例生成方法及装置。
背景技术
为了保证软件具有较高的可靠性,在软件开发过程中,需要通过测试用例对软件进行全面测试,并且在测试过程中,对代码覆盖率有要求,一般来说,代码的行覆盖率要达到85%以上,条件覆盖率要达到80%以上,因此如何编写高质量、可维护的单元测试代码尤为重要,但是在现有技术中,在对某个软件进行测试时,需要手工创建被测试软件的测试用例,当需要有大量的测试用例时,需要多次重新创建对象,或者反复修改当前已创建对象中的属性值去适应新的测试用例,由此可见,通过传统的方法创建测试用例工作量较大,代码冗余过多。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中的创建测试用例的工作量较大、代码冗余较多的缺陷,从而提供一种测试用例生成方法及装置。
本发明第一方面提供了一种测试用例生成方法,包括:读取用以生成测试用例的文件;提取文件中的基础数据注解,根据基础数据注解生成基础数据,基础数据注解用于指定生成基础数据的方法,基础数据中至少包含一个数据属性及其对应的值;提取文件中的测试用例注解,根据测试用例注解和基础数据生成测试用例,测试用例注解包含至少一个注解属性,注解属性用于指定测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法。
可选地,测试用例注解中包含mock属性,mock属性用于定义测试用例中的至少一个数据属性的指定值;根据测试用例注解和基础数据生成测试用例的步骤,包括:确定mock属性定义的第一指定值;确定第一指定值对应的第一数据属性;将基础数据中与第一数据属性相同的数据属性的值替换为第一指定值,生成第一测试用例。
可选地,测试用例注解中包含method属性,method属性用于指定测试用例中的至少一个数据属性的值的生成方法;根据测试用例注解和基础数据生成测试用例的步骤,包括:根据method属性指定的方法确定第二指定值;确定第二指定值对应的第二数据属性;将基础数据中与第二数据属性相同的数据属性的值替换为第二指定值,生成第二测试用例。
可选的,测试用例注解中还包含group属性,group属性用于指定测试用例注解所属的组;根据测试用例注解和基础数据生成测试用例的步骤,还包括:根据测试用例注解确定第一指定值和/或第二指定值;确定与第一指定值和/或第二指定值相对应的属性;将group属性值相同的测试用例注解确定的第一指定值和/或第二指定值分别替换基础数据中与第一指定值和/或第二指定值相对应的数据属性的值,生成第三测试用例。
可选地,测试用例注解中包含type属性,用于指定测试用例中的至少一个数据属性对应的类;根据测试用例注解和基础数据生成测试用例的步骤,包括:根据type属性指定的类确定第三指定值;确定第三指定值对应的第三数据属性;将基础数据中与第三数据属性相对应的数据属性的值替换为第三指定值,生成第四测试用例。
本发明第二方面提供了一种测试用例生成装置,包括:文件读取模块,用于读取用以生成测试用例的文件;基础数据生成模块,提取文件中的基础数据注解,基础数据生成模块用于根据基础数据注解生成基础数据,基础数据注解用于指定生成基础数据的方法,基础数据中至少包含一个数据属性及其对应的值;测试用例生成模块,提取文件中的测试用例注解,测试用例生成模块用于根据测试用例注解和基础数据生成测试用例,测试用例注解包含至少一个注解属性,注解属性用于指定测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法。
本发明第三方面提供了一种计算机设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,从而执行如本发明第一方面提供的测试用例生成方法。
本发明第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行如本发明第一方面提供的测试用例生成方法。
本发明技术方案,具有如下优点:
1.本发明提供的测试用例生成方法,先读取用以生成测试用例的文件,文件中包含用于指定生成基础数据的方法的基础数据注解,以及用于指定测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法的测试用例注解,根据基础数据注解生成基础数据,然后根据测试用例注解和基础数据生成测试用例,测试用例的数据属性的值通过测试用例注解定义,无需手动设置每个测试用例的值,使得生成测试用例的代码简单,创建测试用例时的工作量大大减小。
2.本发明提供的测试用例生成方法,测试用例注解中包含mock属性,mock属性用于定义测试用例中的至少一个数据属性的指定值,根据测试用例注解和基础数据生成测试用例时,先确定mock属性指定的第一指定值,以及第一指定值对应的第一数据属性,然后将基础数据中与第一数据属性相对应的数据属性的值替换为寺遗址定制,即可得到第一测试用例,无需将值不发生改变的数据属性重复编写,减少了代码冗余。
3.本发明提供的测试用例生成方法,测试用例注解中包含method属性,method属性用于指定测试用例中的至少一个数据属性的值的生成方法,根据测试用例注解和基础数据生成测试用例时,先根据method属性指定的方法确定第二指定值、确定第二指定值对应的第二属性数据,然后将基础数据中与第二数据属性相同的数据属性的值替换为第二指定值,即可得到第二测试用例,同一方法可以用于不同的测试用例中,因此当测试用例较多时,无需开发,只需配置即可,减少了代码的编写,减少了工作量。
4.本发明提供的测试用例生成方法,测试用例注解中还包含group属性,group属性用于指定测试用例注解所属的组,根据测试用例注解和基础数据生成测试用例时,先根据测试用例注解确定第一指定值和/或第二指定值,并确定与第一指定值和/或第二指定值相对应的属性,然后将group属性值相同的测试用例注解确定的第一指定值和/或第二指定值分别替换基础数据中与第一指定值和/或第二指定值相对应的数据属性的值,生成第三测试用例,通过group属性可以将测试用例中的多个不同的数据属性的值进行组合,实现了通过简单的代码生成复杂的测试用例。
5.本发明提供的测试用例生成方法,测试用例注解中包含type属性,用于指定测试用例中的至少一个数据属性对应的类,根据测试用例注解和基础数据生成测试用例时,先根据type属性指定的类确定第三指定值、确定第三指定值对应的第三数据属性,然后将基础数据中与第三数据属性相对应的数据属性的值替换为第三指定值,生成第四测试用例,由于一个类中可以定义多个属性和属性对应的值,因此第三指定值中可包括多个不同的数据属性对应的值,通过第三指定数据替换基础数据中的值时,可一次性替换多个数据属性的值,由此可见,通过本发明提供的测试用例生成方法可以更灵活地生成更复杂的测试用例。
6.本发明提供的测试用例生成装置,先读取用以生成测试用例的文件,文件中包含用于指定生成基础数据的方法的基础数据注解,以及用于指定测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法的测试用例注解,根据基础数据注解生成基础数据,然后根据测试用例注解和基础数据生成测试用例,测试用例的数据属性的值通过测试用例注解定义,无需手动设置每个测试用例的值,使得生成测试用例的代码简单,创建测试用例时的工作量大大减小。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1-图5为本发明实施例中测试用例生成方法的具体示例的流程图;
图6为本发明实施例中测试用例生成装置的一个具体示例的原理框图;
图7为本发明实施例中提供的计算机设备示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本发明实施例提供了一种测试用例生成方法,如图1所示,包括:
步骤S10:读取用以生成测试用例的文件。文件中包含可以生成测试用例的代码,在一具体实施例中,可使用反射技术读取文件中的所有变量。
步骤S20:提取文件中的基础数据注解,根据基础数据注解生成基础数据,基础数据注解用于指定生成基础数据的方法,基础数据中至少包含一个数据属性及其对应的值。如下例1所示:
例1:
@MockDataSource(method=“com.test.Generator.genCar”)
public class Car{
private String name;
private String color;
}
在本发明实施例中,基础数据注解为@MockDataSource注解,该注解用于类中,@MockDataSource注解中包含一个method属性,通过method属性指定生成基础数据的方法为“com.test.Generator.genCar”,该方法的如下例2所示:
例2
通过上述方法即可得到本发明实施例中的基础数据:{“name”:“bmw”,“color”:“red”},本发明实施例中,基础数据包含了两个数据属性,分别为“name”和“color”,其中,“name”属性对应的值为“bmw”,“color”属性对应的值为“red”。
步骤S30:提取文件中的测试用例注解,根据测试用例注解和基础数据生成测试用例,测试用例注解包含至少一个注解属性,注解属性用于指定测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法。在一具体实施例中,测试用例和基础数据中的数据属性相同,将基础数据中的其中一个或多个数据属性的值进行替换即可得到不同的测试用例。在一具体实施例中,是通过工具类MockTestCase来生成测试用例的。
本发明实施例提供的测试用例生成方法,先读取用以生成测试用例的文件,文件中包含用于指定生成基础数据的方法的基础数据注解,以及用于指定测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法的测试用例注解,根据基础数据注解生成基础数据,然后根据测试用例注解和基础数据生成测试用例,测试用例的数据属性的值通过测试用例注解定义,无需手动设置每个测试用例的值,使得生成测试用例的代码简单,创建测试用例时的工作量大大减小。
在一可选实施例中,测试用例注解中包含mock属性,mock属性用于定义测试用例中的至少一个数据属性的指定值,在一具体实施例中,@MockField注解和@MockGroupField注解中都包含mock属性,本发明实施例以@MockField注解为例对mock属性进行说明,如下例3所示:
例3:
当读取的文件中包含类似于上述例3中的代码时,如图2所示,上述步骤S30具体包括:
步骤S31:确定mock属性指定的第一指定值,在本实施例中,如上述例3代码中的第5行所示,通过mock属性指定的第一指定值为“black”。
步骤S32:确定第一指定值对应的第一数据属性,如上述例3代码中的第5、6行所示,与第一指定值“black”相对应的第一数据属性为“color”。
步骤S33:将基础数据中与第一数据属性相同的数据属性的值替换为第一指定值,生成第一测试用例,即,将基础数据{“name”:“bmw”,“color”:“red”}中的“color”属性的值替换为“black”,即可得到第一测试用例case1:{“name”:“bmw”,“color”:“black”},由例3可见,本发明实施例在生成第一测试用例时,只定义了基础数据中需要改变的数据属性的值,不做出改变的数据属性的值无需再次进行编写。
本发明实施例提供的测试用例生成方法,测试用例注解中包含mock属性,mock属性用于定义测试用例中的至少一个数据属性的指定值,根据测试用例注解和基础数据生成测试用例时,先确定mock属性指定的第一指定值,以及第一指定值对应的第一数据属性,然后将基础数据中与第一数据属性相对应的数据属性的值替换为寺遗址定制,即可得到第一测试用例,无需将值不发生改变的数据属性重复编写,减少了代码冗余。
在一具体实施例中,如例3所示,@MockField注解中还包含no属性,用于定义测试用例的编号,当存在较多测试用例时,通过no属性对测试用例进行编号使得测试用例更加条理。
在一可选实施例中,试用例注解中包含method属性,method属性用于指定测试用例中的至少一个数据属性的值的生成方法,在一具体实施例中@MockField注解和@MockGroupField注解中都包含method属性,本发明实施例以@MockGroupField注解为例对method属性进行说明,如下例4所示:
例4:
其中,method定义的方法如例5所示:
例5:
当读取的文件中包含类似于上述例4和例5中的代码时,如图3所示,上述步骤S30还包括:
步骤S34:根据method属性指定的方法确定第二指定值,在上述例4和例5中,得到的第二指定值为“benz”。
步骤S35:确定第二指定值对应的第二数据属性,通过上述例4代码中的第三行和第四行可知,与第二指定值“benz”对应的第二数据属性为“name”。
步骤S36:将基础数据中与第二数据属性相同的数据属性的值替换为第二指定值,生成第二测试用例,即,将基础数据{“name”:“bmw”,“color”:“red”}中的“name”属性的值替换为“benz”,即可得到第二测试用例case2:{“name”:“benz”,“color”:“red”},由例4可见,本发明实施例在生成第一测试用例时,只定义了基础数据中需要改变的数据属性的值的生成方法,不做出改变的数据属性的值无需再次进行编写,并且例5中的方法可以自定义编写各种逻辑,例5定义的方法可被多次引用。
本发明实施例提供的测试用例生成方法,测试用例注解中包含method属性,method属性用于指定测试用例中的至少一个数据属性的值的生成方法,根据测试用例注解和基础数据生成测试用例时,先根据method属性指定的方法确定第二指定值、确定第二指定值对应的第二属性数据,然后将基础数据中与第二数据属性相同的数据属性的值替换为第二指定值,即可得到第二测试用例,同一方法可以用于不同的测试用例中,因此当测试用例较多时,无需开发,只需配置即可,减少了代码的编写,减少了工作量
在一可选实施例中,测试用例注解中还包含group属性,group属性用于指定测试用例注解所属的组,在本发明实施例中,group属性主要用于@MockGroupField注解中,如下例6所示:
例6:
当读取的文件中包含类似于上述例6中的代码时,如图4所示,上述步骤S30还包括:
步骤S37:根据测试用例注解确定第一指定值和/或第二指定值,在一具体实施例中,通过测试用例注解中的注解属性获取第一指定值和/或第二指定值,在上述例5中,通过“method”属性确定了第二指定值“benz”,通过“mock”属性确定了第一指定值“black”。
步骤S38:确定与第一指定值和/或第二指定值相对应的数据属性,在上述例5中,第一指定值“black”对应的数据属性为“color”,第二指定值“benz”对应的数据属性为“name”。
步骤S39:将group属性值相同的测试用例注解确定的第一指定值和/或第二指定值分别替换基础数据中与第一指定值和/或第二指定值相对应的数据属性的值,生成第三测试用例,在上述例6中第三行的@MockGroupField注解和第五行的@MockGroupField注解中的“group”属性的值都为“g1”,因此,将基础数据{“name”:“bmw”,“color”:“red”}中的,“color”属性的值替换为“black”,“name”属性的值替换为“benz”,即可得到第三测试用例case3:{“name”:“benz”,“color”:“black”}。
本发明实施例提供的测试用例生成方法,测试用例注解中还包含group属性,group属性用于指定测试用例注解所属的组,根据测试用例注解和基础数据生成测试用例时,先根据测试用例注解确定第一指定值和/或第二指定值,并确定与第一指定值和/或第二指定值相对应的属性,然后将group属性值相同的测试用例注解确定的第一指定值和/或第二指定值分别替换基础数据中与第一指定值和/或第二指定值相对应的数据属性的值,生成第三测试用例,通过group属性可以将测试用例中的多个不同的数据属性的值进行组合,实现了通过简单的代码生成复杂的测试用例。
在一可选实施例中,测试用例注解中包含type属性,type属性用于指定测试用例中的至少一个数据属性对应的类,在一具体实施例中,包含type属性的测试用例注解为@MockJson注解,该注解主要解决某个数据属性的值是json字符串的场景,例如基础数据{“name”:”bmw”,“color”:”red”,“driver”:”{\”name\”:\”zhangsan\”,\”age\”:\”100\”}}中,数据属性“driver”的值为一个json字符串,因此通过测试用例注解指定“driver”的值时,可以通过type属性指定一个类,type属性指定的类中包含对字符串中不同数据属性的值的定义,如下例7所示:
例7:
当读取的文件中包含类似于上述例7中的代码时,如图5所示,上述步骤S30还包括:
步骤S310:根据type属性指定的类确定第三指定值,在一具体实施例中,type属性指定的类中可对多个数据属性的值进行定义,因此第三指定值可包含多个值,并且在type属性指定的类中还可以通过其他测试用例定义数据属性的值,在上述例7中,通过type属性指定了“com.test.Driver”类,在“com.test.Driver”类中还嵌套使用了两个@MockField注解,通过两个@MockField注解分别定义了两个测试用例,在第一个测试用例中,将“name”属性的值指定为“lishun”,在第二个测试用例中,将“age”的属性指定为“18”。
步骤S311:确定第三指定值对应的第三数据属性,在例7中,虽type指定的类中分别对“name”属性和“age”的属性的值做了定义,但是从代码中第五行和第六行可以看出,类中指定的“name”属性和“age”的属性都包含于“driver”属性。
步骤S312:将基础数据中与第三数据属性相对应的数据属性的值替换为第三指定值,生成第四测试用例,在本发明实施例中,生成了两个测试用例,在第一个测试用例中,将基础数据中的driver属性中的name属性的值替换为“lishun”,生成case1:{“name”:”bmw”,“color”:”red”,“driver”:”{\”name\”:\”lishun\”,\”age\”:\”100\”}},在第二个测试用例中,将基础数据中的driver属性中的age属性的值替换为“18”,生成case2:{“name”:”bmw”,“color”:”red”,“driver”:”{\”name\”:\”zhangsan\”,\”age\”:\”18\”}}。
本发明实施例提供的测试用例生成方法,测试用例注解中包含type属性,用于指定测试用例中的至少一个数据属性对应的类,根据测试用例注解和基础数据生成测试用例时,先根据type属性指定的类确定第三指定值、确定第三指定值对应的第三数据属性,然后将基础数据中与第三数据属性相对应的数据属性的值替换为第三指定值,生成第四测试用例,由于一个类中可以定义多个属性和属性对应的值,因此第三指定值中可包括多个不同的数据属性对应的值,通过第三指定数据替换基础数据中的值时,可一次性替换多个数据属性的值,由此可见,通过本发明提供的测试用例生成方法可以更灵活地生成更复杂的测试用例。
实施例2
本发明实施例提供了一种测试用例生成装置,如图6所示,包括:
文件读取模块10,用于读取用以生成测试用例的文件,详细描述见上述实施例1中对步骤S10的描述。
基础数据生成模块20,提取文件中的基础数据注解,基础数据生成模块用于根据基础数据注解生成基础数据,基础数据注解用于指定生成基础数据的方法,基础数据中至少包含一个数据属性及其对应的值,详细描述见上述实施例1中对步骤S20的描述。
测试用例生成模块30,提取文件中的测试用例注解,测试用例生成模块用于根据测试用例注解和基础数据生成测试用例,测试用例注解包含至少一个注解属性,注解属性用于指定测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法,详细描述见上述实施例1中对步骤S30的描述。
本发明提供的测试用例生成装置,先读取用以生成测试用例的文件,文件中包含用于指定生成基础数据的方法的基础数据注解,以及用于指定测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法的测试用例注解,根据基础数据注解生成基础数据,然后根据测试用例注解和基础数据生成测试用例,测试用例的数据属性的值通过测试用例注解定义,无需手动设置每个测试用例的值,使得生成测试用例的代码简单,创建测试用例时的工作量大大减小。
实施例3
本发明实施例提供一种计算机设备,如图7所示,该计算机设备主要包括一个或多个处理器41以及存储器42,图7中以一个处理器41为例。
该计算机设备还可以包括:输入装置43和输出装置44。
处理器41、存储器42、输入装置43和输出装置44可以通过总线或者其他方式连接,图7中以通过总线连接为例。
处理器41可以为中央处理器(Central Processing Unit,CPU)。处理器41还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据测试用例生成装置的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至测试用例生成装置。输入装置43可接收用户输入的计算请求(或其他数字或字符信息),以及产生与测试用例生成装置有关的键信号输入。输出装置44可包括显示屏等显示设备,用以输出计算结果。
实施例4
本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的测试用例生成方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (7)
1.一种测试用例生成方法,其特征在于,包括:
读取用以生成测试用例的文件;
提取所述文件中的基础数据注解,根据所述基础数据注解生成基础数据,所述基础数据注解用于指定生成所述基础数据的方法,所述基础数据中至少包含一个数据属性及其对应的值;
提取所述文件中的测试用例注解,根据所述测试用例注解和所述基础数据生成测试用例,所述测试用例注解包含至少一个注解属性,所述注解属性用于指定所述测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法,测试用例和基础数据中的数据属性相同,根据所述注解属性确定一个或多个数据属性的值后,将基础数据中的其中一个或多个数据属性的值进行替换得到不同的测试用例;
所述测试用例注解中包含mock属性,所述mock属性用于定义所述测试用例中的至少一个数据属性的指定值;
所述根据所述测试用例注解和所述基础数据生成测试用例的步骤,包括:
确定所述mock属性指定的第一指定值;
确定所述第一指定值对应的第一数据属性;
将所述基础数据中与所述第一数据属性相同的数据属性的值替换为所述第一指定值,生成第一测试用例。
2.根据权利要求1所述的测试用例生成方法,其特征在于,
所述测试用例注解中包含method属性,所述method属性用于指定所述测试用例中的至少一个数据属性的值的生成方法;
所述根据所述测试用例注解和所述基础数据生成测试用例的步骤,还包括:
根据所述method属性指定的方法确定第二指定值;
确定所述第二指定值对应的第二数据属性;
将所述基础数据中与所述第二数据属性相同的数据属性的值替换为所述第二指定值,生成第二测试用例。
3.根据权利要求2所述的测试用例生成方法,其特征在于,
所述测试用例注解中还包含group属性,所述group属性用于指定所述测试用例注解所属的组;
所述根据所述测试用例注解和所述基础数据生成测试用例的步骤,还包括:
根据所述测试用例注解确定所述第一指定值和/或第二指定值;
确定与所述第一指定值和/或第二指定值相对应的数据属性;
将所述group属性值相同的测试用例注解确定的所述第一指定值和/或第二指定值分别替换所述基础数据中与所述第一指定值和/或第二指定值相对应的数据属性的值,生成第三测试用例。
4.根据权利要求1所述的测试用例生成方法,其特征在于,
所述测试用例注解中包含type属性,所述type属性用于指定所述测试用例中的至少一个数据属性对应的类;
所述根据所述测试用例注解和所述基础数据生成测试用例的步骤,包括:
根据所述type属性指定的类确定第三指定值;
确定所述第三指定值对应的第三数据属性;
将所述基础数据中与所述第三数据属性相对应的数据属性的值替换为所述第三指定值,生成第四测试用例。
5.一种测试用例生成装置,其特征在于,包括:
文件读取模块,用于读取用以生成测试用例的文件;
基础数据生成模块,提取所述文件中的基础数据注解,所述基础数据生成模块用于根据所述基础数据注解生成基础数据,所述基础数据注解用于指定生成所述基础数据的方法,所述基础数据中至少包含一个数据属性及其对应的值;
测试用例生成模块,提取所述文件中的测试用例注解,所述测试用例生成模块用于根据所述测试用例注解和所述基础数据生成测试用例,所述测试用例注解包含至少一个注解属性,所述注解属性用于指定所述测试用例中至少一个数据属性的值或至少一个数据属性的值的生成方法,测试用例和基础数据中的数据属性相同,根据所述注解属性确定一个或多个数据属性的值后,将基础数据中的其中一个或多个数据属性的值进行替换得到不同的测试用例;
所述测试用例注解中包含mock属性,所述mock属性用于定义所述测试用例中的至少一个数据属性的指定值;
所述根据所述测试用例注解和所述基础数据生成测试用例的步骤,包括:
确定所述mock属性指定的第一指定值;
确定所述第一指定值对应的第一数据属性;
将所述基础数据中与所述第一数据属性相同的数据属性的值替换为所述第一指定值,生成第一测试用例。
6.一种计算机设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,从而执行如权利要求1-4中任一项所述的测试用例生成方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-4中任一项所述的测试用例生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009877.2A CN111240970B (zh) | 2020-01-06 | 2020-01-06 | 一种测试用例生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009877.2A CN111240970B (zh) | 2020-01-06 | 2020-01-06 | 一种测试用例生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111240970A CN111240970A (zh) | 2020-06-05 |
CN111240970B true CN111240970B (zh) | 2024-06-11 |
Family
ID=70863996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010009877.2A Active CN111240970B (zh) | 2020-01-06 | 2020-01-06 | 一种测试用例生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240970B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8028276B1 (en) * | 2007-06-29 | 2011-09-27 | Oracle America, Inc. | Method and system for generating a test file |
CN105528287A (zh) * | 2014-10-15 | 2016-04-27 | 三星Sds株式会社 | 用于代码的单元测试的装置及方法 |
CN108763091A (zh) * | 2018-05-31 | 2018-11-06 | 恒生电子股份有限公司 | 用于回归测试的方法、装置及系统 |
CN109213683A (zh) * | 2018-09-06 | 2019-01-15 | 无线生活(杭州)信息科技有限公司 | 测试用例生成方法及装置 |
CN109254907A (zh) * | 2018-08-03 | 2019-01-22 | 挖财网络技术有限公司 | 一种基于Java的接口测试报告生成方法及系统 |
CN110134584A (zh) * | 2019-04-12 | 2019-08-16 | 深圳壹账通智能科技有限公司 | 一种接口测试用例的生成方法、装置、存储介质和服务器 |
-
2020
- 2020-01-06 CN CN202010009877.2A patent/CN111240970B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8028276B1 (en) * | 2007-06-29 | 2011-09-27 | Oracle America, Inc. | Method and system for generating a test file |
CN105528287A (zh) * | 2014-10-15 | 2016-04-27 | 三星Sds株式会社 | 用于代码的单元测试的装置及方法 |
CN108763091A (zh) * | 2018-05-31 | 2018-11-06 | 恒生电子股份有限公司 | 用于回归测试的方法、装置及系统 |
CN109254907A (zh) * | 2018-08-03 | 2019-01-22 | 挖财网络技术有限公司 | 一种基于Java的接口测试报告生成方法及系统 |
CN109213683A (zh) * | 2018-09-06 | 2019-01-15 | 无线生活(杭州)信息科技有限公司 | 测试用例生成方法及装置 |
CN110134584A (zh) * | 2019-04-12 | 2019-08-16 | 深圳壹账通智能科技有限公司 | 一种接口测试用例的生成方法、装置、存储介质和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN111240970A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990053A (zh) | 机器学习方案模板的创建方法、使用方法及装置 | |
CN108268525A (zh) | 一种基于Excel模板的报表实现方法及装置 | |
JP6417791B2 (ja) | アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム | |
CN110990274B (zh) | 一种生成测试案例的数据处理方法、装置及系统 | |
JP2019021341A (ja) | アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム | |
US20170300405A1 (en) | Method, apparatus, and computer-readable medium for performing functional testing of software | |
CN113204340A (zh) | 题目生产方法、题目管理系统及电子设备 | |
US9477582B2 (en) | Executable software specification generation | |
US8745050B2 (en) | Definitions in master documents | |
CA3138761A1 (en) | Method, device, computer equipment and storage medium for verifying inter-system data admission | |
CN111240970B (zh) | 一种测试用例生成方法及装置 | |
CN116483344A (zh) | 代码生成方法及装置、终端设备、计算机可读存储介质 | |
CN113822002B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN116415000A (zh) | 可视化知识图谱的配置方法、装置、设备及存储介质 | |
CN111916164B (zh) | 用于临床研究中的中心启动调研系统的实现方法和装置 | |
CN112445461B (zh) | 一种业务规则生成方法、装置、电子设备和可读存储介质 | |
CN108829968A (zh) | 基于Python扩展函数的电路图审查方法 | |
CN105094845A (zh) | 流程建模装置和方法 | |
JP4387324B2 (ja) | プロパティ変換装置 | |
US10229750B2 (en) | Memory management architecture for use with a diagnostic tool | |
CN116485336B (zh) | 一种一页展示工作全流程的管理方法、管理系统及电子设备 | |
US11829336B1 (en) | Systems and methods for automated data dictionary generation and validation | |
CN117724686B (zh) | 一种基于xml的设计验证代码可视化生成方法和装置 | |
CN111652747B (zh) | 电子保单处理方法、装置、设备及计算机可读存储介质 | |
CN111414330A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |