CN115543857A - Sdk测试包的制作方法、sdk测试方法及设备 - Google Patents
Sdk测试包的制作方法、sdk测试方法及设备 Download PDFInfo
- Publication number
- CN115543857A CN115543857A CN202211533367.0A CN202211533367A CN115543857A CN 115543857 A CN115543857 A CN 115543857A CN 202211533367 A CN202211533367 A CN 202211533367A CN 115543857 A CN115543857 A CN 115543857A
- Authority
- CN
- China
- Prior art keywords
- sdk
- test
- function
- tested
- manufacturing
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 118
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 24
- 238000010998 test method Methods 0.000 title claims description 8
- 230000006870 function Effects 0.000 claims abstract description 102
- 238000000034 method Methods 0.000 claims description 25
- 238000005316 response function Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
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
-
- 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/3688—Test 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)
- Telephone Function (AREA)
Abstract
本发明涉及SDK测试技术领域,具体涉及一种SDK测试包的制作方法、SDK测试方法及设备,目的在于提高测试效率。本发明的SDK测试包中包括重新封装后的SDK、测试接口类和测试用例。SDK测试包的制作方法包括:获取待测SDK、待测试的第一功能函数的名称列表,以及与第一功能函数一一对应的快捷键的标识;将待测SDK转换为能够被当前编程语言调用的模块;导入该模块;从该模块中逐一查找第一功能函数,并分别封装为对应的第二功能函数;构建测试接口类;根据快捷键的标识编写测试用例,用于根据快捷键的标识触发键盘事件,进而对重新封装后的SDK进行测试,并获取相应的测试结果。本发明极大地提高了SDK测试效率。
Description
技术领域
本发明涉及SDK测试技术领域,具体涉及一种SDK测试包的制作方法、SDK测试方法及设备。
背景技术
针对某些特定项目或功能的服务程序通常会被集成到第三方SDK(SoftwareDevelopment Kit,即软件开发工具包)中,这些第三方SDK可以提供专业的服务,其中封装了复杂的逻辑实现以及请求响应的过程,使其更便于开发人员使用。
在这些SDK被正式投入使用之前,需要进行大量的测试,以保证其中各种功能函数能够正确执行。相关技术中,通常需要在测试页面中增加一些按钮,在SDK服务程序运行起来以后,通过人工点击按钮进行触发,从而调用相应的功能函数进行测试。
针对上述相关技术,发明人认为测试效率偏低。
发明内容
为了解决现有技术中的上述问题,本发明提出了一种SDK测试包的制作方法、SDK测试方法及设备,提高了测试效率。
本发明的第一方面,提出一种SDK测试包的制作方法,所述SDK测试包包括:重新封装后的SDK、测试接口类和测试用例;所述方法包括:
利用当前编程语言将待测SDK进行重新封装,得到所述重新封装后的SDK;
构建所述测试接口类;
编写所述测试用例;
其中,所述测试接口类用于为所述重新封装后的SDK提供运行和测试的接口。
优选地,所述方法还包括:
获取待测SDK、待测试的第一功能函数的名称列表,以及与所述第一功能函数一一对应的快捷键的标识;
所述编写所述测试用例,包括:
根据所述快捷键的标识编写所述测试用例,所述测试用例用于根据所述快捷键的标识触发键盘事件,进而对所述重新封装后的SDK进行测试,并获取相应的测试结果。
优选地,所述利用当前编程语言将所述待测SDK进行重新封装,得到所述重新封装后的SDK,包括:
将所述待测SDK转换为能够被当前编程语言调用的模块;
导入所述模块;
从所述模块中逐一查找所述第一功能函数,并分别封装为对应的第二功能函数,从而得到重新封装后的SDK。
优选地,所述构建所述测试接口类,包括:
创建一个类,并在创建的类中添加启动函数、所述第二功能函数,以及与每个所述第二功能函数一一对应的快捷键响应函数,从而构成所述测试接口类;
其中,
所述启动函数用于启动所述重新封装后的SDK,并运行键盘事件函数;
所述键盘事件函数用于捕获键盘事件并获取按键标识,进而根据所述按键标识调用对应的所述快捷键响应函数;
所述快捷键响应函数用于调用对应的所述第二功能函数。
优选地,通过通信接口获取所述待测SDK;
通过通信接口、配置文件或人机交互界面获取所述第一功能函数的名称列表和所述快捷键的标识;
其中,所述通信接口包括:网络接口或USB(Universal Serial Bus,通用串行总线)接口。
优选地,所述当前编程语言包括:Python(一种计算机编程语言)或Java(一种面向对象的编程语言)。
本发明的第二方面,提出一种SDK测试方法,所述方法包括:
采用如上面所述的方法制作SDK测试包;
调用所述测试接口类中的所述启动函数;
运行所述测试用例。
优选地,所述待测SDK为游戏服务程序;
所述方法还包括:
接收PaaS(Platform as a Service,是指平台即服务)平台远程发送的SDK初始化参数;
相应地,
在调用所述启动函数时,将所述SDK初始化参数传入所述重新封装后的SDK内部。
本发明的第三方面,提出一种处理设备,包括存储器和处理器,所述存储器上存储有能够被所述处理器加载并执行如上面所述方法的计算机程序。
本发明的第四方面,提出一种计算机可读存储设备,存储有能够被处理器加载并执行如上面所述方法的计算机程序。
与最接近的现有技术相比,本发明具有如下有益效果:
本发明首先获取待测SDK、待测试的第一功能函数的名称列表,以及与第一功能函数一一对应的快捷键的标识,然后利用当前编程语言将第一功能函数封装为第二功能函数,并且构建一个测试接口类,作为运行和测试SDK的接口。另外,还编写测试用例,以便在测试用例中根据快捷键标识触发键盘事件,进而调用第二功能函数,从而实现对SDK的测试。对于制作好的测试包,只需要直接运行其中测试接口类中的启动函数以及测试用例,就可以完成对SDK的测试。另外,本发明在测试SDK之前,还可以接收PaaS平台远程发送的SDK初始化参数,以便在调用测试接口类中的启动函数时将SDK初始化参数传入重新封装后的SDK内部,从而实现对SDK的动态配置。因此,采用本发明的方法,可以实现对SDK测试包的自动化制作、测试,极大地提高了测试效率。
附图说明
图1是本发明SDK测试包的制作方法实施例一的主要步骤示意图;
图2是本发明SDK测试包的制作方法实施例二的主要步骤示意图;
图3是本发明SDK测试方法实施例一的主要步骤示意图;
图4是本发明SDK测试方法实施例二的主要步骤示意图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本申请的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明的描述中,术语“第一”、“第二”仅仅是为了便于描述,而不是指示或暗示所述装置、元件或参数的相对重要性,因此不能理解为对本发明的限制。另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
图1是本发明的SDK测试包的制作方法实施例一的主要步骤示意图。本实施例的SDK测试包中包括:重新封装后的SDK、测试接口类和测试用例。如图1所示,本实施例的制作方法包括步骤A10-A30:
步骤A10,利用当前编程语言将待测SDK进行重新封装,得到重新封装后的SDK。
其中,当前编程语言可以是Python或Java等。
本实施例中,待测SDK是用C++编写的,但是当前编程语言是Python,因此Python无法直接调用待测SDK中的功能函数,就需要对其进行重新封装。
步骤A20,构建测试接口类。
其中,测试接口类用于为重新封装后的SDK提供运行和测试的接口。
步骤A30,编写测试用例。
本实施例中可以通过编写相应的应用程序或脚本来实现对SDK测试包的自动化制作。
图2是本发明SDK测试包的制作方法实施例二的主要步骤示意图。本实施例的SDK测试包中包括:重新封装后的SDK、测试接口类和测试用例。如图2所示,本实施例的制作方法包括步骤B10-B60:
步骤B10,获取待测SDK、待测试的第一功能函数的名称列表,以及与第一功能函数一一对应的快捷键的标识。
具体地,可以通过通信接口获取待测SDK,可以通过通信接口、配置文件或人机交互界面获取第一功能函数的名称列表和快捷键的标识。其中,通信接口包括:网络接口或USB接口等。
这里的第一功能函数可能是一个或多个,是包含在待测SDK内部的功能函数。本实施例中为每个第一功能函数都分配了对应的快捷键,以便在SDK运行起来以后,只要触发某个快捷键,就可以测试对应的功能函数。
步骤B20,将待测SDK转换为能够被当前编程语言调用的模块。
步骤B30,导入模块;
步骤B40,从模块中逐一查找第一功能函数,并分别封装为对应的第二功能函数,从而得到重新封装后的SDK。
本实施例中,待测SDK是用C++编写的用在PC机上的SDK,当前编程语言是Python,需要使用Pybind11(是一个轻量级的只包含一组头文件的C++库,可以将C++功能映射到Python)将待测SDK编译成Python可调用的模块,然后编写Python代码导入该模块,从该模块中逐一查找第一功能函数,并将找到的每个第一功能函数封装为对应的第二功能函数,也就是对待测SDK进行了重新封装。如果待测SDK是在安卓环境下开发的,则可以用Python编写APK程序,将底层so包进行封装。
步骤B50,创建一个类,并在创建的类中添加启动函数、第二功能函数,以及与每个第二功能函数一一对应的快捷键响应函数,从而构成测试接口类。
其中,启动函数用于启动重新封装后的SDK,并运行键盘事件函数;键盘事件函数用于捕获键盘事件并获取按键标识,进而根据按键标识调用对应的快捷键响应函数;快捷键响应函数用于调用对应的第二功能函数。
步骤B60,根据快捷键的标识编写测试用例,测试用例用于根据快捷键的标识触发键盘事件,进而对重新封装后的SDK进行测试,并获取相应的测试结果。
具体地,在测试用例中添加一个或多个触发函数,这些触发函数用于根据快捷键的标识触发键盘事件,进而调用第二功能函数,并可以获取相应的测试结果。
图3是本发明的SDK测试方法实施例一的主要步骤示意图。如图3所示,本实施例的测试方法包括步骤C10-C30:
步骤C10,采用上面所述的方法制作SDK测试包。
步骤C20,调用测试接口类中的启动函数。
在启动函数中可以启动重新封装后的SDK,并运行键盘事件函数。
步骤C30,运行测试用例。
测试用例中的触发函数根据快捷键的标识触发键盘事件,当该事件被键盘事件函数捕获以后,键盘事件函数会获取触发这个事件的按键标识,然后判断这个按键标识是否等于某一个快捷键标识,若是就调用对应的快捷键响应函数,快捷键响应函数会调用第二功能函数。由于第二功能函数就是第一功能函数重新封装后得到的,因此,通过上述方法就可以对第一功能函数名称列表中的所有功能函数逐一进行测试,从而完成对SDK的测试。
图4是本发明的SDK测试方法实施例二的主要步骤示意图。本实施例中,待测试的SDK为游戏服务程序。如图4所示,本实施例的测试方法包括步骤D10-D40:
步骤D10,采用上面所述的SDK测试包制作方法制作SDK测试包。
步骤D20,接收PaaS平台远程发送的SDK初始化参数。
显然,步骤D10和步骤D20可以颠倒顺序或并列执行。
步骤D30,调用测试接口类中的启动函数,并将SDK初始化参数传入重新封装后的SDK内部。
通过这种方式,SDK初始化参数不必要写死在SDK内部或启动函数中,而是可以动态设置。
步骤D40,运行测试用例。该步骤与上面SDK测试方法实施例一中的步骤C30相同,不再展开描述。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
进一步地,基于上面的SDK测试包制作方法和SDK测试方法,本发明还提供了一种处理设备的实施例。本实施例的处理设备包括存储器和处理器,所述存储器上存储有能够被所述处理器加载并执行如上面所述方法的计算机程序。
更进一步地,本发明还提供了一种计算机可读存储设备的实施例。本实施例的存储设备中存储有能够被处理器加载并执行如上面所述方法的计算机程序。
所述计算机可读存储设备例如包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的设备。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案。但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (10)
1.一种SDK测试包的制作方法,其特征在于,所述SDK测试包包括:重新封装后的SDK、测试接口类和测试用例;所述方法包括:
利用当前编程语言将待测SDK进行重新封装,得到所述重新封装后的SDK;
构建所述测试接口类;
编写所述测试用例;
其中,
所述测试接口类用于为所述重新封装后的SDK提供运行和测试的接口。
2.根据权利要求1所述的SDK测试包的制作方法,其特征在于,所述方法还包括:
获取待测SDK、待测试的第一功能函数的名称列表,以及与所述第一功能函数一一对应的快捷键的标识;
所述编写所述测试用例,包括:
根据所述快捷键的标识编写所述测试用例,所述测试用例用于根据所述快捷键的标识触发键盘事件,进而对所述重新封装后的SDK进行测试,并获取相应的测试结果。
3.根据权利要求2所述的SDK测试包的制作方法,其特征在于,
所述利用当前编程语言将所述待测SDK进行重新封装,得到所述重新封装后的SDK,包括:
将所述待测SDK转换为能够被当前编程语言调用的模块;
导入所述模块;
从所述模块中逐一查找所述第一功能函数,并分别封装为对应的第二功能函数,从而得到重新封装后的SDK。
4.根据权利要求3所述的SDK测试包的制作方法,其特征在于,
所述构建所述测试接口类,包括:
创建一个类,并在创建的类中添加启动函数、所述第二功能函数,以及与每个所述第二功能函数一一对应的快捷键响应函数,从而构成所述测试接口类;
其中,
所述启动函数用于启动所述重新封装后的SDK,并运行键盘事件函数;
所述键盘事件函数用于捕获键盘事件并获取按键标识,进而根据所述按键标识调用对应的所述快捷键响应函数;
所述快捷键响应函数用于调用对应的所述第二功能函数。
5.根据权利要求4所述的SDK测试包的制作方法,其特征在于,
通过通信接口获取所述待测SDK;
通过通信接口、配置文件或人机交互界面获取所述第一功能函数的名称列表和所述快捷键的标识;
其中,所述通信接口包括:网络接口或USB接口。
6.根据权利要求5所述的SDK测试包的制作方法,其特征在于,
所述当前编程语言包括:Python或Java。
7.一种SDK测试方法,其特征在于,所述方法包括:
采用如权利要求4-6中任一项所述的方法制作SDK测试包;
调用所述测试接口类中的所述启动函数;
运行所述测试用例。
8.根据权利要求7所述的SDK测试方法,其特征在于,
所述待测SDK为游戏服务程序;
所述方法还包括:
接收PaaS平台远程发送的SDK初始化参数;
相应地,
在调用所述启动函数时,将所述SDK初始化参数传入所述重新封装后的SDK内部。
9.一种处理设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被所述处理器加载并执行如权利要求1-8中任一项所述方法的计算机程序。
10.一种计算机可读存储设备,其特征在于,存储有能够被处理器加载并执行如权利要求1-8中任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211533367.0A CN115543857B (zh) | 2022-12-02 | 2022-12-02 | Sdk测试包的制作方法、sdk测试方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211533367.0A CN115543857B (zh) | 2022-12-02 | 2022-12-02 | Sdk测试包的制作方法、sdk测试方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115543857A true CN115543857A (zh) | 2022-12-30 |
CN115543857B CN115543857B (zh) | 2023-03-21 |
Family
ID=84721863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211533367.0A Active CN115543857B (zh) | 2022-12-02 | 2022-12-02 | Sdk测试包的制作方法、sdk测试方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543857B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930400A (zh) * | 2010-08-20 | 2010-12-29 | 北京神州泰岳软件股份有限公司 | Sdk自动化测试系统及方法 |
CN111338943A (zh) * | 2020-02-21 | 2020-06-26 | 北京字节跳动网络技术有限公司 | 一种测试方法、装置、电子设备及可读存储介质 |
CN112433940A (zh) * | 2020-11-19 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 软件开发工具包sdk测试方法及相关设备 |
WO2022134915A1 (zh) * | 2020-12-25 | 2022-06-30 | 中兴通讯股份有限公司 | 一种接口测试方法、计算机设备及计算机可读存储介质 |
-
2022
- 2022-12-02 CN CN202211533367.0A patent/CN115543857B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930400A (zh) * | 2010-08-20 | 2010-12-29 | 北京神州泰岳软件股份有限公司 | Sdk自动化测试系统及方法 |
CN111338943A (zh) * | 2020-02-21 | 2020-06-26 | 北京字节跳动网络技术有限公司 | 一种测试方法、装置、电子设备及可读存储介质 |
CN112433940A (zh) * | 2020-11-19 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 软件开发工具包sdk测试方法及相关设备 |
WO2022134915A1 (zh) * | 2020-12-25 | 2022-06-30 | 中兴通讯股份有限公司 | 一种接口测试方法、计算机设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
千锋软件测试: ""一文带你读懂SDK测试"", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/504980727》 * |
肮脏的烟火: ""如何进行SDK的测试"", 《HTTPS://BLOG.CSDN.NET/WEIXIN_44635741/ARTICLE/DETAILS/118801259》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115543857B (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766101B (zh) | App启动事件的处理方法、装置和设备 | |
US20190324772A1 (en) | Method and device for processing smart contracts | |
CN111209122B (zh) | 接口调用方法、装置、电子设备及存储介质 | |
EP3203406A1 (en) | Sensitive information security protection method and device | |
CN110308999B (zh) | 一种应用间动态共享依赖包的方法、存储介质及移动终端 | |
CN109254765B (zh) | 定时任务管理方法、装置、计算机设备及存储介质 | |
CN109062714B (zh) | 远程控制安卓设备的方法、装置及电子设备 | |
CN111651169B (zh) | 基于web容器的区块链智能合约运行方法及系统 | |
CN112015537A (zh) | 数据处理任务的执行方法、系统、终端设备及存储介质 | |
CN110324722B (zh) | 直播间中数据的获取方法、装置、设备和存储介质 | |
CN115543857B (zh) | Sdk测试包的制作方法、sdk测试方法及设备 | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
CN108268261B (zh) | 一种智能终端的ui定制方法、存储介质及智能终端 | |
CN113127329B (zh) | 脚本调试方法、装置及计算机存储介质 | |
CN107239298B (zh) | 应用程序调试方法及装置 | |
CN112351094A (zh) | 一种网页推送方法、装置、电子设备及存储介质 | |
CN111597020A (zh) | 一种应用程序编程接口api调试方法以及调试终端 | |
CN116956272A (zh) | 权限调用监控方法、装置及电子设备 | |
CN115658165A (zh) | 用于启动租户插件以及实现进程内通信的方法和装置 | |
CN111427770B (zh) | 一种资源测试方法及相关设备 | |
CN115002548A (zh) | 电视平台应用接口调用方法、装置、终端设备及存储介质 | |
CN113064601B (zh) | 动态加载文件的确定方法、装置、终端及存储介质 | |
CN113485903A (zh) | 一种基于hook的参数统计方法和装置 | |
CN109308256B (zh) | 一种java程序动态分析方法、设备和存储介质 | |
CN110941459A (zh) | 调用Replugin插件的方法及装置 |
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 |