CN104881343A - 一种测试方法和测试系统 - Google Patents
一种测试方法和测试系统 Download PDFInfo
- Publication number
- CN104881343A CN104881343A CN201410068754.0A CN201410068754A CN104881343A CN 104881343 A CN104881343 A CN 104881343A CN 201410068754 A CN201410068754 A CN 201410068754A CN 104881343 A CN104881343 A CN 104881343A
- Authority
- CN
- China
- Prior art keywords
- parameter
- interface
- test
- testing
- imports
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种测试方法和测试系统,能够使被测系统在依赖的外部系统的测试数据或者接口不可用的情况下仍进行测试。本发明的测试方法包括:步骤A:获取被测系统的指定外围接口的传入参数,并实现模拟方法,所述模拟方法的方法名与所述外围接口的对应于所述被测系统的方法的方法名相同;步骤B:根据所述模拟方法,调用公共方法并将所需传入参数作为该公共方法的传入参数,所述公共方法用于从数据库中获取预先配置的该传入参数对应的返回值;步骤C:输出所述返回值。接下来即可配置模拟接口方法和真实接口的开关,动态控制程序调用,以及正常的进行手工测试和接口自动化测试。
Description
技术领域
本发明涉及计算机技术领域,特别地涉及一种测试方法和测试系统。
背景技术
传统的接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。目前的实现主要是由开发人员或白盒测试工程师,自己编写程序去调用或者利用一些工具去执行接口测试。这种方式对需要测试人员的编程水平要求比较高,并且没有一个好的工具能够对所有的接口类型进行支持,例如:主流的工具像SOAPUI只支持soap的和REST协议的接口。所以在接口测试过程中,往往需要自己编写程序来测试接口。存在一个成本的问题。
传统的自动化测试通常是使用人工或者自动手段来运行或测试某个系统,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。自动化测试分UI(用户界面)的自动化测试(通过操作鼠标和键盘模拟人的行为,达到自动测试)。和接口的自动化测试(通过编写接口调用代码或者接口测试工具测试接口),在此过程中,为了节省人力、时间或硬件资源,提高测试效率。
目前在许多情况下,传统的自动化测试、接口测试因种种原因变得困难,以下举例说明。
例如,随着应用系统的复杂度的提高,依赖外围的接口很多,测试环境不够独立。实现手工和自动化UI测试很困难。比如被测代码中需要依赖第三方接口返回值进行逻辑处理,可能因为网络或者其他环境因素,调用第三方经常会中断或者失败.导致自动化结果经常出错,无法进行自动化UI测试和接口测试,也困挠着手工测试的开展。
又如,被测单元依赖的模块尚未开发完成,而被测单元需要依赖模块的返回值进行后续处理,比如开发过程中service层的代码中,包含对Dao层的调用,但是,DAO层代码尚未实现。手工测试,自动化UI测试,接口测试都无法进行。
再如,被测的接口较难模拟或者构造比较复杂,无法进行手工,接口和自动化UI测试。例如银行支付的接口异常条件有很多,但是模拟这种异常条件很复杂或者无法模拟,或者有些支付接口是真实的接口,不能直接进行调用或测试。但是业务测试必须依赖此类接口和程序才能实现一个完整的流程。手工测试,自动化UI测试,接口测试都无法进行。
再如,自动化UI测试和接口测试依赖很稳定的测试环境,搭建一套完整的自动化测试环境很困难。跨部门合作的时候,当前项目组大部分接口都是调用别的项目组的接口,程序的控制不在自己组内,在其它组更新环境或者修改接口基础数据的时候,经常会出现接口不可用的情况,或者依赖这个接口的测试数据被别的项目组的人改了,手工测试,自动化UI测试,接口测试都无法进行或者进行的非常困难。
总体而言,在被测系统的外部系统的数据因种种原因不可用的情况下,手工测试,自动化UI测试,接口测试都无法进行。
发明内容
有鉴于此,本发明提供一种测试方法和测试系统,能够使被测系统在其外部系统的数据不可用的情况下仍进行测试。
为实现上述目的,根据本发明的一个方面,提供了一种测试方法。
本发明的测试方法包括:步骤A:获取被测系统的指定外围接口的传入参数,并调用模拟方法,所述模拟方法的方法名与所述外围接口的对应于所述被测系统的方法的方法名相同;步骤B:根据所述模拟方法,调用公共方法并将所述传入参数作为该公共方法的传入参数,所述公共方法用于从数据库中获取预先配置的该传入参数对应的返回值;步骤C:输出所述返回值。
可选地,在所述步骤A中,运行接口测试脚本以获取所述传入参数;并且所述步骤A中还包括:运行自动化接口测试脚本或自动化测试脚本。
可选地,所述步骤A之前,还包括:将所述外围接口的多个传入参数及其对应的返回值保存在数据库中;所述步骤C之后,还包括:再次执行步骤A,其中获取的传入参数为所述多个传入参数中的未获取过的传入参数。
根据本发明的另一方面,提供了一种测试系统。
本发明的测试系统包括:第一调用模块,用于获取被测系统的指定接口的外围接口的传入参数,并调用模拟方法,所述模拟方法的方法名与所述外围接口的对应于所述被测系统的方法的方法名相同;第二调用模块,用于根据所述模拟方法,调用公共方法并将所述传入参数作为该公共方法的传入参数,所述公共方法用于从数据库中获取预先配置的该传入参数对应的返回值;输出模块,用于输出所述返回值。
可选地,所述第一调用模块还用于运行接口测试脚本以获取所述传入参数,并且在同一次测试中运行自动化用户界面测试脚本。
可选地,还包括保存模块和控制模块,其中:所述保存模块用于将所述外围接口的多个传入参数及其对应的返回值保存在数据库中;所述控制模块用于在所述输出模块输出所述返回值之后触发所述第一调用模块;所述第一调用模块还用于从所述数据库中获取未获取过的传入参数。
可选地,还包括记录模块,用于记录所述外围接口所属的外部系统是否可用;所述第一调用模块还用于在所述外部系统可用的情况下,调用所述外围接口的对应于所述被测系统的方法;以及在所述外部系统不可用的情况下,调用所述模拟方法。
根据本发明的技术方案,根据被测系统的外围接口的说明文档实现模拟接口,在该模拟接口的实现类的方法中查询预先配置好的数据库,该数据库中保存有外围接口的传入参数和对应的返回值,这样采用模拟接口代替实际的外围接口,从而将被测系统与外部系统解耦,测试时不依赖于外部系统的数据是否可用,使被测系统在其外部系统的数据不可用的情况下仍进行测试。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的测试方法的示意图;
图2是根据本发明实施例的测试系统的模块的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
对于一个被测系统,其有一个或多个用于与外部系统进行数据交换的外围接口,其中有些外围接口在外部系统中维护,从而被测系统的一些测试数据也在外部系统中维护,这些数据有可能处于不可用的状态。因此为了保证本系统测试的可靠性,需要解除对这些外部系统的数据的依赖。本实施例中,根据外围接口的说明文档,将外围接口的所有在测试过程中输入的参数,和该输入参数对应的返回值,存储到数据库中。并且实现模拟接口的实现类,在外部系统数据不可用时代替外围接口。模拟接口的方法为模拟方法,该模拟方法的方法名与外围接口的对应于被测系统的方法的方法名相同(外部系统通过一个接口与多个系统关联,该接口实现类对应于该多个系统有不同的方法),这样如果外部系统数据可用,则按该方法名调用的是外围接口的对应于所述被测系统的方法,反之则调用的是模拟方法。这样无需修改被测系统的代码。模拟方法在被调用时,根据该模拟方法,进一步调用一个用来查询数据库的方法,在此将其称作公共方法,这样,传入外围接口的传入参数后,调用模拟方法就可以从数据库中得到该传入参数的返回值。因为每个外围接口都有可能需要一个模拟接口来代替,所以对于数据库需要多次进行类似的查询,这样将查询操作以一个公共方法来实现,有助于简化模拟方法的代码编写和维护。
在系统测试前的发布环节中,采用Maven工具或JAVA命令将各个模拟接口的实现类打一个jar包,将此包放入被测的应用程序环境目录下,并设置配置文件中的接口实现类的地址。因为外部系统的数据可用性往往是不确定的,在其可用时,仍直接使用;不可用时,即采用本实施例的方案,采用上述的数据库中的返回值。所以在发布接口时,需根据外部系统的数据是否可用,将接口实现类的地址设置为系统将来实际使用的接口实现类的地址或者设置为模拟接口的实现类的地址。
在接口测试时,启动被测系统的应用程序,运行接口测试脚本,其中对于需要用到的外部系统的数据,在该外部系统数据不可用时,根据图1所示的流程处理,图1是根据本发明实施例的测试方法的示意图。
步骤S11:获取被测接口的传入参数。运行测试脚本时读取传入参数,这些传入参数都是上述数据库中的传入参数。
步骤S12:调用模拟方法。
步骤S13:调用公共方法。公共方法是在调用并执行模拟方法时,根据模拟方法中的指令进行调用。此时公共方法的传入参数为步骤S11中获取的传入参数。在执行该公共方法时,即从数据库中查询传入参数对应的返回值。
步骤S14:输出步骤S13中得到的返回值。该返回值作为参数,被接口测试脚本的其他指令使用,从而得以完成测试。
在有些情况下对于被测系统,需要先后采用多组传入参数进行测试,所以在步骤S14之后,可以再次返回步骤S11,并获取新的即之前未获取过的传入参数,以及执行步骤S12至步骤S14。
步骤S11中可以通过运行接口测试脚本以获取被测接口的传入参数,此时还可以运行自动化接口测试脚本以进行自动化测试。因为按照上述流程,使依赖于外部系统的数据的接口所需数据已经可以通过调用公共方法从数据库中获得,从而使被测系统与外部系统解耦,使自动化测试过程中需要的数据都可得到,从而顺利完成自动化测试。
图2是根据本发明实施例的测试系统的模块的示意图。如图2所示,在现有的测试系统的基础上,测试系统20还包括第一调用模块21、第二调用模块22、以及输出模块23。
第一调用模块21用于获取被测系统的指定接口的外围接口的传入参数,并调用模拟方法;第二调用模块22用于根据模拟方法,调用公共方法并将传入参数作为该公共方法的传入参数;输出模块23用于输出该返回值。
第一调用模块21还可用于运行接口测试脚本以获取被测接口的传入参数,并且在同一次测试中运行自动化用户界面测试脚本。
测试系统20还可包括保存模块和控制模块(图中未示出),其中:保存模块用于将被测接口的多个传入参数及其对应的返回值保存在数据库中;控制模块用于在输出模块23输出返回值之后触述第一调用模块21;这样,第一调用模块21还可用于从数据库中获取未获取过的传入参数。
测试系统20还可包括记录模块(图中未示出),可采用配置文件来实现,用于记录被测接口的外部系统是否可用;这样第一调用模块21还可用于在外部系统可用的情况下,按照指定的方法名称调用外部系统的接口的方法;以及在外部系统不可用的情况下,按照指定的方法名称调用被测接口的方法。即优先使用实际的外部系统数据,只有当外部系统数据不可用时再采用数据库中配置的数据。
根据本发明实施例的技术方案,根据被测系统的外围接口的说明文档实现模拟接口,在该模拟接口的实现类的方法中查询预先配置好的数据库,该数据库中保存有外围接口的传入参数和对应的返回值,这样采用模拟接口代替实际的外围接口,从而将被测系统与外部系统解耦,测试时不依赖于外部系统的数据是否可用,使被测系统在其外部系统的数据不可用的情况下仍进行测试。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (7)
1.一种测试方法,其特征在于,包括:
步骤A:获取被测系统的指定外围接口的传入参数,并调用模拟方法,所述模拟方法的方法名与所述外围接口的对应于所述被测系统的方法的方法名相同;
步骤B:根据所述模拟方法,调用公共方法并将所述传入参数作为该公共方法的传入参数,所述公共方法用于从数据库中获取预先配置的该传入参数对应的返回值;
步骤C:输出所述返回值。
2.根据权利要求1所述的方法,其特征在于,
在所述步骤A中,运行接口测试脚本以获取所述传入参数;
并且所述步骤A中还包括:运行自动化接口测试脚本或自动化测试脚本。
3.根据权利要求1或2所述的方法,其特征在于,
所述步骤A之前,还包括:将所述外围接口的多个传入参数及其对应的返回值保存在数据库中;
所述步骤C之后,还包括:再次执行步骤A,其中获取的传入参数为所述多个传入参数中的未获取过的传入参数。
4.一种测试系统,其特征在于,包括:
第一调用模块,用于获取被测系统的指定接口的外围接口的传入参数,并调用模拟方法,所述模拟方法的方法名与所述外围接口的对应于所述被测系统的方法的方法名相同;
第二调用模块,用于根据所述模拟方法,调用公共方法并将所述传入参数作为该公共方法的传入参数,所述公共方法用于从数据库中获取预先配置的该传入参数对应的返回值;
输出模块,用于输出所述返回值。
5.根据权利要求4所述的测试系统,其特征在于,所述第一调用模块还用于运行接口测试脚本以获取所述传入参数,并且在同一次测试中运行自动化用户界面测试脚本。
6.根据权利要求4或5所述的测试系统,其特征在于,还包括保存模块和控制模块,其中:
所述保存模块用于将所述外围接口的多个传入参数及其对应的返回值保存在数据库中;
所述控制模块用于在所述输出模块输出所述返回值之后触发所述第一调用模块;
所述第一调用模块还用于从所述数据库中获取未获取过的传入参数。
7.根据权利要求4或5所述的测试系统,其特征在于,
还包括记录模块,用于记录所述外围接口所属的外部系统是否可用;
所述第一调用模块还用于在所述外部系统可用的情况下,调用所述外围接口的对应于所述被测系统的方法;以及在所述外部系统不可用的情况下,调用所述模拟方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410068754.0A CN104881343B (zh) | 2014-02-27 | 2014-02-27 | 一种测试方法和测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410068754.0A CN104881343B (zh) | 2014-02-27 | 2014-02-27 | 一种测试方法和测试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104881343A true CN104881343A (zh) | 2015-09-02 |
CN104881343B CN104881343B (zh) | 2017-03-15 |
Family
ID=53948847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410068754.0A Active CN104881343B (zh) | 2014-02-27 | 2014-02-27 | 一种测试方法和测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881343B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975393A (zh) * | 2016-05-04 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 一种页面显示的检测方法及系统 |
CN106776345A (zh) * | 2017-01-16 | 2017-05-31 | 北京恒华伟业科技股份有限公司 | 一种接口发布系统及接口对接测试方法 |
CN108347356A (zh) * | 2017-01-24 | 2018-07-31 | 北京京东尚科信息技术有限公司 | 一种多协议单元测试方法、装置、电子设备和存储介质 |
CN109213676A (zh) * | 2018-07-06 | 2019-01-15 | 中国电力科学研究院有限公司 | 一种用于测试脚本的离线调试方法及装置 |
CN109726098A (zh) * | 2018-03-16 | 2019-05-07 | 平安科技(深圳)有限公司 | 接口测试方法、装置及计算机可读存储介质 |
WO2019085466A1 (zh) * | 2017-11-02 | 2019-05-09 | 平安科技(深圳)有限公司 | 关联测试方法、系统、应用服务器及计算机可读存储介质 |
CN109756543A (zh) * | 2017-11-08 | 2019-05-14 | 北京京东尚科信息技术有限公司 | 程序关联关系的解耦系统和方法 |
CN109828924A (zh) * | 2019-01-25 | 2019-05-31 | 网联清算有限公司 | 测试方法、装置和计算设备及介质 |
CN110109656A (zh) * | 2019-03-25 | 2019-08-09 | 平安科技(深圳)有限公司 | 接口模拟方法、装置、计算机设备和存储介质 |
CN113672513A (zh) * | 2021-08-23 | 2021-11-19 | 四川新网银行股份有限公司 | 一种自动生成测试挡板的系统及方法 |
CN117786651A (zh) * | 2024-02-27 | 2024-03-29 | 杭州玳数科技有限公司 | 一种基于java ClassLoader实现单点登录的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398778A (zh) * | 2007-09-29 | 2009-04-01 | 中兴通讯股份有限公司 | 自动化集成测试方法 |
CN103412817A (zh) * | 2013-08-14 | 2013-11-27 | 迈普通信技术股份有限公司 | 自动化测试脚本脱机调试方法及系统 |
-
2014
- 2014-02-27 CN CN201410068754.0A patent/CN104881343B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398778A (zh) * | 2007-09-29 | 2009-04-01 | 中兴通讯股份有限公司 | 自动化集成测试方法 |
CN103412817A (zh) * | 2013-08-14 | 2013-11-27 | 迈普通信技术股份有限公司 | 自动化测试脚本脱机调试方法及系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975393B (zh) * | 2016-05-04 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 一种页面显示的检测方法及系统 |
CN105975393A (zh) * | 2016-05-04 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 一种页面显示的检测方法及系统 |
CN106776345A (zh) * | 2017-01-16 | 2017-05-31 | 北京恒华伟业科技股份有限公司 | 一种接口发布系统及接口对接测试方法 |
CN108347356A (zh) * | 2017-01-24 | 2018-07-31 | 北京京东尚科信息技术有限公司 | 一种多协议单元测试方法、装置、电子设备和存储介质 |
WO2019085466A1 (zh) * | 2017-11-02 | 2019-05-09 | 平安科技(深圳)有限公司 | 关联测试方法、系统、应用服务器及计算机可读存储介质 |
CN109756543A (zh) * | 2017-11-08 | 2019-05-14 | 北京京东尚科信息技术有限公司 | 程序关联关系的解耦系统和方法 |
CN109726098A (zh) * | 2018-03-16 | 2019-05-07 | 平安科技(深圳)有限公司 | 接口测试方法、装置及计算机可读存储介质 |
CN109213676A (zh) * | 2018-07-06 | 2019-01-15 | 中国电力科学研究院有限公司 | 一种用于测试脚本的离线调试方法及装置 |
CN109828924A (zh) * | 2019-01-25 | 2019-05-31 | 网联清算有限公司 | 测试方法、装置和计算设备及介质 |
CN110109656A (zh) * | 2019-03-25 | 2019-08-09 | 平安科技(深圳)有限公司 | 接口模拟方法、装置、计算机设备和存储介质 |
CN113672513A (zh) * | 2021-08-23 | 2021-11-19 | 四川新网银行股份有限公司 | 一种自动生成测试挡板的系统及方法 |
CN117786651A (zh) * | 2024-02-27 | 2024-03-29 | 杭州玳数科技有限公司 | 一种基于java ClassLoader实现单点登录的方法及装置 |
CN117786651B (zh) * | 2024-02-27 | 2024-06-07 | 杭州玳数科技有限公司 | 一种基于java ClassLoader实现单点登录的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104881343B (zh) | 2017-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881343A (zh) | 一种测试方法和测试系统 | |
US10353913B2 (en) | Automating extract, transform, and load job testing | |
CN105487864B (zh) | 代码自动生成的方法和装置 | |
US8918448B2 (en) | Application component decomposition and deployment | |
US10606734B2 (en) | Intelligent device selection for mobile application testing | |
US10366112B2 (en) | Compiling extract, transform, and load job test data cases | |
CN109446059A (zh) | 测试模板脚本的生成方法及装置 | |
US11061739B2 (en) | Dynamic infrastructure management and processing | |
WO2017213846A1 (en) | Automating feature graduation | |
US11669332B1 (en) | Systems and methods for modernizing legacy applications | |
US20130167112A1 (en) | Cross-platform virtual machine and method | |
US20150143267A1 (en) | SYSTEM AND METHOD FOR DEVELOPING A RULE-BASED EVENT-DRIVEN MULTI-LAYERED FRONTEND FOR BUSINESS SERVICES AND RENDERING THE GUIs ON MULTIPLE CLIENT DEVICES | |
CN110531985A (zh) | Sdk初始化方法及系统、电子设备、存储介质 | |
US9612944B2 (en) | Method and system for verifying scenario based test selection, execution and reporting | |
US11200049B2 (en) | Automated test authorization management | |
US11928627B2 (en) | Workflow manager | |
CN104424525B (zh) | 辅助确定项目范围的方法和装置 | |
EP2962181A1 (en) | An interface for creating a plan artifact | |
US11429472B1 (en) | Automated cognitive software application error detection | |
US20220122038A1 (en) | Process Version Control for Business Process Management | |
CN109189370B (zh) | 软件组件的生成方法、装置、设备及计算机可读存储介质 | |
CN102521133A (zh) | 基于tcl的白盒测试自动化方法及系统 | |
US11093318B2 (en) | Data integration process refinement and rejected data correction | |
US9250870B2 (en) | Automated creation of shim programs and interfaces | |
CN113542429B (zh) | 一种平台入驻处理方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |