[go: up one dir, main page]

CN107203465B - System interface testing method and device - Google Patents

System interface testing method and device Download PDF

Info

Publication number
CN107203465B
CN107203465B CN201610156468.9A CN201610156468A CN107203465B CN 107203465 B CN107203465 B CN 107203465B CN 201610156468 A CN201610156468 A CN 201610156468A CN 107203465 B CN107203465 B CN 107203465B
Authority
CN
China
Prior art keywords
return
returned
system interface
mock
processing logic
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
Application number
CN201610156468.9A
Other languages
Chinese (zh)
Other versions
CN107203465A (en
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201610156468.9A priority Critical patent/CN107203465B/en
Publication of CN107203465A publication Critical patent/CN107203465A/en
Application granted granted Critical
Publication of CN107203465B publication Critical patent/CN107203465B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test 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)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种系统接口测试方法及装置,该方法包括以下步骤:获取模拟mock对象发起的业务请求;在获取到目标调用对象针对所述业务请求返回的返回对象后,根据预设的处理逻辑修改所述返回对象,获得预期的返回对象;向所述mock对象返回所述预期的返回对象。本申请实施例可在获取到目标调用对象针对业务请求返回的返回对象后,根据预设的处理逻辑修改返回对象,获得预期的返回对象,从而实现了可以灵活的根据实际的结果或者实际的请求参数来改返回对象,满足了在系统接口测试自动化中构造各种复杂的业务场景的要求。

Figure 201610156468

The embodiments of the present application provide a system interface testing method and device. The method includes the following steps: acquiring a business request initiated by a mock mock object; The processing logic modifies the return object to obtain the expected return object; returns the expected return object to the mock object. In this embodiment of the present application, after obtaining the return object returned by the target calling object for the service request, the return object can be modified according to the preset processing logic to obtain the expected return object, thereby realizing that the actual result or actual request can be flexibly obtained. The parameters are used to change the returned object, which meets the requirements of constructing various complex business scenarios in system interface test automation.

Figure 201610156468

Description

系统接口测试方法及装置System interface testing method and device

技术领域technical field

本申请涉及软件测试技术领域,尤其是涉及一种系统接口测试方法及装置。The present application relates to the technical field of software testing, and in particular, to a system interface testing method and device.

背景技术Background technique

系统接口测试主要用于检测系统与系统外部之间以及系统内部各个子系统之间的交互点。系统接口测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。System interface testing is mainly used to detect the interaction points between the system and the outside of the system and between various subsystems within the system. The key point of system interface test is to check data exchange, transfer and control management process, as well as mutual logical dependencies between systems.

目前现有的系统接口测试可通过拦截器实现。而拦截器一般是在被调用的目标方法执行前或执行后去执行预定义的行为,比如选择继续执行连接点,或通过返回它们自己的返回值或抛出异常来短路执行。一般的,拦截器返回的返回值就是被调用的目标方法返回的返回值,而被调用的目标方法的返回值一般是预设好的一个定值。因此,现有的系统接口测试方法的可实现的测试场景比较单一,其无法满足日益复杂的系统接口测试需要。At present, the existing system interface testing can be implemented through interceptors. Interceptors, on the other hand, typically perform predefined actions before or after the called target method executes, such as choosing to continue executing join points, or short-circuit execution by returning their own return value or throwing an exception. Generally, the return value returned by the interceptor is the return value returned by the called target method, and the return value of the called target method is generally a preset fixed value. Therefore, the achievable test scenarios of the existing system interface testing methods are relatively simple, which cannot meet the increasingly complex system interface testing needs.

发明内容SUMMARY OF THE INVENTION

本申请实施例的目的在于提供一种系统接口测试方法及装置,以便于更为灵活的获取返回对象,从而实现复杂的业务场景下的系统接口测试。The purpose of the embodiments of the present application is to provide a system interface testing method and device, so as to obtain the returned object more flexibly, so as to realize the system interface testing in complex business scenarios.

为达到上述目的,本申请实施例提供了一种系统接口测试方法,包括以下步骤:In order to achieve the above purpose, an embodiment of the present application provides a system interface testing method, comprising the following steps:

获取模拟mock对象发起的业务请求;Get the business request initiated by the mock mock object;

在获取到目标调用对象针对所述业务请求返回的返回对象后,根据预设的处理逻辑修改所述返回对象,获得预期的返回对象;After obtaining the return object returned by the target calling object for the business request, modify the return object according to the preset processing logic to obtain the expected return object;

向所述mock对象返回所述预期的返回对象。Return the expected return object to the mock object.

另一方面,本申请实施例还提供了一种系统接口测试装置,包括:On the other hand, the embodiment of the present application also provides a system interface testing device, including:

请求获取模块,用于获取模拟mock对象发起的业务请求;The request acquisition module is used to acquire the business request initiated by the mock mock object;

返回处理模块,用于在获取到目标调用对象针对所述业务请求返回的返回对象后,根据预设的处理逻辑修改所述返回对象,获得预期的返回对象;The return processing module is configured to modify the return object according to the preset processing logic after obtaining the return object returned by the target calling object for the service request to obtain the expected return object;

返回发送模块,用于向所述mock对象返回所述预期的返回对象。The return sending module is used to return the expected return object to the mock object.

