CN108089972A - 接口测试方法及装置 - Google Patents

接口测试方法及装置 Download PDF

Info

Publication number
CN108089972A
CN108089972A CN201611036109.6A CN201611036109A CN108089972A CN 108089972 A CN108089972 A CN 108089972A CN 201611036109 A CN201611036109 A CN 201611036109A CN 108089972 A CN108089972 A CN 108089972A
Authority
CN
China
Prior art keywords
interface
class
test data
proxy
test
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.)
Granted
Application number
CN201611036109.6A
Other languages
English (en)
Other versions
CN108089972B (zh
Inventor
赵亮
王海林
张琪
乔杰
王余烈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201611036109.6A priority Critical patent/CN108089972B/zh
Publication of CN108089972A publication Critical patent/CN108089972A/zh
Application granted granted Critical
Publication of CN108089972B publication Critical patent/CN108089972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test 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

接口测试方法及装置
技术领域
本公开涉及软件工程技术领域,具体而言,涉及一种接口测试方法及接口测试装置。
背景技术
随着软件的规模和复杂性日益增加,对于软件测试的要求越来越严格。接口测试是软件测试的重要组成部分,只有确保接口的稳定性,才能确保整个软件运行的稳定性。
现有的接口测试中,不同业务类型的服务通常会采用不同的接口协议来实现业务需要,例如需要发送二进制数据时采用Hessian协议,需要在运行在不同机器上的不同应用之间交换数据或集成数据时采用Web Service技术,需要通过高性能的RPC实现服务的输入和输出并且支持负载均衡时采用dubbo协议。然而,对于测试人员来说,只关心服务接口是否能按预期工作。
由于不同业务的接口通常具有不同的协议类型,每个接口的测试都要通过对应协议方式编写代码调用该接口,这不仅需要测试人员掌握较多的开发知识,而且导致大量无效工作。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种接口测试方法及接口测试装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本公开的一个方面,提供了第一接口测试方法,包括:
接收一浏览器发送的接口信息和测试数据,其中,所述接口信息包括类标识符;
校验所述测试数据和与所述接口信息对应的接口是否匹配;
在所述测试数据和所述接口匹配时,根据所述类标识符在容器缓存中查找与所述类标识符对应的类实例的代理类,其中,所述容器缓存中存储有和所述类实例一一对应的所述代理类;以及
通过所述代理类来获取所述类实例的方法,并结合所述测试数据来执行所述类实例的方法。
本公开的一种示例性实施例中,所述第一接口测试方法还包括:在所述测试数据和与所述接口信息对应的接口不匹配时,向所述浏览器返回对应的错误信息。
本公开的一种示例性实施例中,所述在容器缓存中查找与所述接口对应的类实例的代理类包括:在不存在与所述接口对应的类实例的代理类的情况下,根据所述类实例创建所述代理类,并将所述代理类添加到所述容器缓存中。
本公开的一种示例性实施例中,所述获取所述类实例的方法包括:通过反射方式获取所述类实例的方法列表中的方法对象,并将每个方法对象存储在所述代理类的缓存中。
本公开的一种示例性实施例中,所述执行所述类实例的方法包括:通过反射方式执行存储在所述代理类的缓存中的各所述方法对象。
根据本公开的另一方面,还提供了第二接口测试方法,包括:
接收用户输入的接口信息和测试数据,其中,所述接口信息包括接口服务IP集合;
对所述接口信息和所述测试数据进行整合;以及
基于所述接口服务IP集合中的各接口服务IP向多个服务器依次请求执行所述第一接口测试方法。
根据本公开的又一方面,提供了第一接口测试装置,包括:
接收单元,用于接收一浏览器发送的接口信息和测试数据,其中,所述接口信息包括类标识符;
校验单元,用于校验所述测试数据和与所述接口信息对应的接口是否匹配;
代理类查找单元,用于在所述测试数据和所述接口匹配时,根据所述类标识符在容器缓存中查找与所述类标识符对应的类实例的代理类,其中,所述容器缓存中存储有和所述类实例一一对应的所述代理类;以及
执行单元,用于通过所述代理类来获取所述类实例的方法,并结合所述测试数据来执行所述类实例的方法。
本公开的一种示例性实施例中,所述第一接口测试装置还包括:错误信息返回单元,用于在所述测试数据和与所述接口信息对应的接口不匹配时,向所述浏览器返回对应的错误信息。
本公开的一种示例性实施例中,所述代理类查找单元包括:代理类创建单元,用于在不存在与所述接口对应的类实例的代理类的情况下,根据所述类实例创建所述代理类,并将所述代理类添加到所述容器缓存中。
本公开的一种示例性实施例中,所述执行单元包括:方法对象获取单元,用于通过反射方式获取所述类实例的方法列表中的方法对象,并将每个方法对象存储在所述代理类的缓存中。
本公开的一种示例性实施例中,所述执行单元包括:方法对象执行单元,用于通过反射方式执行存储在所述代理类的缓存中的各所述方法对象。
根据本公开的再一方面,还提供了第二接口测试装置,包括:
输入单元,用于接收用户输入的接口信息和测试数据,其中,所述接口信息包括接口服务IP集合;
整合单元,用于对所述接口信息和所述测试数据进行整合;以及
服务请求单元,用于基于所述接口服务IP集合中的各个接口服务IP来向多个服务器依次请求执行所述第一接口测试方法。
本公开的一种示例性实施例中的接口测试方法及接口测试装置,接收从浏览器发送的接口信息和测试数据,根据接口信息中的类标识符来在容器缓存中查找与类标识符对应的类实例的代理类,通过代理类获取并执行类实例的方法。一方面,通过浏览器与服务器进行交互,测试人员只需要在浏览器中填写必要的接口信息和测试数据,就能执行服务器中的接口方法,不需要编写大量的请求代码,对测试人员的知识技能要求较低;另一方面,通过将代理类存储在容器缓存中,能够重复使用代理类来获取并执行类实例的方法,方便了接口服务的调用,提高了测试效率;再一方面,由于没有通过接口协议的方式调用接口服务,则不需要考虑复杂的接口协议,更具有通用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
通过参照附图来详细描述其示例实施例,本公开的上述和其它特征及优点将变得更加明显。
图1示出了一种通过特定客户端的接口测试方法的示意图;
图2示出了根据本公开一示例性实施例的第一接口测试方法的流程图;
图3示出了根据本公开另一示例性实施例的第二接口测试方法的流程图;
图4示出了根据本公开一示例性实施例的第一接口测试装置的框图;以及
图5示出了根据本公开另一示例性实施例的第二接口测试装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、材料、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
鉴于协议本身复杂性太高,通过协议直接调用接口极其复杂。在一种接口测试方法中,将一个协议类型的接口关联到开发好的特定客户端上。该客户端将调用者的请求转换为接口协议类型格式后转送至接口服务,并把接口服务的响应结果转送给调用者。用户或测试者通过该特定客户端进行目标的接口服务测试。图1示出了通过特定客户端的接口测试方法的示意图。
如图1所示,用户或测试者可以认为是服务消费者,服务消费者为调用远程服务的服务消费方;特定客户端可以认为是注册中心,注册中心为服务注册与发现的注册中心;接口服务可以认为是服务提供者,服务提供者为暴露服务的服务提供方;容器缓存可以认为是管理对象的容器;监控中心为统计服务的调用次数和调用时间的监控中心。
用户或测试者(服务消费者)想要调用接口服务(服务提供者)时,首先需要到特定客户端(注册中心)订阅自己所需的服务。接下来,该客户端向用户或测试者返回接口服务地址。然后,用户或测试者通过返回的接口服务地址请求接口服务。
在图1所示的接口测试方法中,需要测试人员针对不同接口服务编写专业代码来实现请求过程,因此需要测试人员掌握较多的开发知识。即使测试人员掌握了较多的开发知识,也需要针对不同协议类型接口编写不同的代码来进行接口测试,导致大量无效工作。此外,在这种接口测试方法中,返回的接口服务地址是基于负载均衡算法得出的性能最优的地址,但是不一定是测试需要的地址。
基于上述内容,本示例实施例中首先提供了第一接口测试方法。参考图2中所示,第一接口测试方法包括以下步骤:
步骤S210.接收一浏览器发送的接口信息和测试数据,其中,所述接口信息包括类标识符;
步骤S220.校验所述测试数据和与所述接口信息对应的接口是否匹配;
步骤S230.在所述测试数据和所述接口匹配时,根据所述类标识符在容器缓存中查找与所述类标识符对应的类实例的代理类,其中,所述容器缓存中存储有和所述类实例一一对应的所述代理类;以及
步骤S240.通过所述代理类来获取所述类实例的方法,并结合所述测试数据来执行所述类实例的方法。
根据本示例实施例中的第一接口测试方法,一方面,通过浏览器与服务器进行交互,测试人员只需要在浏览器中填写必要的接口信息和测试数据,就能执行服务器中的接口方法,不需要编写大量的请求代码,对测试人员的知识技能要求较低;另一方面,通过将代理类存储在容器缓存中,能够重复使用代理类来获取并执行类实例的方法,方便了接口服务的调用,提高了测试效率;再一方面,由于没有通过接口协议的方式调用接口服务,则不需要考虑复杂的接口协议,更具有通用性。
下面,将对本示例实施例中的第一接口测试方法进行进一步的说明。
在步骤S210中,接收一浏览器发送的接口信息和测试数据,其中,所述接口信息包括类标识符。
在本示例性实施例中,通过浏览器向测试人员提供输入接口信息和测试数据的界面,测试人员只需要在浏览器中填写必要的接口信息和测试数据,提交后浏览器会将接口信息和测试数据组织后发送至服务器端,不需要通过特定客户端来调用接口服务。
在本示例性实施例中,在Spring框架下的类一般为Java Bean,则在Spring框架下所述类标识符为Java Bean的标识符即Bean ID,但是本公开的示例性实施例中的类标识符不限于此,例如,在Rails框架下,类标识符还可以为用Ruby语言编写的类的标识符,此外,类标识符还可以为应用本公开的发明构思的各种框架下的类标识符,这同样属于本公开的保护范围。当然,在本公开的其他示例性实施例中,所述接口信息还可以包括方法名和接口服务IP集合等其他内容,本示例性实施例中对此不做特殊限定。
接下来,在步骤S220中,校验所述测试数据和与所述接口信息对应的接口是否匹配。
在本示例性实施例中,在接口测试之前要对测试数据的格式进行检测,以校验测试数据格式与接口方法的参数格式是否匹配,如果测试数据的格式与接口方法的参数格式相匹配,则进行下一步骤,否则就向浏览器返回对应的错误信息。例如,如果测试数据格式都是int型,接口方法参数格式也都是int型,则判断测试数据格式与接口方法参数格式匹配;否则,向浏览器返回数据格式不匹配的错误信息。
接下来,在步骤S230中,在所述测试数据和所述接口匹配时,根据所述类标识符在容器缓存中查找与所述类标识符对应的类实例的代理类,其中,所述容器缓存中存储有和所述类实例一一对应的所述代理类。
在本示例性实施例中,所述容器缓存可以为基于Spring框架的容器缓存,例如BeanFactory,但是本公开的示例性实施例中的容器缓存不限于此,例如容器缓存还可以为基于Rails框架的容器缓存,这也属于本公开的保护范围。
代理类是为其他对象提供一种代理以控制对其他对象的访问的一种类。在本示例性实施例中,在Spring框架下,代理类可以通过Java JDK中自带的库来实现,例如通过java.lang.reflect库中的Proxy类和InvocationHandler类来实现,但是本公开的示例实施例中的代理类的实现方式不限于此,例如还可以通过CGLib(Code Generation Library)库来实现。此外,在其他框架下如Rails框架下,也可以通过反射方式来实现代理类,这也属于本公开的保护范围。
此外,在本示例性实施例中,在不存在与所述接口对应的类实例的代理类的情况下,根据所述类实例创建所述代理类,并将所述代理类添加到所述容器缓存中。在不存在与所述接口对应的类实例的代理类时,可以通过反射API获取与接口对应的Bean实例,然后根据该Bean实例创建相应的代理类,并将所创建的代理类添加到容器缓存中。通过将代理类添加到容器缓存中,可以重复使用代理类以提高测试效率。
进一步地,在本示例性实施例中,在Spring框架下,在初始化时会对项目中的所有类进行实例化,生成对应的类实例(Bean实例)。例如,Spring框架在初始化时,首先读取项目的配置文件,然后将读取到的代表一个Bean的信息放到一个对象中。这个对象的类就是BeanDefinition(包括ID、className和一个装有PropertyDefinition对象的List),还有一个辅助类是属性值对象的类PropertyDefinitin。这两个类都有getter方法和setter方法,Spring框架可以通过getter方法来查询和获取Bean实例。
接下来,在步骤S240中,通过所述代理类来获取所述类实例的方法,并结合所述测试数据来执行所述类实例的方法。
在本示例性实施例中,在Spring框架下,代理类可以通过java反射API查询到所述类实例的方法列表,获取方法列表中的方法对象,并将每个方法对象存储在代理类的缓存中。
然后,可以通过java反射API中的invoke方法结合测试数据执行存储在代理类的缓存中的各方法对象。在java反射API中,invoke方法可以动态执行指定的方法对象。因此,在本示例实施例中,可以根据类标识符在容器缓存中查找到与类标识符对应的类实例的代理类,通过代理类获取并执行类实例的方法。
此外,在其他框架如Rails框架下,也可以通过反射方式获取并执行类实例的方法,这同样属于本公开的保护范围。
在本公开的另一示例性实施例中,还提供了第二接口测试方法。图3示出了根据本公开另一示例性实施例的第二接口测试方法的流程图。如图3所示,第二接口测试方法包括以下步骤:
步骤S310.接收用户输入的接口信息和测试数据,其中,所述接口信息包括接口服务IP集合;
步骤S320.对所述接口信息和所述测试数据进行整合;以及
步骤S330.基于所述接口服务IP集合中的各接口服务IP向多个服务器依次请求执行所述第一接口测试方法。
根据本公开的示例性实施例的第二接口测试方法,一方面,通过浏览器来接收用户输入的接口信息和测试数据,测试人员只需要在浏览器中填写必要的接口信息和测试数据,就能执行服务器中的接口方法,不需要编写大量的请求代码,对测试人员的知识技能要求较低;另一方面,根据测试人员输入的接口服务IP集合中的各接口服务IP向指定服务器请求执行第一接口测试方法,能够根据测试需要针对特定IP的服务进行请求调用来执行第一接口测试方法。
下面,将对本示例实施例中的第二接口测试方法进行进一步的说明。
在步骤S130中,接收用户输入的接口信息和测试数据,其中,所述接口信息包括接口服务IP集合。
在本示例性实施例中,由于通过浏览器接收用户输入的接口信息和测试数据,则测试人员只需要了解被测试接口服务的基本信息和对应参数,对测试人员知识技能要求较低。
此外,在本示例性实施例中,所述接口信息还可以包括类标识符和方法名等。
接下来,在步骤S320中,对所述接口信息和所述测试数据进行整合。
在本示例性实施例中,浏览器接收到用户输入的接口信息和测试数据之后,对接口信息和测试数据进行整合,然后可以通过HTTP方式将经整合的接口信息和测试数据发送至服务器端。
接下来,在步骤S330中,基于所述接口服务IP集合中的各接口服务IP向多个服务器依次请求执行第一接口测试方法。
在本示例性实施例中,可以根据测试人员输入的接口服务IP集合中的各接口服务IP,通过HTTTP方式依次向指定服务器请求执行第一接口测试方法,从而可以根据测试需要针对特定IP的服务进行调用。
此外,在本示例性实施例中,第二接口测试方法还可以包括:显示从所述多个服务器返回的第一接口测试方法的执行结果。通过在浏览器上显示第一接口测试方法的执行结果,测试人员可以方便直观地查看接口测试的测试结果,便于控制接口测试过程。
需要说明的是,尽管在附图中以特定顺序描述了本公开中的第一接口测试方法和第二接口测试方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
本公开的示例性实施例中,还提供了第一接口测试装置400。参照图4所示,第一接口测试装置400包括:接收单元410、校验单元420、代理类查找单元430以及执行单元440。其中:
接收单元410用于接收一浏览器发送的接口信息和测试数据,其中,所述接口信息包括类标识符。
校验单元420用于校验所述测试数据和与所述接口信息对应的接口是否匹配。
代理类查找单元430用于在所述测试数据和所述接口匹配时,根据所述类标识符在容器缓存中查找与所述类标识符对应的类实例的代理类,其中,所述容器缓存中存储有和所述类实例一一对应的所述代理类。
执行单元440用于通过所述代理类来获取所述类实例的方法,并结合所述测试数据来执行所述类实例的方法。
在本示例性实施例中,第一接口测试装置400还可以包括:错误信息返回单元,用于在所述测试数据和与所述接口信息对应的接口不匹配时,向所述浏览器返回对应的错误信息。
此外,在本示例性实施例中,代理类查找单元430可以包括:代理类创建单元,用于在不存在与所述接口对应的类实例的代理类的情况下,根据所述类实例创建所述代理类,并将所述代理类添加到所述容器缓存中。
此外,在本示例性实施例中,执行单元440可以包括:方法对象获取单元,用于通过反射方式获取所述类实例的方法列表中的方法对象,并将每个方法对象存储在所述代理类的缓存中。
进一步地,执行单元440还可以包括:方法对象执行单元,用于通过反射方式执行存储在所述代理类的缓存中的各所述方法对象。
由于本公开的示例实施例中的第一接口测试装置400的各个功能模块与上述第一接口测试方法的示例实施例的步骤对应,因此在此不再赘述。
在本公开的示例实施例中,还提供了第二接口测试装置。参照图5所示,第二接口测试装置500包括:输入单元510、整合单元520以及服务请求单元530。其中:
输入单元510用于接收用户输入的接口信息和测试数据,其中,所述接口信息包括接口服务IP集合;
整合单元520用于对所述接口信息和所述测试数据进行整合;以及
服务请求单元530用于基于所述接口服务IP集合中的各接口服务IP来向多个服务器依次请求执行第一接口测试方法。
由于本公开的示例实施例中的第二接口测试装置500的各个功能模块与上述第二接口测试方法的示例实施例的步骤对应,因此在此不再赘述。
应当注意,尽管在上文详细描述中提及了第一接口测试装置和第二接口测试装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (12)

1.一种接口测试方法,其特征在于,包括:
接收一浏览器发送的接口信息和测试数据,其中,所述接口信息包括类标识符;
校验所述测试数据和与所述接口信息对应的接口是否匹配;
在所述测试数据和所述接口匹配时,根据所述类标识符在容器缓存中查找与所述类标识符对应的类实例的代理类,其中,所述容器缓存中存储有和所述类实例一一对应的所述代理类;以及
通过所述代理类来获取所述类实例的方法,并结合所述测试数据来执行所述类实例的方法。
2.根据权利要求1所述的接口测试方法,其特征在于,所述接口测试方法还包括:
在所述测试数据和与所述接口信息对应的接口不匹配时,向所述浏览器返回对应的错误信息。
3.根据权利要求1所述的接口测试方法,其特征在于,所述在容器缓存中查找与所述接口对应的类实例的代理类包括:
在不存在与所述接口对应的类实例的代理类的情况下,根据所述类实例创建所述代理类,并将所述代理类添加到所述容器缓存中。
4.根据权利要求1所述的接口测试方法,其特征在于,所述获取所述类实例的方法包括:
通过反射方式获取所述类实例的方法列表中的方法对象,并将每个方法对象存储在所述代理类的缓存中。
5.根据权利要求4所述的接口测试方法,其特征在于,所述执行所述类实例的方法包括:
通过反射方式执行存储在所述代理类的缓存中的各所述方法对象。
6.一种接口测试方法,其特征在于,包括:
接收用户输入的接口信息和测试数据,其中,所述接口信息包括接口服务IP集合;
对所述接口信息和所述测试数据进行整合;以及
基于所述接口服务IP集合中的各接口服务IP向多个服务器依次请求执行根据权利要求1至5中任一项所述的接口测试方法。
7.一种接口测试装置,其特征在于,包括:
接收单元,用于接收一浏览器发送的接口信息和测试数据,其中,所述接口信息包括类标识符;
校验单元,用于校验所述测试数据和与所述接口信息对应的接口是否匹配;
代理类查找单元,用于在所述测试数据和所述接口匹配时,根据所述类标识符在容器缓存中查找与所述类标识符对应的类实例的代理类,其中,所述容器缓存中存储有和所述类实例一一对应的所述代理类;以及
执行单元,用于通过所述代理类来获取所述类实例的方法,并结合所述测试数据来执行所述类实例的方法。
8.根据权利要求7所述的接口测试装置,其特征在于,所述接口测试装置还包括:
错误信息返回单元,用于在所述测试数据和与所述接口信息对应的接口不匹配时,向所述浏览器返回对应的错误信息。
9.根据权利要求7所述的接口测试装置,其特征在于,所述代理类查找单元包括:
代理类创建单元,用于在不存在与所述接口对应的类实例的代理类的情况下,根据所述类实例创建所述代理类,并将所述代理类添加到所述容器缓存中。
10.根据权利要求7所述的接口测试装置,其特征在于,所述执行单元包括:
方法对象获取单元,用于通过反射方式获取所述类实例的方法列表中的方法对象,并将每个方法对象存储在所述代理类的缓存中。
11.根据权利要求10所述的接口测试装置,其特征在于,所述执行单元还包括:
方法对象执行单元,用于通过反射方式执行存储在所述代理类的缓存中的各所述方法对象。
12.一种接口测试装置,其特征在于,包括:
输入单元,用于接收用户输入的接口信息和测试数据,其中,所述接口信息包括接口服务IP集合;
整合单元,用于对所述接口信息和所述测试数据进行整合;以及
服务请求单元,用于基于所述接口服务IP集合中的各个接口服务IP来向多个服务器依次请求执行根据权利要求1至5中任一项所述的接口测试方法。
CN201611036109.6A 2016-11-22 2016-11-22 接口测试方法及装置 Active CN108089972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611036109.6A CN108089972B (zh) 2016-11-22 2016-11-22 接口测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611036109.6A CN108089972B (zh) 2016-11-22 2016-11-22 接口测试方法及装置

Publications (2)

Publication Number Publication Date
CN108089972A true CN108089972A (zh) 2018-05-29
CN108089972B CN108089972B (zh) 2021-08-03

Family

ID=62169928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611036109.6A Active CN108089972B (zh) 2016-11-22 2016-11-22 接口测试方法及装置

Country Status (1)

Country Link
CN (1) CN108089972B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062798A (zh) * 2018-07-26 2018-12-21 浙江数链科技有限公司 一种基于Dubbo框架的测试方法与装置
CN109120473A (zh) * 2018-07-27 2019-01-01 广州市百果园信息技术有限公司 接口请求框架实现方法、接口测试方法及其对应的装置
CN109165165A (zh) * 2018-09-04 2019-01-08 中国平安人寿保险股份有限公司 接口测试方法、装置、计算机设备和存储介质
CN110858172A (zh) * 2018-08-23 2020-03-03 北京京东尚科信息技术有限公司 一种自动化测试代码生成方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940865A (zh) * 2005-09-29 2007-04-04 腾讯科技(深圳)有限公司 一种应用编程接口控制方法和控制功能模块
CN103970614A (zh) * 2013-01-24 2014-08-06 腾讯科技(深圳)有限公司 一种业务测试方法及装置
US20150378873A1 (en) * 2014-06-25 2015-12-31 Hcl Technologies Ltd Automatically recommending test suite from historical data based on randomized evolutionary techniques
CN105930138A (zh) * 2015-12-25 2016-09-07 中国银联股份有限公司 一种消息处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940865A (zh) * 2005-09-29 2007-04-04 腾讯科技(深圳)有限公司 一种应用编程接口控制方法和控制功能模块
CN103970614A (zh) * 2013-01-24 2014-08-06 腾讯科技(深圳)有限公司 一种业务测试方法及装置
US20150378873A1 (en) * 2014-06-25 2015-12-31 Hcl Technologies Ltd Automatically recommending test suite from historical data based on randomized evolutionary techniques
CN105930138A (zh) * 2015-12-25 2016-09-07 中国银联股份有限公司 一种消息处理方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062798A (zh) * 2018-07-26 2018-12-21 浙江数链科技有限公司 一种基于Dubbo框架的测试方法与装置
CN109120473A (zh) * 2018-07-27 2019-01-01 广州市百果园信息技术有限公司 接口请求框架实现方法、接口测试方法及其对应的装置
CN109120473B (zh) * 2018-07-27 2020-11-03 广州市百果园信息技术有限公司 接口请求框架实现方法、接口测试方法及其对应的装置
CN110858172A (zh) * 2018-08-23 2020-03-03 北京京东尚科信息技术有限公司 一种自动化测试代码生成方法和装置
CN109165165A (zh) * 2018-09-04 2019-01-08 中国平安人寿保险股份有限公司 接口测试方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN108089972B (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
US11048620B2 (en) Distributed system test device
US10642725B2 (en) Automated test generation for multi-interface enterprise virtualization management environment
US8141043B2 (en) Automated business process testing that spans multiple platforms or applications
US9465725B2 (en) Software defect reporting
US7917896B2 (en) Extensible execution language
US20100088404A1 (en) Monitoring related content requests
US7730352B2 (en) Testing network applications without communicating over a network layer communication link
CN108089972A (zh) 接口测试方法及装置
CN108347356B (zh) 一种多协议单元测试方法、装置、电子设备和存储介质
CN106294094A (zh) 游戏服务器的测试方法、客户端、服务器及系统
US9304894B2 (en) Code-free testing framework
CN106412975B (zh) 一种内容计费漏洞的测试方法和装置
US10552306B2 (en) Automated test generation for multi-interface and multi-platform enterprise virtualization management environment
CN111858296B (zh) 接口测试方法、装置、设备和存储介质
CN108769083A (zh) 基于分布式服务器的登录方法、装置及系统
CN111752843A (zh) 用于确定影响面的方法、装置、电子设备及可读存储介质
US20180234329A1 (en) Test building for testing server operation
CN105988922B (zh) 应用程序的测试方法、装置及服务器
CN112671574B (zh) 前后端联调方法、装置、代理设备及存储介质
CN114625645A (zh) 业务测试方法、装置、电子设备以及可读存储介质
CN106294146B (zh) 参数替换测试方法及装置
CN111538606A (zh) 一种测试模拟Dubbo接口的方法、装置及设备
CN111240855A (zh) Api调试系统、方法、存储介质和计算机设备
US11262990B2 (en) Application topology discovery
US20230140267A1 (en) Code coverage measurement for test systems

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