一种生成测试接口应用的入参类对象的方法及装置与流程

文档序号:20838399发布日期:2020-05-22 17:10阅读:443来源:国知局
一种生成测试接口应用的入参类对象的方法及装置与流程

本发明涉及互联网技术领域,特别涉及一种生成测试接口应用的入参类对象的方法及装置。



背景技术:

随着信息化技术的发展,互联网已经渗透到了日常生活的方方面面。在一个互联网系统功能正常运行的背后,需要大量测试工作保障系统的健壮性。采用单元测试方式对互联网系统的各个最小可测试功能单元进行测试,在开发人员或测试人员对互联网系统的测试过程中功不可没,其可以对一个一个的测试用例场景进行覆盖,帮助其快速定位所述系统中的各个可测试功能单元的问题。在对互联网系统的众多功能单元测试中,有一种是针对接口应用的测试,具体是采用计算机脚本语言编译得到所述系统要测试的接口应用的测试用例,该测试用例包括了多个入参类对象,运行测试用例,对所述接口应用进行测试,得到所述接口应用的测试结果。

目前,生成针对接口应用的测试用例中的入参类对象的方式主要有两种:

第一种方式,在生成针对接口应用的测试用例中,直接设置每个接口的入参类对象,具体为所设置入参类对象的字段设置符合测试用例要求的字段值。对于一个入参类对象的每个字段都设置有类型值,除了基础类型外,可能会有各种自定义类型,比如列表(list)类型、集(set)类型或映射(map)等,在这些自定义类型下,对应的字段值常常是一个集合,比如字段类型值为set时,字段值是一个无序且不可重复的字段值集合;字段类型值为list时,字段值是一个有序且可重复的字段值列表等等,这时,就还需要设置这些集合值。

第二种方式,在生成针对接口应用的测试用例中,采用轻量级的数据交换格式(json)转换工具,诸如快速json(fastjson)转换工具为所设置入参类对象的字段设置符合测试用例要求的字段值。具体地,对于一个入参类对象的字段,根据字段类型生成字段值的json字符串样稿(demo),在该json字符串样稿中填写相应字段的字段值,然后在编译测试用例过程中采用json转换工具将该json字符串demo转换为所设置的入参类对象。具体字段值的填写甚至不需要技术人员参与,只需要懂业务的人员根据具体业务填写相应字段的字段值即可。

但是,发明人研究后发现,无论采用上述两种方式的哪一种方式,都存在问题:第一种方式,需要专业的技术人员编写计算机脚本语言代码,主要是为了设置每个接口的入参类对象,这需要技术人员具有计算机语言的编程基础。另外,如果入参类对象中字段特别多的情况下,在编写时由于技术人员的问题,也会出现漏设置或错误设置的问题。第二种方式,虽然不需要专业的技术人员编写计算机脚本语言代码,但是由于json转换工具的转换设置缺陷,对于入参类对象的自定义类型字段,由于其字段值常常为一个集合,而在json字符串demo中填写相应字段的字段值转换时无法对应一个集合,所以转换得到的字段值都是空值(null),而得不到具体的值,造成了针对接口应用的测试用例的设置错误。

综上,如何不需要专业的技术人员参与,就可以简单且正确的生成测试接口应用的入参类对象,成为了一个亟待解决的问题。



技术实现要素:

有鉴于此,本发明实施例提供一种生成测试接口应用的入参类对象的方法,该方法能够在无专业人员的参与下,简单且正确地生成测试接口应用的入参类对象。

本发明实施例还提供一种生成测试接口应用的入参类对象的装置,该装置能够在无专业人员的参与下,简单且正确地生成测试接口应用的入参类对象。

本发明实施例是这样实现的:

一种生成测试接口应用的入参类对象的方法,该方法包括:

调用设置的入参类模型;

所述入参类模型根据获取类文件中各个字段的字段类型,分别判断各个字段的字段类型是否为自定义类型,如果是,将自定义类型的字段实例化为入参类对象,将对该入参类对象所含有的所有字段值,依次赋予到该字段中;如果否,所述入参类模型将非自定义类型的字段赋予设置的对应字段值。

一种生成测试接口应用的入参类对象的装置,包括:设置单元、调用单元及处理单元,其中,

设置单元,用于设置入参类模型;

调用单元,用于调用所设置的入参类模型及获取类文件中各个字段的字段类型;

处理单元,用于分别判断各个字段的字段类型是否为自定义类型,如果是,所述入参类模型将自定义类型的字段实例化为一个入参类对象,将对该入参类对象所含有的所有字段值,依次赋予到该字段中;如果否,则所述入参类模型将非自定义类型的字段赋予设置的对应字段值。