本申请实施例可在获取到目标调用对象针对业务请求返回的返回对象后,根据预设的处理逻辑修改返回对象,获得预期的返回对象,从而实现了可以灵活的根据实际的结果或者实际的请求参数来改返回对象,满足了在系统接口测试自动化中构造各种复杂的业务场景的要求。In this embodiment of the present application, after obtaining the return object returned by the target calling object for the service request, the return object can be modified according to the preset processing logic to obtain the expected return object, thereby realizing that the actual result or actual request can be flexibly obtained. The parameters are used to change the returned object, which meets the requirements of constructing various complex business scenarios in system interface test automation.

附图说明Description of drawings

此处所说明的附图用来提供对本申请实施例的进一步理解,构成本申请实施例的一部分,并不构成对本申请实施例的限定。在附图中:The drawings described herein are used to provide further understanding of the embodiments of the present application, and constitute a part of the embodiments of the present application, and do not constitute limitations to the embodiments of the present application. In the attached image:

图1为本申请一实施例的系统接口测试方法的流程图;1 is a flowchart of a system interface testing method according to an embodiment of the application;

图2为本申请一实施例的系统接口测试装置的结构框图;2 is a structural block diagram of a system interface testing device according to an embodiment of the application;

图3为本申请另一实施例的系统接口测试方法中包含多个返回处理模块模式下的处理流程示意图。FIG. 3 is a schematic diagram of a processing flow in a mode including multiple return processing modules in a system interface testing method according to another embodiment of the present application.

具体实施方式Detailed ways

为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本申请实施例做进一步详细说明。在此,本申请实施例的示意性实施例及其说明用于解释本申请实施例,但并不作为对本申请实施例的限定。In order to make the purposes, technical solutions and advantages of the embodiments of the present application more clearly understood, the embodiments of the present application will be described in further detail below with reference to the embodiments and the accompanying drawings. Here, the exemplary embodiments and descriptions of the embodiments of the present application are used to explain the embodiments of the present application, but are not intended to limit the embodiments of the present application.

下面结合附图,对本申请实施例的具体实施方式作进一步的详细说明。The specific implementations of the embodiments of the present application will be further described in detail below with reference to the accompanying drawings.

参考图1所示,本申请实施例的系统接口测试方法,包括以下步骤:Referring to Fig. 1, the system interface testing method of the embodiment of the present application includes the following steps:

S101,获取mock对象发起的业务请求。S101, obtain a business request initiated by a mock object.

其中,mock对象是预先配置好的,其配置例如可为如下所示:Among them, the mock object is pre-configured, and its configuration can be as follows:

Add Mock With Cond(String mockId,Object expect,String cond,StringiocConfig)Add Mock With Cond(String mockId,Object expect,String cond,StringiocConfig)

mockId–标识拦截的类,即目标调用对象mockId – identifies the intercepted class, that is, the target calling object

expect–构建的期望的返回对象expect – the expected return object to construct

cond–按照条件进行返回对象的处理cond – process the returned object according to the condition

S102,在获取到目标调用对象针对所述业务请求返回的返回对象后,根据预设的处理逻辑修改所述返回对象,获得预期的返回对象。S102, after obtaining the return object returned by the target calling object for the service request, modify the return object according to preset processing logic to obtain the expected return object.

在本申请的一实施例中,当所述处理逻辑有多种时,这些处理逻辑可统一由一个返回处理模块来完成。In an embodiment of the present application, when there are multiple types of processing logics, these processing logics may be unifiedly completed by one return processing module.

在本申请的另一实施例中,如图3所示,当所述处理逻辑有多种时,每种处理逻辑可由一一对应的返回处理模块完成(当系统启动时,这些返回处理模块会被初始化并加载到内存中),并且所述mock对象发起的业务请求预先与一个返回处理模块绑定。例如在mock配置时可以增加如下配置:In another embodiment of the present application, as shown in FIG. 3 , when there are multiple types of processing logics, each processing logic can be completed by a one-to-one corresponding return processing module (when the system starts, these return processing modules will is initialized and loaded into the memory), and the business request initiated by the mock object is pre-bound with a return processing module. For example, the following configuration can be added to the mock configuration:

iocConfig–返回处理模块的标识名iocConfig – returns the distinguished name of the processing module

该标识名即表明了本次调用目标调用对象所需要的绑定的返回处理模块,通常mock对象发送的业务请求中会携带有该返回处理模块的标识名,当有该目标调用对象的业务请求被拦截时,就会根据返回处理模块的标识名调用相应的返回处理模块(即目标调用对象针对业务请求返回的返回对象被拦截后,会根据业务请求中携带的标识选择返回处理模块)。一般的,绑定仅对本次调用有效,在下次调用时可以根据需要预先绑定任何其他的返回处理模块,以实现另一些mock场景下的测试。The identification name indicates the binding return processing module required by the target calling object of this call. Usually, the business request sent by the mock object will carry the identification name of the return processing module. When there is a business request of the target calling object When intercepted, the corresponding return processing module will be called according to the identifier name of the return processing module (that is, after the return object returned by the target calling object for the business request is intercepted, the return processing module will be selected according to the identifier carried in the business request). Generally, the binding is only valid for this call. In the next call, you can pre-bind any other return processing modules as needed to implement tests in other mock scenarios.

