CN107622017A - 一种通用自动化软件测试的解析方法 - Google Patents
一种通用自动化软件测试的解析方法 Download PDFInfo
- Publication number
- CN107622017A CN107622017A CN201710950580.4A CN201710950580A CN107622017A CN 107622017 A CN107622017 A CN 107622017A CN 201710950580 A CN201710950580 A CN 201710950580A CN 107622017 A CN107622017 A CN 107622017A
- Authority
- CN
- China
- Prior art keywords
- case
- code
- variable
- keyword
- information
- 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:将生成的用例代码进行选择性执行,如果选择执行则启动执行器进行用例代码执行,如果选择不执行则返回到读取用例进行解析并生成用例代码;D:用例代码执行完成则结束,如果未完成则继续执行直至完成则结束。
Description
技术领域
本发明属于自动化软件测试领域,尤其涉及一种通用自动化软件测试的解析方法。
背景技术
随着软件行业的发展,软件越来越复杂,测试用例越来越多,单纯靠手工测试根本无法每个版本都执行那成千上万的用例。执行用例工作量太大,导致测试工程师没办法考虑更多场景,思考更多可能,结果测试质量不高,问题反复等问题时有出现。于是需要将稳定的,必须的手工用例转换成自动化用例,将测试工程师从重复劳动中解放出来,可以投入更多精力到思考创造性的,扩展性的工作中去。更好的提高软件质量。
目前主流的自动化测试实现自动化无非3种模式:典型的自动化测试基本框架结构类型有四种:脚本模块化架构,测试库架构,关键词或表格驱动架构,数据驱动架构。测试库构架框架(The Test Library Architecture Framework):将脚本中公共的方法提取抽象成一个个插件,通过插件与数据确定一个测试步骤。数据驱动测试框架(The Data-Driven Testing Framework):仅仅是将测试数据从测试脚本中分离出来,开始了非混沌状态的第一步,这也是所有测试架构中最简单的一种。数据驱动方式的测试代码不便重用,对测试人员的编程能力要求比较高;比较有名的有Automated Testing Specialists Inc.提出的基于数据驱动的自动化测试方法以及GUI测试方法。关键字驱动或表驱动测试框架(The Keyword-Driven or Table-Driven Testing Framework):关键字驱动方式的测试代码便于重用,数据表记录包含了动作,输入数据和输出的期望结果;Mercury InteractiveInc.提出的关键字驱动自动化测试方法及录制/回放式的自动化测试方法. 极大的减少了自动化开发工程师维护量,毕竟在测试团队中,自动化开发工程师占的比较少。缺点是框架的抽象程度比较高,对自动化测试工程师的开发能力比较高。主流方案存在的痛点:普通测试人员能参与的部分不多,主要工作量还是在自动化测试工程师身上;对测试工程师要求比较高;前期投入大,后期维护成本依然高;手工测试和自动化测试不能通用;接口测试、功能测试、UI测试、APP测试用例模板差异较大,不能通用。
发明内容
本发明的目的在于提供一种通用自动化软件测试的解析方法,旨在解决现有技术中存在的技术问题。
本发明是这样实现的,一种通用自动化软件测试的解析方法,所述解析方法包括以下步骤:
A:将被测对象进行编辑得到具体的用例;
B:读取用例进行解析并生成用例代码;
C:将生成的用例代码进行选择性执行,如果选择执行则启动执行器进行用例代码执行,如果选择不执行则返回到读取用例进行解析并生成用例代码;
D:用例代码执行完成则结束,如果未完成则继续执行直至完成则结束。
本发明的进一步技术方案是:所述A步骤还包括以下步骤:
A1、将被测对象进行流程拆分成一个个简单的用例步骤;
A2、将用例步骤所涉及的对象信息进行录入。
本发明的进一步技术方案是:所述A1步骤还包括以下步骤:
A11、将被测对象进行正确识别,录入关键字信息,并分析是否需要新增关键字,如是则进行新增关键字,如否则不需进行新增关键字;
A12、将关键字与正确识别的对象类型进行并联;
A13、并联完成则进行用例编写,首先提取共用变量,将涉及的变量信息进行录入,在将被测对象编写成用例步骤。
本发明的进一步技术方案是:所述A11步骤中的关键字包括关键字ID(FUNC_ID),关键字名称(FUNC_NAME),关键字接口代码(FUNC_CODE),代码对应执行器(EXEC_TYPE),代码依赖库(FUNC_LIB),代码路径(FUNC_PATH)。
本发明的进一步技术方案是:所述A12步骤中的对象类型包括对象类型ID(OBJ_TYPE_ID),对象类型名称(OBJ_TYPE_NAME),执行器类型(EXEC_TYPE)。
本发明的进一步技术方案是:所述A13步骤中涉及的变量信息包括:
用例信息:用例信息包括用例ID(TESTCASE_ID),用例名称(TESTCASE_NAME),用例归属(TESTCASE_Adscription),用例路径(TESTCASE_PATH),用例创建人(TESTCASE_Creater);
步骤信息:步骤信息包括步骤ID(STEP_ID),用例ID(TESTCASE_ID),对象ID(OBJ_ID),动作关键字ID(FUNC_ID),检查关键字ID(CHECK_FUNC_ID),步骤序号(STEP_NUM);
变量集信息:变量集信息包括变量集ID(VariableSet_ID),变量集名称(VariableSet_NAME),关联用例ID(TESTCASE_ID);
变量信息:变量信息包括变量ID(Variable_ID),变量名称(Variable_NAME),归属变量集ID(VariableSet_ID);
值信息:值信息包括变量值ID(Value_ID),变量ID(Variable_ID),值内容(Value_Content)。
本发明的进一步技术方案是:所述A2步骤中涉及的对象信息包括对象ID(OBJ_ID),对象名称(OBJ_NAME),对象描述(OBJ_DESC),对象类型(OBJ_TYPE),执行器类型(EXEC_TYPE),对象定位识别信息(OBJ_CODE),是否动态对象(IS_Dynamic),父对象ID(Father_ID)。
本发明的进一步技术方案是:所述B步骤还包括以下步骤:
B1、解析用例步骤,并将用例步骤分解成包含四个要素的操作对象、动作、校验方法和变量,动作和校验方法都属于关键字库中的具体抽象方法;
B2、替换变量的具体参数,驱动相关关键字运行,实现用例步骤的逻辑;
B3、生成用例代码,根据不同的对象类型关联的执行器生成用例代码;
B4、在不同执行器上执行生成的用例代码。
本发明的有益效果是:普通测试人员能参与的部分变多,自动化测试工程师工作量变的简单;对测试工程师要求降低;后期维护成本降低;手工测试和自动化测试能通用;接口测试、功能测试、UI测试、APP测试用例模板差异变小,能通用。
附图说明
图1是本发明实施例提供的一种通用自动化软件测试的解析方法的流程框图。
具体实施方式
附图标记:
图1示出了本发明提供的一种通用自动化软件测试的解析方法,所述解析方法包括以下步骤:
步骤S1:将被测对象进行编辑得到具体的用例;
所述步骤S1还包括以下步骤:
步骤S11:将被测对象进行流程拆分成一个个简单的用例步骤;
所述步骤S11步骤还包括以下步骤:
步骤S111:将被测对象进行正确识别,录入关键字信息,并分析是否需要新增关键字,如是则进行新增关键字,如否则不需进行新增关键字;
所述步骤S111中的关键字包括关键字ID(FUNC_ID),关键字名称(FUNC_NAME),关键字接口代码(FUNC_CODE),代码对应执行器(EXEC_TYPE),代码依赖库(FUNC_LIB),代码路径(FUNC_PATH)。
步骤S112:将关键字与正确识别的对象类型进行并联;
所述步骤S112中的对象类型包括对象类型ID(OBJ_TYPE_ID),对象类型名称(OBJ_TYPE_NAME),执行器类型(EXEC_TYPE)。
步骤S113:并联完成则进行用例编写,首先提取共用变量,将涉及的变量信息进行录入,在将被测对象编写成用例步骤。
所述步骤S113中涉及的变量信息包括:
用例信息:用例信息包括用例ID(TESTCASE_ID),用例名称(TESTCASE_NAME),用例归属(TESTCASE_Adscription),用例路径(TESTCASE_PATH),用例创建人(TESTCASE_Creater);
步骤信息:步骤信息包括步骤ID(STEP_ID),用例ID(TESTCASE_ID),对象ID(OBJ_ID),动作关键字ID(FUNC_ID),检查关键字ID(CHECK_FUNC_ID),步骤序号(STEP_NUM);
变量集信息:变量集信息包括变量集ID(VariableSet_ID),变量集名称(VariableSet_NAME),关联用例ID(TESTCASE_ID);
变量信息:变量信息包括变量ID(Variable_ID),变量名称(Variable_NAME),归属变量集ID(VariableSet_ID);
值信息:值信息包括变量值ID(Value_ID),变量ID(Variable_ID),值内容(Value_Content)。
步骤S12:将用例步骤所涉及的对象信息进行录入。
所述步骤S12中涉及的对象信息包括对象ID(OBJ_ID),对象名称(OBJ_NAME),对象描述(OBJ_DESC),对象类型(OBJ_TYPE),执行器类型(EXEC_TYPE),对象定位识别信息(OBJ_CODE),是否动态对象(IS_Dynamic),父对象ID(Father_ID)。
步骤S2:读取用例进行解析并生成用例代码;
所述步骤S2还包括以下步骤:
步骤S21:解析用例步骤,并将用例步骤分解成包含四个要素的操作对象、动作、校验方法和变量,动作和校验方法都属于关键字库中的具体抽象方法;
步骤S22:替换变量的具体参数,驱动相关关键字运行,实现用例步骤的逻辑;
步骤S23:生成用例代码,根据不同的对象类型关联的执行器生成用例代码;
步骤S24:在不同执行器上执行生成的用例代码。
步骤S3:将生成的用例代码进行选择性执行,如果选择执行则启动执行器进行用例代码执行,如果选择不执行则返回到读取用例进行解析并生成用例代码;
步骤S4:用例代码执行完成则结束,如果未完成则继续执行直至完成则结束。
设计阶段将确定好要测的被测对象拆分成一个个简单的用例步骤。并将被测对象识别正确,分析是否需要新增关键字,将关键字与识别的对象类型进行关联。然后开始编写用例,提取可以共用的变量。用例如果比较复杂,可以把多个简单的用例串成业务流。编写阶段还有一个比较重要的工作就是录入对象,可以根据需要,选择不同的执行器(qtp、selenium、autoIt)来录制对象定位信息。需要录入的对象信息内容有:对象ID(OBJ_ID),对象名称(OBJ_NAME),对象描述(OBJ_DESC),对象类型(OBJ_TYPE),执行器类型(EXEC_TYPE),对象定位识别信息(OBJ_CODE),是否动态对象(IS_Dynamic),父对象ID(Father_ID)。
测试开发工程师根据不同的对象类型和执行器类型编写对应的代码模板,并关联该对象类型。这样同类型的对象可以生成类似的代码,为后面自动生成该执行器的代码做准备。要录入的对象类型信息有:对象类型ID(OBJ_TYPE_ID),对象类型名称(OBJ_TYPE_NAME),执行器类型(EXEC_TYPE)。
要录入的关键字信息有:关键字ID(FUNC_ID),关键字名称(FUNC_NAME),关键字接口代码(FUNC_CODE),代码对应执行器(EXEC_TYPE),代码依赖库(FUNC_LIB),代码路径(FUNC_PATH) 例如,要在QTP下执行对Image类型的点击操作Browser("name:Browser").Page("class:Page").Image("id:getRates").Click这里有3个对象,分别是Browser、Page、Image。Browser没有父对象,Page是Image的父对象,以此类推。Image类型,关联QTP执行器类型,关联点击动作。
编写阶段涉及的变量信息录入:
用例信息:用例ID(TESTCASE_ID),用例名称(TESTCASE_NAME),用例归属(TESTCASE_Adscription),用例路径(TESTCASE_PATH),用例创建人(TESTCASE_Creater)。
步骤信息:步骤ID(STEP_ID),用例ID(TESTCASE_ID),对象ID(OBJ_ID),动作关键字ID(FUNC_ID),检查关键字ID(CHECK_FUNC_ID),步骤序号(STEP_NUM)。
变量集信息:变量集ID(VariableSet_ID),变量集名称(VariableSet_NAME),关联用例ID(TESTCASE_ID)。
变量信息:变量ID(Variable_ID),变量名称(Variable_NAME),归属变量集ID(VariableSet_ID)。
值信息:变量值ID(Value_ID),变量ID(Variable_ID),值内容(Value_Content)。
执行阶段解析用例中的步骤,分解步骤中包含的四个要素:操作对象、动作、校验方法、变量,动作和校验方法都属于关键字库中的具体抽象方法。
替换变量的具体参数,驱动相关关键字运行,实现用例步骤的逻辑。
生成用例代码,根据不同对象类型关联的执行器生成用例代码。
在不同执行器上执行生成的用例代码(qtp、selenium、appium、bat、shell、python、vbs等)。
普通测试人员能参与的部分变多,自动化测试工程师工作量变的简单;对测试工程师要求降低;后期维护成本降低;手工测试和自动化测试能通用;接口测试、功能测试、UI测试、APP测试用例模板差异变小,能通用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种通用自动化软件测试的解析方法,其特征在于,所述解析方法包括以下步骤:
A:将被测对象进行编辑得到具体的用例;
B:读取用例进行解析并生成用例代码;
C:将生成的用例代码进行选择性执行,如果选择执行则启动执行器进行用例代码执行,如果选择不执行则返回到读取用例进行解析并生成用例代码;
D:用例代码执行完成则结束,如果未完成则继续执行直至完成则结束。
2.根据权利要求1所述的解析方法,其特征在于,所述A步骤还包括以下步骤:
A1、将被测对象进行流程拆分成一个个简单的用例步骤;
A2、将用例步骤所涉及的对象信息进行录入。
3.根据权利要求2所述的解析方法,其特征在于,所述A1步骤还包括以下步骤:
A11、将被测对象进行正确识别,录入关键字信息,并分析是否需要新增关键字,如是则进行新增关键字,如否则不需进行新增关键字;
A12、将关键字与正确识别的对象类型进行并联;
A13、并联完成则进行用例编写,首先提取共用变量,将涉及的变量信息进行录入,在将被测对象编写成用例步骤。
4.根据权利要求3所述的解析方法,其特征在于,所述A11步骤中的关键字包括关键字ID(FUNC_ID),关键字名称(FUNC_NAME),关键字接口代码(FUNC_CODE),代码对应执行器(EXEC_TYPE),代码依赖库(FUNC_LIB),代码路径(FUNC_PATH)。
5.根据权利要求4所述的解析方法,其特征在于,所述A12步骤中的对象类型包括对象类型ID(OBJ_TYPE_ID),对象类型名称(OBJ_TYPE_NAME),执行器类型(EXEC_TYPE)。
6.根据权利要求5所述的解析方法,其特征在于,所述A13步骤中涉及的变量信息包括:
用例信息:用例信息包括用例ID(TESTCASE_ID),用例名称(TESTCASE_NAME),用例归属(TESTCASE_Adscription),用例路径(TESTCASE_PATH),用例创建人(TESTCASE_Creater);
步骤信息:步骤信息包括步骤ID(STEP_ID),用例ID(TESTCASE_ID),对象ID(OBJ_ID),动作关键字ID(FUNC_ID),检查关键字ID(CHECK_FUNC_ID),步骤序号(STEP_NUM);
变量集信息:变量集信息包括变量集ID(VariableSet_ID),变量集名称(VariableSet_NAME),关联用例ID(TESTCASE_ID);
变量信息:变量信息包括变量ID(Variable_ID),变量名称(Variable_NAME),归属变量集ID(VariableSet_ID);
值信息:值信息包括变量值ID(Value_ID),变量ID(Variable_ID),值内容(Value_Content)。
7.根据权利要求6所述的解析方法,其特征在于,所述A2步骤中涉及的对象信息包括对象ID(OBJ_ID),对象名称(OBJ_NAME),对象描述(OBJ_DESC),对象类型(OBJ_TYPE),执行器类型(EXEC_TYPE),对象定位识别信息(OBJ_CODE),是否动态对象(IS_Dynamic),父对象ID(Father_ID)。
8.根据权利要求1所述的解析方法,其特征在于,所述B步骤还包括以下步骤:
B1、解析用例步骤,并将用例步骤分解成包含四个要素的操作对象、动作、校验方法和变量,动作和校验方法都属于关键字库中的具体抽象方法;
B2、替换变量的具体参数,驱动相关关键字运行,实现用例步骤的逻辑;
B3、生成用例代码,根据不同的对象类型关联的执行器生成用例代码;
B4、在不同执行器上执行生成的用例代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710950580.4A CN107622017B (zh) | 2017-10-13 | 2017-10-13 | 一种通用自动化软件测试的解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710950580.4A CN107622017B (zh) | 2017-10-13 | 2017-10-13 | 一种通用自动化软件测试的解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107622017A true CN107622017A (zh) | 2018-01-23 |
CN107622017B CN107622017B (zh) | 2020-09-15 |
Family
ID=61091905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710950580.4A Active CN107622017B (zh) | 2017-10-13 | 2017-10-13 | 一种通用自动化软件测试的解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107622017B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908909A (zh) * | 2019-11-21 | 2020-03-24 | 望海康信(北京)科技股份公司 | 自动化测试方法、装置、存储介质及设备 |
CN112181849A (zh) * | 2020-10-23 | 2021-01-05 | 网易(杭州)网络有限公司 | 测试用例识别方法、装置、设备及存储介质 |
CN113742250A (zh) * | 2021-11-05 | 2021-12-03 | 广州易方信息科技股份有限公司 | 接口自动测试方法及装置 |
CN114826756A (zh) * | 2022-05-10 | 2022-07-29 | 深信服科技股份有限公司 | 一种web漏洞检测方法及相关组件 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978258A (zh) * | 2014-04-01 | 2015-10-14 | 中国银联股份有限公司 | 软件自动化测试方法及系统 |
CN105068927A (zh) * | 2015-08-04 | 2015-11-18 | 株洲南车时代电气股份有限公司 | 基于关键字驱动的城轨传动控制单元自动化测试方法 |
US20160378647A1 (en) * | 2014-07-30 | 2016-12-29 | Hitachi, Ltd. | Development supporting system |
CN106991046A (zh) * | 2017-03-24 | 2017-07-28 | 广州酷狗计算机科技有限公司 | 应用测试方法及装置 |
CN107193730A (zh) * | 2017-05-11 | 2017-09-22 | 丹露成都网络技术有限公司 | 一种自动化的接口测试方法 |
-
2017
- 2017-10-13 CN CN201710950580.4A patent/CN107622017B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978258A (zh) * | 2014-04-01 | 2015-10-14 | 中国银联股份有限公司 | 软件自动化测试方法及系统 |
US20160378647A1 (en) * | 2014-07-30 | 2016-12-29 | Hitachi, Ltd. | Development supporting system |
CN105068927A (zh) * | 2015-08-04 | 2015-11-18 | 株洲南车时代电气股份有限公司 | 基于关键字驱动的城轨传动控制单元自动化测试方法 |
CN106991046A (zh) * | 2017-03-24 | 2017-07-28 | 广州酷狗计算机科技有限公司 | 应用测试方法及装置 |
CN107193730A (zh) * | 2017-05-11 | 2017-09-22 | 丹露成都网络技术有限公司 | 一种自动化的接口测试方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908909A (zh) * | 2019-11-21 | 2020-03-24 | 望海康信(北京)科技股份公司 | 自动化测试方法、装置、存储介质及设备 |
CN110908909B (zh) * | 2019-11-21 | 2023-09-22 | 望海康信(北京)科技股份公司 | 自动化测试方法、装置、存储介质及设备 |
CN112181849A (zh) * | 2020-10-23 | 2021-01-05 | 网易(杭州)网络有限公司 | 测试用例识别方法、装置、设备及存储介质 |
CN112181849B (zh) * | 2020-10-23 | 2023-07-25 | 网易(杭州)网络有限公司 | 测试用例识别方法、装置、设备及存储介质 |
CN113742250A (zh) * | 2021-11-05 | 2021-12-03 | 广州易方信息科技股份有限公司 | 接口自动测试方法及装置 |
CN113742250B (zh) * | 2021-11-05 | 2022-03-29 | 广州易方信息科技股份有限公司 | 接口自动测试方法及装置 |
CN114826756A (zh) * | 2022-05-10 | 2022-07-29 | 深信服科技股份有限公司 | 一种web漏洞检测方法及相关组件 |
Also Published As
Publication number | Publication date |
---|---|
CN107622017B (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Baker et al. | Model-driven engineering in a large industrial context—Motorola case study | |
CN102156784B (zh) | 验证环境图形化的芯片验证方法与装置 | |
US8584083B2 (en) | Software application recreation | |
CN110716870B (zh) | 服务的自动化测试方法及装置 | |
CN107622017A (zh) | 一种通用自动化软件测试的解析方法 | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
CN103049371A (zh) | Android应用程序测试方法和测试装置 | |
CN101996131A (zh) | 基于xml封装关键字的gui自动测试方法及自动测试平台 | |
CN101026503A (zh) | Web服务业务流程的单元测试的方法和设备 | |
CN115656792B (zh) | 芯片可测性设计的测试方法及测试平台 | |
González et al. | Test data generation for model transformations combining partition and constraint analysis | |
CN115952758A (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
CN109857637A (zh) | 一种基于注解的Java语言方法覆盖率和方法输入输出统计方法及装置 | |
Tiwari et al. | Reuse: reducing test effort | |
US20090112554A1 (en) | Test Bench, Method, and Computer Program Product for Performing a Test Case on an Integrated Circuit | |
JP2007011605A (ja) | ソフトウェア動作仕様のモデル検査支援装置およびこれを備えたモデル検査システム並びにモデル検査支援プログラム | |
CN111459814A (zh) | 自动化测试用例生成方法、装置及电子设备 | |
Hue et al. | USLTG: test case automatic generation by transforming use cases | |
Villalobos-Arias et al. | Evaluation of a model‐based testing platform for Java applications | |
Kaner | Architectures of test automation | |
CN115794639B (zh) | 基于流程的可视化测试及可视化仿真模拟测试系统和方法 | |
US8065641B2 (en) | Automatically creating manufacturing test rules pertaining to an electronic component | |
Goli et al. | Through the looking glass: Automated design understanding of SystemC-based VPs at the ESL | |
US20180225165A1 (en) | Configurable system wide tests | |
Sharma et al. | Model-based testing: the new revolution in software testing |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210525 Address after: 1403a, building B, innovation building, 198 Daxin Road, majialong community, Nantou street, Nanshan District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen xiaoxiliu Technology Co.,Ltd. Address before: 518000 East, 7th floor, Yizhe building, Yuquan Road, Nanshan District, Shenzhen City, Guangdong Province (office only) Patentee before: SHENZHEN SVI TECHNOLOGY Co.,Ltd. |