如上可见,本发明实施例设置入参类模型,在生成针对测试接口应用的测试用例中的入参类对象时,调用所设置的入参类模型,所述入参类模型根据所获取类文件中各个字段的字段类型赋予各个字段对应的字段值,生成入参类对象。更进一步地,在当确定所述字段的字段类型为自定义类型时,所述入参类模型将该字段实例化为一个入参类对象,且对该入参类对象所含有的所有字段值依次赋予到该字段中。这样,由于入参类模型的设置及调用,只需要编写测试用例中的类文件即可,而无需对入参类对象的生成过程代码进行编写,且避免了直接采用json转换工具转换而造成的转换错误问题,从而在无专业人员的参与下,简单且正确地生成测试接口应用的入参类对象。

附图说明

图1为本发明实施例提供的生成测试接口应用的入参类对象的方法流程图;

图2为本发明实施例提供的生成测试接口应用的入参类对象的方法具体例子一流程图;

图3为本发明实施例提供的生成测试接口应用的入参类对象的方法具体例子二流程图;

图4为本发明实施例提供的生成测试接口应用的入参类对象的装置结构示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。

本发明实施例为了在无专业人员的参与下,简单且正确地生成测试接口应用的入参类对象,设置入参类模型,在生成针对测试接口应用的入参类对象时,调用所设置的入参类模型,所述入参类模型根据所获取类文件中各个字段的字段类型赋予各个字段对应的字段值,生成入参类对象。更进一步地,在当确定所述字段的字段类型为自定义类型时,所述入参类模型将该字段实例化为一个入参类对象,且对该入参类对象所含有的所有字段值依次赋予到该字段中。这样,由于入参类模型的设置及调用,只需要编写测试用例中的类文件即可。

在按照上述方式得到入参类对象之后,再采用json转换工具,具体采用fastjson转换工具,将生成的入参类对象转换为json字符串样稿,存储,以使后续编译针对测试接口的测试用例时进行json转换工具的转换及调用。

采用本发明实施例生成入参类对象,考虑了其中自定义类型的字段赋值问题,特别是其中集合类型或反射类型的字段赋值,而不会出现背景技术那样直接采用json转换工具转换时对自定义类型的字段赋值错误的情况,所以最终得到的入参类对象更加准确,且简单容易实现。

在本发明实施例中,所述入参类模型是预先采用计算机脚本语言,比如java语言编写的一段可执行程序并存储,该段可执行程序能够读取类文件中的各个字段,并根据各个字段的字段类型进行对应字段的适应性处理。在调用该入参类模型时,采用计算机脚本语言反射机制进行的,具体是java语言反射机制进行,从而使得入参类模型在运行状态中,对于任意一个类文件中的各个字段,都能够知道这个字段的所有属性和方法,从而进行相应的处理。

图1为本发明实施例提供的生成测试接口应用的入参类对象的方法流程图,设置入参类模型,其具体步骤为:

步骤101、调用所设置的入参类模型;

步骤102、所述入参类模型根据获取类文件中各个字段的字段类型,分别判断各个字段的字段类型是否为自定义类型,如果是,则执行步骤103;如果否,则执行步骤104;

步骤103、所述入参类模型将自定义类型的字段实例化为一个入参类对象,将对该入参类对象所含有的所有字段值,依次赋予到该字段中;

步骤104、所述入参类模型将非自定义类型的字段赋予设置的对应字段值。

在该方法中,所述调用所设置的入参类模型采用计算机脚本语言反射机制进行的,具体是java语言反射方式机制的。

在该方法中,所述类文件中包括多个字段,每个字段中定义字段类型及字段值。

在该方法中,所述类文件中采用类名标识,并存储,通过获取传入所述类名的完整路径,以得到该类文件。所述类文件通常采用java语言的class类设置。

在该方法中,所述入参类模型将非自定义类型的字段直接赋予对应的字段值的过程为:

判断当前要判断的字段类型是否为枚举类,如果是,则对应的字段值为“0”;如果否,则进行后续判断;

判断是否为不可变量(string),如果是,则对应的字段值为“”,如果否,则进行后续判断;

判断是否为基础类,如果否,则是自定义类型,执行步骤103;如果是,则执行后续步骤;

确定是基础类下的整数类型,则对应的字段值为“0”;如果是基础类下的布尔类型,则对应的字段值为“真值(true)”;如果是基础类型下的字符类型,则对应的字段值为“a”;如果是基础类下的浮点数类型,则对应的字段值“0.0”。

在该方法中,所述入参类模型将自定义类型的字段实例化为一个入参类对象,且对该入参类对象所含有的所有字段值依次赋予到该字段中的过程为:

所述类文件采用java语言的class类设置,所述class类为是java语言类中的一种,包含所有创建类的类型信息,将class类下的所有自定义类型字段实例化为入参类对象,根据class类反射得到这个类所有的字段列表,依次对字段列表中的每个字段进行以下处理:

当字段类型为list时,创建一个list对象,利用反射方式,标记list对象的字段类型,为list的字段赋予所含有的字段值,将这个list对象设置在所述入参类对象中;