由于一个处理逻辑一般对应一个测试场景,这样以来,不仅各测试场景的职能划分比较清晰,参数层次简单易懂,具有较好的解耦合性;而且还方便了以后期扩展其他的测试场景,而不需要改变原有的返回处理模块,只需增加新的返回处理模块就可以了。Since one processing logic generally corresponds to one test scenario, in this way, not only the function division of each test scenario is relatively clear, the parameter hierarchy is simple and easy to understand, and has good decoupling; but also it is convenient to expand other test scenarios later, and There is no need to change the original return processing module, just add a new return processing module.

在本申请的一实施例中,所述根据预设的处理逻辑修改所述返回对象可以包括:In an embodiment of the present application, the modifying the returned object according to the preset processing logic may include:

根据所述业务请求中的特定输入参数修改所述返回对象中的特定输出参数。The specific output parameters in the returned object are modified according to the specific input parameters in the service request.

举例来说,某目标调用对象每次执行后生成的ID(identification)是随机的,而目标调用对象一般是测试用例中的某个需要测试的部分,但在整个测试用例中,由于通常上下文之间是有关联关系的,这时就需要用同一个ID贯穿整个测试用例,因此,调用完该目标调用对象后就需要根据预定义的条件属性修改该目标调用对象返回的返回对象中的ID。For example, the ID (identification) generated by a target invocation object is random after each execution, and the target invocation object is generally a part of the test case that needs to be tested, but in the entire test case, due to the usual context. Therefore, after calling the target call object, it is necessary to modify the ID in the return object returned by the target call object according to the predefined condition attributes.

比如cond="return_param1=request_param1,return_param2=request_param1"表示将入参请求中参数名为"request_param1"的参数值设置给返回对象中的参数:return_param1,…For example, cond="return_param1=request_param1, return_param2=request_param1" means to set the parameter value of the parameter named "request_param1" in the input request to the parameter in the returned object: return_param1,…

当然,根据具体情况和需要return_param1还可以为复杂对象取参模式,从而可以实现从任何复杂的大对象取到任何参数。比如:Of course, according to the specific situation and needs, return_param1 can also take parameter mode for complex objects, so that any parameter can be obtained from any complex large object. for example:

从子对象中取参数:param.id,param.name…Take parameters from child objects: param.id, param.name…

从数组中取参数:param[1].idTake parameters from an array: param[1].id

从list中取参数:Take parameters from list:

基础对象:param_list[1]Base object: param_list[1]

复杂对象:param_list[1].idComplex object: param_list[1].id

从map中取参数:Take parameters from map:

基础对象:param_map(key)Base object: param_map(key)

复杂对象:param_map(key).idComplex object: param_map(key).id

这样以来,最终实现了基于输入参数调整返回对象,从而获得期望的返回对象的目的。In this way, the purpose of adjusting the returned object based on the input parameters is finally realized, so as to obtain the desired returned object.

在本申请的另一实施例中,所述根据预设的处理逻辑修改所述返回对象还可以包括:In another embodiment of the present application, the modifying the returned object according to the preset processing logic may further include:

根据预定义的条件属性修改返回对象中的特定输出参数。在获取到业务请求后,目标调用对象按照正常的流程进行业务处理,待获取到目标调用对象返回的返回对象后,根据预定义的条件属性修改该返回对象中的特定输出参数,使得最终返回的是期望的返回对象。比如cond="return_param1=xxx,return_param2=yyy",则表示将正常业务返回的结果对象中名为"return_param1"的输出参数值修改为xxx;并将正常业务返回的结果对象中名为"return_param2"的输出参数值修改为yyy。Modifies specific output parameters in the returned object based on predefined condition properties. After obtaining the business request, the target calling object performs business processing according to the normal process. After obtaining the return object returned by the target calling object, the specific output parameters in the returned object are modified according to the predefined condition attributes, so that the final returned is the expected return object. For example, cond="return_param1=xxx, return_param2=yyy", it means to change the output parameter value named "return_param1" in the result object returned by normal business to xxx; and change the result object returned by normal business named "return_param2" The output parameter value of is modified to yyy.

举例来说,某目标调用对象执行完后返回的某输出参数为true,如果期望该输出参数的返回是flase,则需要将true替换为flase,以保证后续整个测试用例往下执行是按照期望进行的。For example, a certain output parameter returned after the execution of a target calling object is true. If the return of the output parameter is expected to be false, then true needs to be replaced by false to ensure that the subsequent execution of the entire test case is performed as expected. of.

在本申请的另一实施例中,所述根据预设的处理逻辑修改所述返回对象还可以包括:In another embodiment of the present application, the modifying the returned object according to the preset processing logic may further include:

当所述mock对象需多次调用同一个目标调用对象并预先配置有多个期望的返回对象时,根据业务请求中携带的特定指示参数决定选择所述多个期望的返回对象中的哪个作为本次调用后所期望的返回对象。When the mock object needs to call the same target calling object multiple times and is pre-configured with multiple expected return objects, it is determined which one of the multiple expected return objects is selected as the main object according to the specific indication parameters carried in the service request. The expected return object after the call.

比如cond="PARAM=trans_type,withdraw=1,dback=2"表示判断请求中的特定指示参数trans_type,当其值为'withdraw'时返回第一个对象,当其值为'dback'时返回第二个对象。For example, cond="PARAM=trans_type, withdraw=1, dback=2" means to judge the specific indication parameter trans_type in the request. When its value is 'withdraw', it returns the first object, and when its value is 'dback', it returns the first object. two objects.

