一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

接口调用测试方法、装置、设备及存储介质与流程

2022-08-27 20:53:58 来源:中国专利 TAG:
1.本技术涉及到测试
技术领域
:,特别是涉及到一种接口调用测试方法、装置、设备及存储介质。
背景技术
::2.现有的接口调用测试工具,通过应用ip(网际互连协议) 端口 指定uri(统一资源标识符)的方式进入工具的页面,在该页面中获取应用的所有对外接口url(统一资源定位器),并自动组织入参结构,由用户自己录入入参,实时调用接口获取结果。但是这只是对开发结果的验证与调试,并不能帮助开发人员实时验证某个方法在指定入参情况下的测试结果。技术实现要素:3.本技术的主要目的为提供一种接口调用测试方法、装置、设备及存储介质,旨在解决目前的接口调用测试工具不能帮助开发人员实时验证某个方法在指定入参情况下的测试结果的技术问题。4.为了实现上述发明目的,本技术提出一种接口调用测试方法,所述方法包括:5.获取测试请求,其中,所述测试请求携带有源码绝对路径;6.从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据;7.根据所述源码类文件结构数据进行页面展示,得到目标页面;8.根据所述目标页面获取用户输入的待测试类名;9.根据所述类方法名列表和所述类方法入参结构数据进行所述待测试类名对应的入参配置界面展示;10.根据所述入参配置界面获取用户输入的待测试入参数据;11.根据所述源码类文件结构数据、所述待测试入参数据和所述待测试类名,对所述本地项目文件进行接口调用测试,得到接口调用测试结果。12.进一步的,所述从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据的步骤,包括:13.根据所述源码绝对路径,从预设的本地存储空间中获取项目文件,作为所述本地项目文件;14.根据所述本地项目文件中的每个java文件的路径确定类全限定名;15.对所述本地项目文件中的每个java文件进行层级结构解析,得到层级结构数据,并将各个所述类全限定名和各个所述层级结构数据作为所述源码类文件结构数据;16.根据所述源码类文件结构数据,对所述本地项目文件进行类方法的名称及入参结构解析,得到所述类方法名列表和所述类方法入参结构数据。17.进一步的,所述对所述本地项目文件中的每个java文件进行层级结构解析,得到层级结构数据,并将各个所述类全限定名和各个所述层级结构数据作为所述源码类文件结构数据的步骤,包括:18.获取所述本地项目文件对应的项目的根路径,作为目标根路径;19.根据所述目标根路径创建file对象,作为目标file对象;20.创建类结构对象,作为待处理类结构对象;21.将所述目标file对象和所述待处理类结构对象作为入参,并以递归的方式从所述本地项目文件中获取每个java文件,作为目标java文件;22.对所述目标java文件进行文件名、类名及类信息的解析,得到层级结构数据;23.将各个所述层级结构数据存储到所述待处理类结构对象中;24.将各个所述类全限定名和所述待处理类结构对象作为所述源码类文件结构数据。25.进一步的,所述根据所述源码类文件结构数据,对所述本地项目文件进行类方法的名称及入参结构解析,得到所述类方法名列表和所述类方法入参结构数据的步骤,包括:26.采用反射的方法,获取所述类全限定名对应的公共方法对象列表;27.根据所述公共方法对象列表中的每个方法对象获取方法名、入参类对象列表和形参名列表,作为待分析方法名、待分析入参类对象列表和待分析形参名列表;28.根据所述待分析入参类对象列表和所述待分析形参名列表,确定类对象输出类型和类属性信息列表;29.根据各个所述待分析方法名,确定所述类方法名列表;30.根据各个所述待分析方法名、各个所述待分析入参类对象列表、各个所述待分析形参名列表、各个所述类对象输出类型和各个所述类属性信息列表,确定所述类方法入参结构数据。31.进一步的,所述根据所述入参配置界面获取用户输入的待测试入参数据的步骤,包括:32.根据所述入参配置界面获取用户输入的入参数据,得到待处理入参数据;33.将所述待处理入参数据转换为json数据结构,得到所述待测试入参数据。34.进一步的,所述根据所述源码类文件结构数据、所述待测试入参数据和所述待测试类名,对所述本地项目文件进行接口调用测试,得到接口调用测试结果的步骤,包括:35.采用反射的方法,获取目标类全限定名对应的类对象,得到待分析类对象,其中,所述目标类全限定名是所述源码类文件结构数据中的与所述待测试类名对应的类全限定名;36.根据所述待分析类对象、所述待测试类名和与所述目标类全限定名,确定待分析方法对象和目标入参类型;37.根据所述目标入参类型,将所述待测试入参数据转换为入参对象,得到待处理入参对象;38.根据所述待分析类对象、所述待分析方法对象和所述待处理入参对象,对所述本地项目文件进行接口调用测试,得到所述接口调用测试结果。39.进一步的,所述根据所述待分析类对象、所述待测试类名和与所述目标类全限定名,确定待分析方法对象和目标入参类型的步骤,包括:40.根据所述目标类全限定名,从预设的spring容器中查找类实例,得到查找结果;41.若所述查找结果为成功,则将所述查找结果对应的类实例作为待分析类实例;42.若所述查找结果为失败,则根据所述待测试类名创建类实例,作为所述待分析类实例;43.根据所述待分析类实例和采用反射所述待测试类名对应的方法进行方法对象及入参类型的确定,得到所述待分析方法对象和所述目标入参类型。44.本技术还提出了一种接口调用测试装置,所述装置包括:45.请求获取模块,用于获取测试请求,其中,所述测试请求携带有源码绝对路径;46.分析模块,用于从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据;47.目标页面确定模块,用于根据所述源码类文件结构数据进行页面展示,得到目标页面;48.待测试类名确定模块,用于根据所述目标页面获取用户输入的待测试类名;49.入参配置界面展示模块,用于根据所述类方法名列表和所述类方法入参结构数据进行所述待测试类名对应的入参配置界面展示;50.待测试入参数据确定模块,用于根据所述入参配置界面获取用户输入的待测试入参数据;51.接口调用测试结果确定模块,用于根据所述源码类文件结构数据、所述待测试入参数据和所述待测试类名,对所述本地项目文件进行接口调用测试,得到接口调用测试结果。52.本技术还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。53.本技术还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。54.本技术的接口调用测试方法、装置、设备及存储介质,其中方法通过从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据;根据所述源码类文件结构数据进行页面展示,得到目标页面;根据所述目标页面获取用户输入的待测试类名;根据所述类方法名列表和所述类方法入参结构数据进行所述待测试类名对应的入参配置界面展示;根据所述入参配置界面获取用户输入的待测试入参数据;根据所述源码类文件结构数据、所述待测试入参数据和所述待测试类名,对所述本地项目文件进行接口调用测试,得到接口调用测试结果。从而实现了实时验证待测试类名在待测试入参数据情况下的测试结果,解决了目前的接口调用测试工具不能帮助开发人员实时验证某个方法在指定入参情况下的测试结果的技术问题,有利于开发人员实时检查当前编辑方法是否符合预期效果,加快了开发效率。附图说明55.图1为本技术一实施例的接口调用测试方法的流程示意图;56.图2为本技术一实施例的接口调用测试装置的结构示意框图;57.图3为本技术一实施例的计算机设备的结构示意框图。58.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式59.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。60.参照图1,本技术实施例中提供一种接口调用测试方法,所述方法包括:61.s1:获取测试请求,其中,所述测试请求携带有源码绝对路径;62.s2:从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据;63.s3:根据所述源码类文件结构数据进行页面展示,得到目标页面;64.s4:根据所述目标页面获取用户输入的待测试类名;65.s5:根据所述类方法名列表和所述类方法入参结构数据进行所述待测试类名对应的入参配置界面展示;66.s6:根据所述入参配置界面获取用户输入的待测试入参数据;67.s7:根据所述源码类文件结构数据、所述待测试入参数据和所述待测试类名,对所述本地项目文件进行接口调用测试,得到接口调用测试结果。68.本实施例实现了实时验证待测试类名在待测试入参数据情况下的测试结果,解决了目前的接口调用测试工具不能帮助开发人员实时验证某个方法在指定入参情况下的测试结果的技术问题,有利于开发人员实时检查当前编辑方法是否符合预期效果,加快了开发效率。69.可以理解的是,可以将实现本技术的程序打包成jar包,然后将该jar包提供给开发人员,开发人员将jar包安装在本地电脑中,即可通过jar包对本地电脑中的项目文件(软件开发项目的项目文件)进行接口调用测试。jar包包括测试前端和测试后端两部分,测试前端用于提供操作页面,测试前端与测试后端之间通信连接,测试后端用于对本地电脑中的项目文件进行解析并根据测试前端输入的数据对本地电脑中的项目文件进行接口调用测试。70.jar,是软件包文件格式,通常用于聚合大量的java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发java平台应用软件或库。71.对于s1,通过测试前端获取用户输入的测试请求。72.测试请求,是对本地电脑中的项目文件进行接口调用测试的请求。73.源码绝对路径,是需要测试的项目文件的绝对路径。74.对于s2,通过测试前端,响应测试请求调用测试后端;通过测试后端,从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据。75.其中,将com文件夹到java文件的路径即为该文件类对应的全限定名,作为类全限定名;通过递归的方式获取所述源码绝对路径对应的本地项目文件中所有java(面向对象的编程语言)文件,对每个java文件进行层级结构解析,得到层级结构数据;根据各个类全限定名和各个层级结构数据确定源码类文件结构数据;根据所述源码类文件结构数据,对所述本地项目文件进行类方法的名称及入参结构解析,将解析得到的各个类方法的名称作为类方法名列表,将解析得到的入参结构作为类方法入参结构数据。76.java文件,是.java格式的文件。77.com文件夹,是.com格式的文件夹。78.可以理解的是,类方法入参结构数据携带有类方法名。79.类方法名,也就是类方法的名称。80.比如,所述com文件夹到java文件的路径是com/xxx/yyy/zzz.java,该所述源码绝对路径对应的包路径则是“com.xxx.yyy”、类名是“zzz”、类全限定名为“com.xxx.yyy.zzz”。81.对于s3,通过测试前端,调用测试后端的接口获取所述源码类文件结构数据,将获取的所述源码类文件结构数据在页面中进行树形结构展示,将展示的页面作为目标页面。82.对于s4,用户在所述目标页面中选择类名,选择完成点击提交按钮;提交按钮被点击时,测试前端将所述目标页面中被选择的类名作为待测试类名。83.对于s5,通过测试前端,首先根据所述待测试类名,调用测试后端的接口获取所述类方法入参结构数据,然后根据所述类方法入参结构数据,按照入参结构和入参数据类型的方式进行入参配置界面展示。84.对于s6,用户在所述入参配置界面中录入入参数据,录入完成点击入参提交按钮;入参提交按钮被点击时,测试前端将根据所述入参配置界面中的入参数据生成待测试入参数据。85.对于s7,通过测试前端,将所述源码类文件结构数据中与所述待测试类名对应的类全限定名、所述待测试入参数据和所述待测试类名发送给测试后端;测试后端根据所述待测试入参数据,对所述本地项目文件中的与所述待测试类名对应的接口进行接口调用测试,将测试得到的数据作为接口调用测试结果。86.也就是说,接口调用测试结果,是实时验证待测试类名在待测试入参数据情况下的测试结果。87.可以理解的是,还可以基于spring框架,通过测试后端的后端控制器直接返回数据对象,spring框架会将数据对象转化为json(轻量级的数据交换格式)数据结构,得到已转化测试结果,将已转化测试结果发送给测试前端。测试前端可以将已转化测试结果进行界面展示。88.spring框架是一个开放源代码的j2ee应用程序框架,由rodjohnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweightcontainer)。89.在一个实施例中,上述从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据的步骤,包括:90.s21:根据所述源码绝对路径,从预设的本地存储空间中获取项目文件,作为所述本地项目文件;91.s22:根据所述本地项目文件中的每个java文件的路径确定类全限定名;92.s23:对所述本地项目文件中的每个java文件进行层级结构解析,得到层级结构数据,并将各个所述类全限定名和各个所述层级结构数据作为所述源码类文件结构数据;93.s24:根据所述源码类文件结构数据,对所述本地项目文件进行类方法的名称及入参结构解析,得到所述类方法名列表和所述类方法入参结构数据。94.本实施例通过对所述源码绝对路径对应的本地项目文件的自动化解析,从而实现了自动化确定源码类文件结构数据、类方法名列表和类方法入参结构数据,为实时验证待测试类名在待测试入参数据情况下的测试结果提供了基础。95.对于s21,将本地电脑的本地存储空间中,在所述源码绝对路径下的项目文件作为所述本地项目文件。96.对于s22,根据所述本地项目文件中的每个java文件的路径确定类全限定名,从而得到了每个java文件的类全限定名。97.对于s23,对所述本地项目文件中的每个java文件进行层级结构解析,将解析得到的数据作为所述层级结构数据,并将各个所述类全限定名和各个所述层级结构数据作为所述源码类文件结构数据,从而确定了本地项目文件对应的所述源码类文件结构数据。98.对于s24,通过反射的方式获取所述类全限定名下的公共方法对象列表;根据获取的公共方法对象列表确定方法名、入参类对象列表和形参名列表,根据获取的获取方法名、入参类对象列表和形参名列表判断类对象输出类型,并根据确定的类对象输出类型获取类属性信息列表,根据获取方法名、入参类对象列表、形参名列表和类属性信息列表确定所述类方法名列表和所述类方法入参结构数据。99.在一个实施例中,上述对所述本地项目文件中的每个java文件进行层级结构解析,得到层级结构数据,并将各个所述类全限定名和各个所述层级结构数据作为所述源码类文件结构数据的步骤,包括:100.s231:获取所述本地项目文件对应的项目的根路径,作为目标根路径;101.s232:根据所述目标根路径创建file对象,作为目标file对象;102.s233:创建类结构对象,作为待处理类结构对象;103.s234:将所述目标file对象和所述待处理类结构对象作为入参,并以递归的方式从所述本地项目文件中获取每个java文件,作为目标java文件;104.s235:对所述目标java文件进行文件名、类名及类信息的解析,得到层级结构数据;105.s236:将各个所述层级结构数据存储到所述待处理类结构对象中;106.s237:将各个所述类全限定名和所述待处理类结构对象作为所述源码类文件结构数据。107.本实施例通过将所述目标file对象和所述待处理类结构对象作为入参,并以递归的方式从所述本地项目文件中获取每个java文件,并对获取的java文件进行文件名、类名及类信息的解析,并将解析得到的数据填充到待处理类结构对象中,从而实现了对所述本地项目文件中的每个java文件进行层级结构解析,为实时验证待测试类名在待测试入参数据情况下的测试结果提供了基础。108.对于s231,采用class.getresource().getpath()方法,获取所述本地项目文件对应的项目的根路径,将获取的根路径作为目标根路径。109.class.getresource().getpath()方法,是获取根路径方法。110.对于s232,根据所述目标根路径创建file对象,也就是采用new.file(),创建一个file对象,并且将所述目标根路径作为创建的file对象的入参,将添加了入参的file对象作为目标file对象。111.new.file()是创建file对象的方法。112.file对象代表一个文件,用来读写文件信息;file对象继承了blob对象,或者说是一种特殊的blob对象,所有可以使用blob对象的场合都可以使用它。113.对于s233,采用预设的类结构对象创建方法,创建类结构对象,将创建的类结构对象作为待处理类结构对象。114.所述待处理类结构对象包括:文件名、类名及子文件信息列表。115.对于s234,将所述目标file对象和所述待处理类结构对象作为入参,以递归的方式从所述本地项目文件中获取每个java文件,将获取的每个java文件作为一个目标java文件。116.对于s235,首先对所述目标java文件进行文件名获取,然后从获取的文件名中获取类名,最后根据获取的类名,采用反射的方式获取类信息,将获取的文件名、类名及类信息作为层级结构数据。117.对于s236,将各个所述层级结构数据的文件名存储到所述待处理类结构对象的文件名中,将各个所述层级结构数据的类名存储到所述待处理类结构对象的类名中,将各个所述层级结构数据的类信息存储到所述待处理类结构对象的子文件信息列表中;118.对于s237,将各个所述类全限定名和完成各个所述层级结构数据存储的所述待处理类结构对象组合成所述源码类文件结构数据。从而得到了树状结构的类文件信息。119.也就是说,所述源码类文件结构数据是树状结构的类文件信息。120.在一个实施例中,上述根据所述源码类文件结构数据,对所述本地项目文件进行类方法的名称及入参结构解析,得到所述类方法名列表和所述类方法入参结构数据的步骤,包括:121.s241:采用反射的方法,获取所述类全限定名对应的公共方法对象列表;122.s242:根据所述公共方法对象列表中的每个方法对象获取方法名、入参类对象列表和形参名列表,作为待分析方法名、待分析入参类对象列表和待分析形参名列表;123.s243:根据所述待分析入参类对象列表和所述待分析形参名列表,确定类对象输出类型和类属性信息列表;124.s244:根据各个所述待分析方法名,确定所述类方法名列表;125.s245:根据各个所述待分析方法名、各个所述待分析入参类对象列表、各个所述待分析形参名列表、各个所述类对象输出类型和各个所述类属性信息列表,确定所述类方法入参结构数据。126.本实施例首先根据所述公共方法对象列表中的每个方法对象获取方法名、入参类对象列表和形参名列表,然后根据各个所述待分析方法名、各个所述待分析入参类对象列表、各个所述待分析形参名列表、各个所述类对象输出类型和各个所述类属性信息列表确定类方法入参结构数据,为实时验证待测试类名在待测试入参数据情况下的测试结果提供了基础。127.对于s241,采用class.forname(“类全限定名”).getmethods(),即可获取类全限定名下的所有公共方法对象的列表,将获取的列表作为一个公共方法对象列表。128.class.forname().getmethods(),是采用反射方式获取公共方法对象的列表的方法。129.对于s242,根据所述公共方法对象列表中的每个方法对象,采用“method.getname()”获取方法名,采用“method.getparametertypes()”获取入参类对象列表,采用“localvariabletableparameternamediscovererlocalvariabletableparameternamediscoverer=newlocalvariabletableparameternamediscoverer();string[]paramnames=localvariabletableparameternamediscoverer.getparameternames(method)”获取形参名列表,将获取的方法名作为待分析方法名,将获取的入参类对象列表作为待分析入参类对象列表,将获取的形参名列表作为待分析形参名列表。[0130]method.getname()是获取方法名的方法,“method.getparametertypes()”是获取入参类对象列表的方法,“localvariabletableparameternamediscovererlocalvariabletableparameternamediscoverer=newlocalvariabletableparameternamediscoverer();string[]paramnames=localvariabletableparameternamediscoverer.getparameternames(method)”是获取形参名列表的方法。[0131]对于s243,类对象输出类型是入参类的类型。类对象输出类型包括:基础类型、数组类型、集合类型、map类型、dto(数据传输对象)类型。[0132]map,是k-v类型的数据。[0133]其中,入参类对象.getsimplename().tolowercase()等于java八个基础数据类型,以及入参对象继承string(字符串)、number(数字)、date(时间)抽象类,则确定所述待分析方法名对应的类对象输出类型为基础类型;入参类对象.isarray()为true即认定为数组对象,则确定所述待分析方法名对应的类对象输出类型为数组类型;入参类对象继承collection接口,即认定为集合对象,则确定所述待分析方法名对应的类对象输出类型为集合类型;入参类对象继承map接口,即认定为map对象,则确定所述待分析方法名对应的类对象输出类型为map类型;入参类对象存在get开头方法名,如getxxx()方法存在自定义属性xxx,则认定为dto类型对象,则确定所述待分析方法名对应的类对象输出类型为dto类型;其中,入参类对象是所述待分析入参类对象列表中的入参类对象。[0134]入参类对象是入参的类对象。[0135]其中,根据所述待分析入参类对象列表中的入参类对象及类对象输出类型,从所述本地项目文件中获取类属性信息列表。[0136]对于s244,将各个所述待分析方法名作为所述类方法名列表。[0137]对于s245,将各个所述待分析方法名、各个所述待分析入参类对象列表、各个所述待分析形参名列表、各个所述类对象输出类型和各个所述类属性信息列表进行结构数据组合,将组合得到的结构数据作为所述类方法入参结构数据。[0138]在一个实施例中,上述根据所述入参配置界面获取用户输入的待测试入参数据的步骤,包括:[0139]s61:根据所述入参配置界面获取用户输入的入参数据,得到待处理入参数据;[0140]s62:将所述待处理入参数据转换为json数据结构,得到所述待测试入参数据。[0141]本实施例将所述待处理入参数据转换为json数据结构得到所述待测试入参数据,为实时验证待测试类名在待测试入参数据情况下的测试结果提供了基础。[0142]对于s61,用户可以在所述入参配置界面中录入入参数据,录入完成点击入参提交按钮;入参提交按钮被点击时,测试前端将根据所述入参配置界面中的入参数据生成待处理入参数据。[0143]对于s62,测试前端将所述待处理入参数据转换为json数据结构,将转换得到的数据作为所述待测试入参数据。从而使所述待测试入参数据称为json字符串。[0144]在一个实施例中,上述根据所述源码类文件结构数据、所述待测试入参数据和所述待测试类名,对所述本地项目文件进行接口调用测试,得到接口调用测试结果的步骤,包括:[0145]s71:采用反射的方法,获取目标类全限定名对应的类对象,得到待分析类对象,其中,所述目标类全限定名是所述源码类文件结构数据中的与所述待测试类名对应的类全限定名;[0146]s72:根据所述待分析类对象、所述待测试类名和与所述目标类全限定名,确定待分析方法对象和目标入参类型;[0147]s73:根据所述目标入参类型,将所述待测试入参数据转换为入参对象,得到待处理入参对象;[0148]s74:根据所述待分析类对象、所述待分析方法对象和所述待处理入参对象,对所述本地项目文件进行接口调用测试,得到所述接口调用测试结果。[0149]本实施例通过采用反射的方法获取与所述待测试类名对应的类全限定名对应的类对象,其次根据所述待分析类对象、所述待测试类名和与所述目标类全限定名,确定待分析方法对象和目标入参类型,然后根据所述目标入参类型,将所述待测试入参数据转换为入参对象,最后根据所述待分析类对象、所述待分析方法对象和所述待处理入参对象,对所述本地项目文件进行接口调用测试,从而实现了实时验证待测试类名在待测试入参数据情况下的测试结果,解决了目前的接口调用测试工具不能帮助开发人员实时验证某个方法在指定入参情况下的测试结果的技术问题,有利于开发人员实时检查当前编辑方法是否符合预期效果,加快了开发效率。[0150]对于s71,将所述源码类文件结构数据中的与所述待测试类名对应的类全限定名作为所述目标类全限定名;采用反射的方法class.forname(“目标类全限定名”),获取目标类全限定名对应的类对象,将获取的类对象作为待分析类对象。[0151]对于s72,根据所述待分析类对象、所述待测试类名和与所述目标类全限定名,确定待分析方法对象,以及将所述待分析方法对象对应的入参类型作为目标入参类型。[0152]对于s73,根据所述目标入参类型对应的转换方法,将所述待测试入参数据转换为入参对象,将转换得到的入参对象作为待处理入参对象。[0153]其中,所述目标入参类型对应的转换方法为,json.parseobject(“所述待测试入参数据”,入参对象)。[0154]对于s74,采用所述待分析方法对象的invoke方法,根据所述待分析类对象、所述待分析方法对象和所述待处理入参对象,对所述本地项目文件进行接口调用测试,将测试得到的结果作为所述接口调用测试结果。[0155]invoke方法,是jspfragment最重要的方法,利用这个方法可以控制是否执行和输出标签体的内容、是否迭代执行标签体的内容或对标签体的执行结果进行修改后再输出。[0156]其中,所述待分析方法对象.invoke(所述待分析类对象,所述待处理入参对象)。[0157]在一个实施例中,上述根据所述待分析类对象、所述待测试类名和与所述目标类全限定名,确定待分析方法对象和目标入参类型的步骤,包括:[0158]s721:根据所述目标类全限定名,从预设的spring容器中查找类实例,得到查找结果;[0159]s722:若所述查找结果为成功,则将所述查找结果对应的类实例作为待分析类实例;[0160]s723:若所述查找结果为失败,则根据所述待测试类名创建类实例,作为所述待分析类实例;[0161]s724:根据所述待分析类实例和采用反射所述待测试类名对应的方法进行方法对象及入参类型的确定,得到所述待分析方法对象和所述目标入参类型。[0162]本实施例基于spring容器,根据所述待分析类对象、所述待测试类名和与所述目标类全限定名,确定待分析方法对象和目标入参类型,为实时验证待测试类名在待测试入参数据情况下的测试结果提供了基础。[0163]对于s721,根据所述目标类全限定名,从预设的spring容器中查找类实例,若查找到类实例,则所述查找结果为成功,若没有查找到类实例,则所述查找结果为失败。[0164]spring容器,是spring框架的核心,是用来管理对象的。[0165]对于s722,若所述查找结果为成功,则将所述查找结果对应的类实例作为待分析类实例,为确定方法对象及入参类型提供了基础。[0166]对于s723,若所述查找结果为失败,则根据所述待测试类名创建类实例,将创建的类实例作为所述待分析类实例。[0167]对于s724,通过采用反射所述待测试类名对应的方法,根据所述待分析类实例确定实例化的方法对象,将确定的方法对象作为所述待分析方法对象,根据所述待分析方法对象中的入参,确定入参类型,将确定的入参类型作为所述目标入参类型。[0168]参照图2,本技术还提出了一种接口调用测试装置,所述装置包括:[0169]请求获取模块100,用于获取测试请求,其中,所述测试请求携带有源码绝对路径;[0170]分析模块200,用于从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据;[0171]目标页面确定模块300,用于根据所述源码类文件结构数据进行页面展示,得到目标页面;[0172]待测试类名确定模块400,用于根据所述目标页面获取用户输入的待测试类名;[0173]入参配置界面展示模块500,用于根据所述类方法名列表和所述类方法入参结构数据进行所述待测试类名对应的入参配置界面展示;[0174]待测试入参数据确定模块600,用于根据所述入参配置界面获取用户输入的待测试入参数据;[0175]接口调用测试结果确定模块700,用于根据所述源码类文件结构数据、所述待测试入参数据和所述待测试类名,对所述本地项目文件进行接口调用测试,得到接口调用测试结果。[0176]本实施例实现了实时验证待测试类名在待测试入参数据情况下的测试结果,解决了目前的接口调用测试工具不能帮助开发人员实时验证某个方法在指定入参情况下的测试结果的技术问题,有利于开发人员实时检查当前编辑方法是否符合预期效果,加快了开发效率。[0177]参照图3,本技术实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存接口调用测试方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口调用测试方法。所述接口调用测试方法,包括:获取测试请求,其中,所述测试请求携带有源码绝对路径;从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据;根据所述源码类文件结构数据进行页面展示,得到目标页面;根据所述目标页面获取用户输入的待测试类名;根据所述类方法名列表和所述类方法入参结构数据进行所述待测试类名对应的入参配置界面展示;根据所述入参配置界面获取用户输入的待测试入参数据;根据所述源码类文件结构数据、所述待测试入参数据和所述待测试类名,对所述本地项目文件进行接口调用测试,得到接口调用测试结果。[0178]本实施例实现了实时验证待测试类名在待测试入参数据情况下的测试结果,解决了目前的接口调用测试工具不能帮助开发人员实时验证某个方法在指定入参情况下的测试结果的技术问题,有利于开发人员实时检查当前编辑方法是否符合预期效果,加快了开发效率。[0179]本技术一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种接口调用测试方法,包括步骤:获取测试请求,其中,所述测试请求携带有源码绝对路径;从所述源码绝对路径对应的本地项目文件中确定源码类文件结构数据、类方法名列表和类方法入参结构数据;根据所述源码类文件结构数据进行页面展示,得到目标页面;根据所述目标页面获取用户输入的待测试类名;根据所述类方法名列表和所述类方法入参结构数据进行所述待测试类名对应的入参配置界面展示;根据所述入参配置界面获取用户输入的待测试入参数据;根据所述源码类文件结构数据、所述待测试入参数据和所述待测试类名,对所述本地项目文件进行接口调用测试,得到接口调用测试结果。[0180]上述执行的接口调用测试方法,实现了实时验证待测试类名在待测试入参数据情况下的测试结果,解决了目前的接口调用测试工具不能帮助开发人员实时验证某个方法在指定入参情况下的测试结果的技术问题,有利于开发人员实时检查当前编辑方法是否符合预期效果,加快了开发效率。[0181]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。[0182]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。[0183]以上所述仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本技术的专利保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献