当字段类型为set时,创建一个set对象,利用反射方式,标记set对象的字段类型,为set对象的字段赋予所含有的字段值,将这个set对象设置在所述入参类对象中;

当字段类型为map时,创建一个map对象,利用反射方式,获取map对象中键值对集合(key,value)的字段类型,为map对象的字段赋予所含有的字段值,将这个set对象设置在所述入参类对象中;

当字段类型为其他自定义类型时,根据class类创建一个其他自定义类型对象,将所述其他自定义类型对象的类型及对应的字段值设置在所述入参类对象中。

该方法还包括:利用json转换工具将设置的入参类对象转换为json字符串返回到该类名的路径下。

以下具体说明本发明实施例。

图2为本发明实施例提供的生成测试接口应用的入参类对象的方法具体例子一流程图,其具体步骤为:

步骤201、输入类文件的类名对应的完整路径;

步骤202、根据所述完整路径得到这个类中的class类,根据所述class类的各个字段依次分别判断;

步骤203、判断是否为枚举类型,如果是,则执行步骤204;如果否,则执行步骤205;

步骤204、返回该字段的字段值为“0”;

步骤205、判断是否为变量类型(string),如果是,则执行步骤206;如果否,则执行步骤207;

步骤206、返回该字段的字段值为“”;

步骤207、判断是否为基础类型,如果是,则执行步骤208;如果否,则执行步骤213;

步骤208、判断字段的具体基础类型;

步骤209、判断为整数类型,返回该字段的字段值为“0”;

步骤210、判断为布尔类型,返回该字段的字段值为“true”;

步骤211、判断为布尔类型,返回该字段的字段值为“a”;

步骤212、判断为浮点数类型,返回该字段的字段值为“0.0”;

步骤213、判断为自定义类型,按照自定义类型的字段处理方式进行处理。

在所述方法中,按照自定义类型的字段处理方式进行处理的过程如图3所示,图3为本发明实施例提供的生成测试接口应用的入参类对象的方法具体例子二流程图,其具体步骤为:

步骤301、根据class类实例化一个入参类对象,根据class类反射得到这个类的所有字段列表,依次对每个字段进行处理;

步骤302、判断其中一个字段所述字段类型;

步骤303、当字段类型为list或集合(collection)时,创建一个list对象,利用反射方式,标记list对象的字段类型,为list的字段赋予所含有的字段值,将这个list对象设置在所述入参类对象中;

步骤304、当字段类型为set时,创建一个set对象,利用反射方式,标记set对象的字段类型,为set对象的字段赋予所含有的字段值,将这个set对象设置在所述入参类对象中;

步骤305、当字段类型为map时,创建一个map对象,利用反射方式,获取map对象中键值对集合(key,value)的字段类型,为map对象的字段赋予所含有的字段值,将这个set对象设置在所述入参类对象中;

步骤306、当字段类型为其他自定义类型时,根据class类创建一个其他自定义类型对象,将所述其他自定义类型对象的类型及对应的字段值设置在所述入参类对象中;

步骤307、利用json转换工具将设置的入参类对象转换为json字符串demo返回到该类文件的类名的路径下;

在转换时,按照转换要求,设置有转换空值的选项,以便转换出所有入参类对象中的所有字段值。

这样,在编译测试接口应用的测试用例时,就可以直接采用json转换工具将json字符串进行转换并调用。

举一个具体例子说明:

一个类文件a中包括了几个字段类型为基础类型的字段,并且包含了一个自定义字段类型的类b的入参类对象,具体为:

直接采用背景技术中的json转换工具,得到的字符串demo为:

采用本发明实施例提供的方法,得到的字符串demo为:

可以看出,虽然采用fastjson转换工具进行转换时,设置了转换空值的选择,但是对于字段类型为自定义类型时,则字段值始终都是一个空值,而无法赋予class类的字段值,而本发明实施例则可以赋予class类的具体字段值。

图4为本发明实施例提供的生成测试接口应用的入参类对象的装置结构示意图,包括:设置单元、调用单元及处理单元,其中,

设置单元,用于设置入参类模型;

调用单元,用于调用所设置的入参类模型及获取类文件中各个字段的字段类型;

处理单元,用于分别判断各个字段的字段类型是否为自定义类型,如果是,所述入参类模型将自定义类型的字段实例化为一个入参类对象,将对该入参类对象所含有的所有字段值,依次赋予到该字段中;如果否,则所述入参类模型将非自定义类型的字段赋予设置的对应字段值。

在本发明实施例中,所述调用单元,还用于调用所述设置的入参类模型是采用java语言反射方式进行的。

本发明实施例利用了java语言反射方式,根据类文件的类名完整路径,返回了这个类文件的json格式的入参类对象的字符串demo,其中包含了各种自定义类型的字段及字段赋值,实现了在无专业人员的参与下,简单且正确地生成测试接口应用的入参类对象。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1