举例来说,一次性对某目标调用对象设置A,B,C三个返回对象,某测试用例可能会3次调用这个目标调用对象,按照期望,预想第一次调用目标调用对象后返回的返回对象为C,第二次调用目标调用对象后返回的返回对象为A,第三次调用目标调用对象后返回的返回对象为B,因此,可以根据预先定义的条件中的某特定指示参数来决定每次具体应返回哪个返回对象。For example, if three return objects A, B, and C are set to a target call object at one time, a test case may call the target call object three times. According to expectations, the return returned after the first call to the target call object is expected. The object is C, the return object returned after the second invocation of the target invocation object is A, and the returned object after the third invocation of the target invocation object is B. Therefore, it can be determined according to a specific indication parameter in the pre-defined conditions. Which return object should be returned each time.

S103,向所述mock对象返回所述预期的返回对象。S103, returning the expected return object to the mock object.

虽然上文各个方法实施例描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以根据需要顺序执行或并行执行(例如使用并行处理器或多线程环境)。Although the process flows described in the various method embodiments above include multiple operations occurring in a particular order, it should be clearly understood that these processes may include more or fewer operations, which may be performed sequentially or in parallel as desired ( e.g. using parallel processors or multi-threaded environments).

本申请实施例可在获取到目标调用对象针对业务请求返回的返回对象后,根据预设的处理逻辑修改返回对象,获得预期的返回对象,从而实现了可以灵活的根据实际的结果或者实际的请求参数来改返回对象,满足了在系统接口测试自动化中构造各种复杂的业务场景的要求。并且,本申请实施例还可以通过不同的返回处理模块来处理不同的逻辑处理场景,因此,后续如需要进行测试场景扩展时,添加新返回处理模块即可,而不需要对原有的返回处理模块进行改动,非常方便。In this embodiment of the present application, after obtaining the return object returned by the target calling object for the service request, the return object can be modified according to the preset processing logic to obtain the expected return object, thereby realizing that the actual result or actual request can be flexibly obtained. The parameters are used to change the returned object, which meets the requirements of constructing various complex business scenarios in system interface test automation. In addition, the embodiment of the present application can also process different logic processing scenarios through different return processing modules. Therefore, when the test scenario needs to be expanded in the future, a new return processing module can be added, and it is not necessary to process the original return processing. It is very convenient to change the module.

参考图2所示,与上述方法实施例对应,本申请的系统接口测试装置包括:Referring to Fig. 2, corresponding to the above method embodiment, the system interface testing device of the present application includes:

请求获取模块21,用于获取模拟mock对象发起的业务请求。其中,mock对象是预先设置好的,例如:The request obtaining module 21 is used to obtain the business request initiated by the mock mock object. Among them, the mock object is preset, for example:

Add Mock With Cond(String mockId,Object expect,String cond,StringiocConfig)Add Mock With Cond(String mockId,Object expect,String cond,StringiocConfig)

mockId–标识拦截的类,即目标调用对象mockId – identifies the intercepted class, that is, the target calling object

expect–构建的期望的返回对象expect – the expected return object to construct

cond–按照条件进行返回对象的处理cond – process the returned object according to the condition

返回处理模块22,用于在获取到目标调用对象针对所述业务请求返回的返回对象后,根据预设的处理逻辑修改所述返回对象,获得预期的返回对象。The return processing module 22 is configured to modify the return object according to the preset processing logic after obtaining the return object returned by the target calling object for the service request to obtain the expected return object.

在本申请的一实施例中,当所述处理逻辑有多种时,这些处理逻辑可统一由一个返回处理模块来完成。In an embodiment of the present application, when there are multiple types of processing logics, these processing logics may be unifiedly completed by one return processing module.

在本申请的另一实施例中,当所述处理逻辑有多种时,每种处理逻辑可由一一对应的返回处理模块完成(当系统启动时,这些返回处理模块会被初始化并加载到内存中),并且所述mock对象发起的业务请求预先与一个返回处理模块绑定。例如在mock配置时可以增加如下配置:In another embodiment of the present application, when there are multiple processing logics, each processing logic can be completed by a one-to-one corresponding return processing module (when the system starts, these return processing modules will be initialized and loaded into the memory ), and the business request initiated by the mock object is pre-bound with a return processing module. For example, the following configuration can be added to the mock configuration:

iocConfig–返回处理模块的标识名iocConfig – returns the distinguished name of the processing module

该标识名即表明了本次调用目标调用对象所需要的绑定的返回处理模块,通常mock对象发送的业务请求中会携带有该返回处理模块的标识名,当有该目标调用对象的业务请求被拦截时,就会根据返回处理模块的标识名调用相应的返回处理模块(即目标调用对象针对业务请求返回的返回对象被拦截后,会根据业务请求中携带的标识选择返回处理模块)。一般的,绑定仅对本次调用有效,在下次调用时可以根据需要预先绑定任何其他的返回处理模块,以实现另一些mock场景下的测试。The identification name indicates the binding return processing module required by the target calling object of this call. Usually, the business request sent by the mock object will carry the identification name of the return processing module. When there is a business request of the target calling object When intercepted, the corresponding return processing module will be called according to the identifier name of the return processing module (that is, after the return object returned by the target calling object for the business request is intercepted, the return processing module will be selected according to the identifier carried in the business request). Generally, the binding is only valid for this call. In the next call, you can pre-bind any other return processing modules as needed to implement tests in other mock scenarios.

由于一个处理逻辑一般对应一个测试场景,这样以来,不仅各测试场景的职能划分比较清晰,参数层次简单易懂,具有较好的解耦合性;而且还方便了以后期扩展其他的测试场景,而不需要改变原有的返回处理模块,只需增加新的返回处理模块就可以了。Since one processing logic generally corresponds to one test scenario, in this way, not only the function division of each test scenario is relatively clear, the parameter hierarchy is simple and easy to understand, and has good decoupling; but also it is convenient to expand other test scenarios later, and There is no need to change the original return processing module, just add a new return processing module.

在本申请的一实施例中,所述根据预设的处理逻辑修改所述返回对象可以包括:In an embodiment of the present application, the modifying the returned object according to the preset processing logic may include:

根据所述业务请求中的特定输入参数修改所述返回对象中的特定输出参数。举例来说,某目标调用对象每次执行后生成的ID(identification)是随机的,而目标调用对象一般是测试用例中的某个需要测试的部分,但在整个测试用例中,由于通常上下文之间是有关联关系的,这时就需要用同一个ID贯穿整个测试用例,因此,调用完该目标调用对象后就需要根据预定义的条件属性修改该目标调用对象返回的返回对象中的ID。The specific output parameters in the returned object are modified according to the specific input parameters in the service request. For example, the ID (identification) generated by a target invocation object is random after each execution, and the target invocation object is generally a part of the test case that needs to be tested, but in the entire test case, due to the usual context. Therefore, after calling the target call object, it is necessary to modify the ID in the return object returned by the target call object according to the predefined condition attributes.

比如cond="return_param1=request_param1,return_param2=request_param1"表示将入参请求中参数名为"request_param1"的参数值设置给返回对象中的参数:return_param1,…For example, cond="return_param1=request_param1, return_param2=request_param1" means to set the parameter value of the parameter named "request_param1" in the input request to the parameter in the returned object: return_param1,…

当然,根据具体情况和需要return_param1还可以为复杂对象取参模式,从而可以实现从任何复杂的大对象取到任何参数。比如:Of course, according to the specific situation and needs, return_param1 can also take parameter mode for complex objects, so that any parameter can be obtained from any complex large object. for example:

从子对象中取参数:param.id,param.name…Take parameters from child objects: param.id, param.name…

从数组中取参数:param[1].idTake parameters from an array: param[1].id

从list中取参数:Take parameters from list:

基础对象:param_list[1]Base object: param_list[1]

复杂对象:param_list[1].idComplex object: param_list[1].id

从map中取参数:Take parameters from map:

基础对象:param_map(key)Base object: param_map(key)

复杂对象:param_map(key).idComplex object: param_map(key).id

这样以来,最终实现了基于输入参数调整返回对象,从而获得期望的返回对象的目的。In this way, the purpose of adjusting the returned object based on the input parameters is finally realized, so as to obtain the desired returned object.

在本申请的另一实施例中,所述根据预设的处理逻辑修改所述返回对象还可以包括:In another embodiment of the present application, the modifying the returned object according to the preset processing logic may further include:

根据预定义的条件属性修改返回对象中的特定输出参数。在获取到业务请求后,目标调用对象按照正常的流程进行业务处理,待获取到目标调用对象返回的返回对象后,根据预定义的条件属性修改该返回对象中的特定输出参数,使得最终返回的是期望的返回对象。比如cond="return_param1=xxx,return_param2=yyy",则表示将正常业务返回的结果对象中名为"return_param1"的输出参数值修改为xxx;并将正常业务返回的结果对象中名为"return_param2"的输出参数值修改为yyy。Modifies specific output parameters in the returned object based on predefined condition properties. After obtaining the business request, the target calling object performs business processing according to the normal process. After obtaining the return object returned by the target calling object, the specific output parameters in the returned object are modified according to the predefined condition attributes, so that the final returned is the expected return object. For example, cond="return_param1=xxx, return_param2=yyy", it means to change the output parameter value named "return_param1" in the result object returned by normal business to xxx; and change the result object returned by normal business named "return_param2" The output parameter value of is modified to yyy.

举例来说,某目标调用对象执行完后返回的某输出参数为true,如果期望该输出参数的返回是flase,则需要将true替换为flase,以保证后续整个测试用例往下执行是按照期望进行的。For example, a certain output parameter returned after the execution of a target calling object is true. If the return of the output parameter is expected to be false, then true needs to be replaced by false to ensure that the subsequent execution of the entire test case is performed as expected. of.

在本申请的另一实施例中,所述根据预设的处理逻辑修改所述返回对象还可以包括:In another embodiment of the present application, the modifying the returned object according to the preset processing logic may further include:

当所述mock对象需多次调用同一个目标调用对象并预先配置有多个期望的返回对象时,根据业务请求中携带的特定指示参数决定选择所述多个期望的返回对象中的哪个作为本次调用后所期望的返回对象。When the mock object needs to call the same target calling object multiple times and is pre-configured with multiple expected return objects, it is determined which one of the multiple expected return objects is selected as the main object according to the specific indication parameters carried in the service request. The expected return object after the call.

比如cond="PARAM=trans_type,withdraw=1,dback=2"表示判断请求中的特定指示参数trans_type,当其值为'withdraw'时返回第一个对象,当其值为'dback'时返回第二个对象。For example, cond="PARAM=trans_type, withdraw=1, dback=2" means to judge the specific indication parameter trans_type in the request. When its value is 'withdraw', it returns the first object, and when its value is 'dback', it returns the first object. two objects.

举例来说,一次性对某目标调用对象设置A,B,C三个返回对象,某测试用例可能会3次调用这个目标调用对象,按照期望,预想第一次调用目标调用对象后返回的返回对象为C,第二次调用目标调用对象后返回的返回对象为A,第三次调用目标调用对象后返回的返回对象为B,因此,可以根据预先定义的条件中的某特定指示参数来决定每次具体应返回哪个返回对象。For example, if three return objects A, B, and C are set to a target call object at one time, a test case may call the target call object three times. According to expectations, the return returned after the first call to the target call object is expected. The object is C, the return object returned after the second invocation of the target invocation object is A, and the returned object after the third invocation of the target invocation object is B. Therefore, it can be determined according to a specific indication parameter in the pre-defined conditions. Which return object should be returned each time.

返回发送模块23,用于向所述mock对象返回所述预期的返回对象。The return sending module 23 is configured to return the expected return object to the mock object.

本申请实施例可在获取到目标调用对象针对业务请求返回的返回对象后,根据预设的处理逻辑修改返回对象,获得预期的返回对象,从而实现了可以灵活的根据实际的结果或者实际的请求参数来改返回对象,满足了在系统接口测试自动化中构造各种复杂的业务场景的要求。并且,本申请实施例还可以通过不同的返回处理模块来处理不同的逻辑处理场景,因此,后续如需要进行测试场景扩展时,只需添加新返回处理模块即可,而不需要对原有的返回处理模块进行改动,非常方便。In this embodiment of the present application, after obtaining the return object returned by the target calling object for the service request, the return object can be modified according to the preset processing logic to obtain the expected return object, thereby realizing that the actual result or actual request can be flexibly obtained. The parameters are used to change the returned object, which meets the requirements of constructing various complex business scenarios in system interface test automation. In addition, the embodiment of the present application can also process different logic processing scenarios through different return processing modules. Therefore, when the test scenario needs to be expanded in the future, it is only necessary to add a new return processing module, and it is not necessary to modify the original return processing module. It is very convenient to return to the processing module to make changes.

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。The systems, devices, modules or units described in the above embodiments may be specifically implemented by computer chips or entities, or by products with certain functions.

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。For the convenience of description, when describing the above device, the functions are divided into various units and described respectively. Of course, when implementing the present application, the functions of each unit may be implemented in one or more software and/or hardware.

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。Each embodiment in this specification is described in a progressive manner, and the same and similar parts between the various embodiments may be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, as for the system embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and for related parts, please refer to the partial descriptions of the method embodiments.

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。In the 1990s, improvements in a technology could be clearly differentiated between improvements in hardware (eg, improvements to circuit structures such as diodes, transistors, switches, etc.) or improvements in software (improvements in method flow). However, with the development of technology, the improvement of many methods and processes today can be regarded as a direct improvement of the hardware circuit structure. Designers almost get the corresponding hardware circuit structure by programming the improved method flow into the hardware circuit. Therefore, it cannot be said that the improvement of a method flow cannot be realized by hardware entity modules. For example, a Programmable Logic Device (PLD) (eg, Field Programmable Gate Array (FPGA)) is an integrated circuit whose logic function is determined by user programming of the device. It is programmed by the designer to "integrate" a digital system on a PLD without having to ask a chip manufacturer to design and manufacture a dedicated integrated circuit chip 2 . Moreover, today, instead of making integrated circuit chips by hand, this kind of programming is also mostly implemented using "logiccompiler" software, which is similar to the software compiler used in program development and writing, but to compile the previous The original code must also be written in a specific programming language, which is called Hardware Description Language (HDL), and there is not only one HDL, but many kinds, such as ABEL (Advanced Boolean Expression Language), AHDL(Altera Hardware DescriptionLanguage), Confluence, CUPL(Cornell University Programming Language), HDCal, JHDL(Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL(RubyHardware Description Language), etc. VHDL is currently the most commonly used (Very-High-SpeedIntegrated Circuit Hardware Description Language) and Verilog2. It should also be clear to those skilled in the art that a hardware circuit for implementing the logic method process can be easily obtained by simply programming the method process in the above-mentioned several hardware description languages and programming it into the integrated circuit.

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。The controller may be implemented in any suitable manner, for example, the controller may take the form of eg a microprocessor or processor and a computer readable medium storing computer readable program code (eg software or firmware) executable by the (micro)processor , logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers and embedded microcontrollers, examples of controllers include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 and Silicon Labs C8051F320, the memory controller can also be implemented as part of the control logic of the memory.

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。Those skilled in the art also know that, in addition to implementing the controller in the form of pure computer-readable program code, the controller can be implemented as logic gates, switches, application-specific integrated circuits, programmable logic controllers and embedded devices by logically programming the method steps. The same function can be realized in the form of a microcontroller, etc. Therefore, such a controller can be regarded as a hardware component, and the devices included therein for realizing various functions can also be regarded as a structure within the hardware component. Or even, the means for implementing various functions can be regarded as both a software module implementing a method and a structure within a hardware component.

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。From the description of the above embodiments, those skilled in the art can clearly understand that the present application can be implemented by means of software plus a necessary general hardware platform. Based on this understanding, the technical solutions of the present application can be embodied in the form of software products in essence or the parts that make contributions to the prior art, and the computer software products can be stored in storage media, such as ROM/RAM, magnetic disks , CD-ROM, etc., including several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute the methods described in various embodiments or some parts of the embodiments of the present application.

本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。The present application may be used in numerous general purpose or special purpose computer system environments or configurations. For example: personal computers, server computers, handheld or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, including A distributed computing environment for any of the above systems or devices, and the like.

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。The application may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The application may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including storage devices.

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。Although the application has been described by way of examples, those of ordinary skill in the art will recognize that the application is subject to many modifications and variations without departing from the spirit of the application, and the appended claims are intended to include such modifications and changes without departing from the spirit of the application.

Claims (8)

1.一种系统接口测试方法,其特征在于,包括以下步骤:1. a system interface testing method, is characterized in that, comprises the following steps: 获取模拟mock对象发起的业务请求;所述业务请求中包含特定指示参数;Obtain the business request initiated by the simulated mock object; the business request includes specific indication parameters; 在获取到目标调用对象针对所述业务请求返回的返回对象后,根据预设的处理逻辑修改所述返回对象,获得预期的返回对象;其中,当所述处理逻辑有多种时,每种处理逻辑由一一对应的返回处理模块完成,并且所述mock对象发起的业务请求预先与一个返回处理模块绑定;其中,当所述mock对象需多次调用同一个目标调用对象并预先配置有多个期望的返回对象时,根据所述特定指示参数决定选择所述多个期望的返回对象中的哪个作为本次调用后所期望的返回对象;After obtaining the return object returned by the target calling object for the service request, modify the return object according to the preset processing logic to obtain the expected return object; wherein, when there are multiple types of processing logic, each processing logic The logic is completed by a one-to-one corresponding return processing module, and the business request initiated by the mock object is pre-bound with a return processing module; wherein, when the mock object needs to call the same target call object multiple times and pre-configured multiple When there are expected return objects, decide which of the plurality of expected return objects is selected as the expected return object after this call according to the specific indication parameter; 向所述mock对象返回所述预期的返回对象。Return the expected return object to the mock object. 2.根据权利要求1所述的系统接口测试方法,其特征在于,所述根据预设的处理逻辑修改所述返回对象,包括:2. The system interface testing method according to claim 1, wherein the modifying the returned object according to a preset processing logic comprises: 根据所述业务请求中的特定输入参数修改所述返回对象中的特定输出参数。The specific output parameters in the returned object are modified according to the specific input parameters in the service request. 3.根据权利要求1所述的系统接口测试方法,其特征在于,所述根据预设的处理逻辑修改所述返回对象,包括:3. The system interface testing method according to claim 1, wherein the modifying the returned object according to a preset processing logic comprises: 根据预定义的条件属性修改所述返回对象中的特定输出参数。Specific output parameters in the returned object are modified according to predefined condition properties. 4.根据权利要求1所述的系统接口测试方法,其特征在于,所述的绑定包括:4. The system interface testing method according to claim 1, wherein the binding comprises: 在所述业务请求中携带有返回处理模块的标识。The service request carries the identifier of the returned processing module. 5.一种系统接口测试装置,其特征在于,包括:5. A system interface testing device, characterized in that, comprising: 请求获取模块,用于获取模拟mock对象发起的业务请求;所述业务请求中包含特定指示参数;A request acquisition module is used to acquire a business request initiated by a simulated mock object; the business request includes specific indication parameters; 返回处理模块,用于在获取到目标调用对象针对所述业务请求返回的返回对象后,根据预设的处理逻辑修改所述返回对象,获得预期的返回对象;其中,当所述处理逻辑有多种时,每种处理逻辑由一一对应的返回处理模块完成,并且所述mock对象发起的业务请求预先与一个返回处理模块绑定;其中,当所述mock对象需多次调用同一个目标调用对象并预先配置有多个期望的返回对象时,根据所述特定指示参数决定选择所述多个期望的返回对象中的哪个作为本次调用后所期望的返回对象;The return processing module is configured to modify the return object according to the preset processing logic after obtaining the return object returned by the target calling object for the service request, and obtain the expected return object; wherein, when the processing logic has multiple In this case, each processing logic is completed by a one-to-one corresponding return processing module, and the business request initiated by the mock object is bound in advance with a return processing module; wherein, when the mock object needs to call the same target call multiple times object and pre-configured with multiple expected return objects, decide which of the multiple expected return objects to select as the expected return object after this call according to the specific indication parameter; 返回发送模块,用于向所述mock对象返回所述预期的返回对象。The return sending module is used to return the expected return object to the mock object. 6.根据权利要求5所述的系统接口测试装置,其特征在于,所述根据预设的处理逻辑修改所述返回对象,包括:6. The system interface testing device according to claim 5, wherein the modifying the returned object according to a preset processing logic comprises: 根据所述业务请求中的特定输入参数修改所述返回对象中的特定输出参数。The specific output parameters in the returned object are modified according to the specific input parameters in the service request. 7.根据权利要求5所述的系统接口测试装置,其特征在于,所述根据预设的处理逻辑修改所述返回对象,包括:7. The system interface testing device according to claim 5, wherein the modifying the returned object according to a preset processing logic comprises: 根据预定义的条件属性修改所述返回对象中的特定输出参数。Specific output parameters in the returned object are modified according to predefined condition properties. 8.根据权利要求5所述的系统接口测试装置,其特征在于,所述的绑定包括:8. The system interface testing device according to claim 5, wherein the binding comprises: 在所述业务请求中携带有返回处理模块的标识。The service request carries the identifier of the returned processing module.
CN201610156468.9A 2016-03-18 2016-03-18 System interface testing method and device Active CN107203465B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610156468.9A CN107203465B (en) 2016-03-18 2016-03-18 System interface testing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610156468.9A CN107203465B (en) 2016-03-18 2016-03-18 System interface testing method and device

Publications (2)

Publication Number Publication Date
CN107203465A CN107203465A (en) 2017-09-26
CN107203465B true CN107203465B (en) 2020-11-03

Family

ID=59904062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610156468.9A Active CN107203465B (en) 2016-03-18 2016-03-18 System interface testing method and device

Country Status (1)

Country Link
CN (1) CN107203465B (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992425B (en) * 2017-12-25 2020-09-22 携程旅游网络技术(上海)有限公司 Method and system for automatic generation of unit test Mock code
CN108170612B (en) * 2018-01-23 2021-01-15 百度在线网络技术(北京)有限公司 Automatic testing method and device and server
CN108563558A (en) * 2018-02-26 2018-09-21 南京粤讯电子科技有限公司 A kind of program testing method, test pile system and device
CN110321274B (en) * 2018-03-29 2021-07-02 腾讯科技(深圳)有限公司 Application program testing method and device, computing equipment and storage medium
CN111382062B (en) * 2018-12-30 2023-09-15 贝壳技术有限公司 Joint debugging test method and device for real estate transaction system and external institution business system
CN110321282A (en) * 2019-05-24 2019-10-11 深圳壹账通智能科技有限公司 The XML configuration file amending method and system of Mock test
CN110362472A (en) * 2019-05-31 2019-10-22 口碑(上海)信息技术有限公司 MOCK test method, device and equipment
CN111159033B (en) * 2019-12-25 2023-07-04 口碑(上海)信息技术有限公司 A software testing method and device
CN111352610A (en) * 2020-03-03 2020-06-30 五八有限公司 Interface return value modification method and device, electronic equipment and storage medium
CN113468001A (en) * 2020-03-30 2021-10-01 腾讯科技(深圳)有限公司 Method and device for testing interface processing logic

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954929B2 (en) * 2010-03-29 2015-02-10 Microsoft Corporation Automatically redirecting method calls for unit testing
US8806437B2 (en) * 2011-06-29 2014-08-12 International Business Machines Corporation Automated testing process
WO2013158112A1 (en) * 2012-04-20 2013-10-24 Hewlett-Packard Development Company, L.P. Testing system for an integrated software system
CN104899142B (en) * 2015-06-10 2018-04-27 北京嘀嘀无限科技发展有限公司 A kind of long-range mock test methods and device
CN105354143A (en) * 2015-12-02 2016-02-24 北京奇虎科技有限公司 Test method and device for application programs

Also Published As

Publication number Publication date
CN107203465A (en) 2017-09-26

Similar Documents

Publication Publication Date Title
CN107203465B (en) System interface testing method and device
US9268854B2 (en) Analytics based on pipes programming model
CN109284222B (en) Software unit, project testing method, device and equipment in data processing system
US9256519B2 (en) Using linked data to determine package quality
US20170048008A1 (en) Method and apparatus for verification of network service in network function virtualization environment
WO2020211360A1 (en) Mock test method and system, electronic device, and computer non-volatile readable storage medium
US9244652B1 (en) State management for task queues
CN107133160B (en) server and client
US11113176B2 (en) Generating a debugging network for a synchronous digital circuit during compilation of program source code
CN116483859A (en) Data query method and device
US9762700B2 (en) Client-side aggregation of nested resource dependencies
US20210274017A1 (en) Request processing method and apparatus, electronic device, and computer storage medium
CN111813407A (en) Game development method, game running device and electronic equipment
US10873628B2 (en) System and method for non-intrusive context correlation across cloud services
CN111722995A (en) A data processing method and device
CN111459504A (en) Intelligent contract processing method, device, equipment and storage medium
TWI723535B (en) Data calculation method and engine
CN108345536A (en) A kind of dispositions method, device and the equipment of continuous integrating environment
CN104160389B (en) By having the method and system of the intelligent event dynamically aggregated content of non-illustration content
CN114637969A (en) Authentication method and device for target object
KR101996029B1 (en) Method for designing network service descriptor in network function virtualization system, managing the network function descriptor and system thereof
US10320890B1 (en) Generating client applications from service model descriptions
CN115034164A (en) Verification method, electronic device, and storage medium
US10740516B2 (en) Modifying circuits to prevent redundant switching
US10657211B2 (en) Circuit generation based on zero wire load assertions

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
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant