CN104978175B - 基于Sikuli的操作信息封装方法及装置 - Google Patents

基于Sikuli的操作信息封装方法及装置 Download PDF

Info

Publication number
CN104978175B
CN104978175B CN201410141393.8A CN201410141393A CN104978175B CN 104978175 B CN104978175 B CN 104978175B CN 201410141393 A CN201410141393 A CN 201410141393A CN 104978175 B CN104978175 B CN 104978175B
Authority
CN
China
Prior art keywords
operation information
picture
packaged
executable file
sikuli
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
CN201410141393.8A
Other languages
English (en)
Other versions
CN104978175A (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.)
Alibaba Singapore Holdings Pte Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410141393.8A priority Critical patent/CN104978175B/zh
Publication of CN104978175A publication Critical patent/CN104978175A/zh
Application granted granted Critical
Publication of CN104978175B publication Critical patent/CN104978175B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种基于Sikuli的操作信息封装方法及装置。本申请实施例通过获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求,进而利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口,使得能够根据所述公共接口,生成可执行的文件包,由于待封装的操作信息中通过HTTP请求引用图片,使得可执行的文件包无需对路径进行处理,因此,能够避免现有技术中由于Jar包对路径处理存在难点,使得目前无法实现封装有GUI元素引用的公共接口的Jar包的调用的问题,从而提高了公共方法调用的可靠性。

Description

基于Sikuli的操作信息封装方法及装置
【技术领域】
本申请涉及测试技术,尤其涉及一种基于Sikuli的操作信息封装方法及装置。
【背景技术】
Sikuli是由麻省理工学院(Massachusetts Institute of Technology,MIT)的研究团队发布的新型图形化编程技术,可以利用屏幕截图直接引用图形用户界面(GraphicalUser Interface,GUI)元素进行编程,完成交互操作。在软件测试过程例如,用户界面(Userinterface,UI)测试中,可以进一步利用Sikuli提供的应用程序编程接口(ApplicationProgramming Interface,API),将一些公共操作封装成公共接口,进而生成Java归档文件(Java Archive,Jar)包,以供其他外部方法进行调用。
然而,由于Jar包对路径处理存在难点,使得目前无法实现封装有GUI元素引用的公共接口的Jar包的调用,从而导致了公共方法调用的可靠性的降低。
【发明内容】
本申请的多个方面提供一种基于Sikuli的操作信息封装方法及装置,用以提高公共方法调用的可靠性
本申请的一方面,提供一种基于Sikuli的操作信息封装方法,包括:
获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求;
利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口;
根据所述公共接口,生成可执行的文件包。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述可执行的文件包包括JAR包。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述图片包括GUI元素。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求之前,还包括:
采用SVN方式,将所述至少一个图片部署在第一服务器上。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述公共接口,生成可执行的文件包之后,还包括:
将所述可执行的文件包上传到第二服务器上,以供进行下载。
本申请的另一方面,提供一种基于Sikuli的操作信息封装装置,包括:
获取单元,用于获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求;
封装单元,用于利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口;
导出单元,用于根据所述公共接口,生成可执行的文件包。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述可执行的文件包包括JAR包。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述图片包括GUI元素。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括图片部署单元,用于
采用SVN方式,将所述至少一个图片部署在第一服务器上。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括下载部署单元,用于
将所述可执行的文件包上传到第二服务器上,以供进行下载。
由上述技术方案可知,本申请实施例通过获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求,进而利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口,使得能够根据所述公共接口,生成可执行的文件包,由于待封装的操作信息中通过HTTP请求引用图片,使得可执行的文件包无需对路径进行处理,因此,能够避免现有技术中由于Jar包对路径处理存在难点,使得目前无法实现封装有GUI元素引用的公共接口的Jar包的调用的问题,从而提高了公共方法调用的可靠性。
另外,采用本申请提供的技术方案,由于待封装的操作信息中通过HTTP请求引用图片,因此,只需要将图片部署在外部服务器上,而无需封装在可执行的文件包中,这样,能够有效减小可执行的文件包的大小,节省了可执行的文件包的下载时间,从而提高了公共方法的代码的编译效率。
另外,采用本申请提供的技术方案,由于待封装的操作信息中通过HTTP请求引用图片,因此,只需要将图片部署在外部服务器上,而无需封装在可执行的文件包中,这样,能够在外部服务器上独立操作图片,例如,修改图片等,从而提高了公共方法调用的灵活性。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的基于Sikuli的操作信息封装方法的流程示意图;
图2为本申请另一实施例提供的基于Sikuli的操作信息封装装置的结构示意图;
图3为本申请另一实施例提供的基于Sikuli的操作信息封装装置的结构示意图;
图4为本申请另一实施例提供的基于Sikuli的操作信息封装装置的结构示意图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本申请一实施例提供的基于Sikuli的操作信息封装方法的流程示意图,如图1所示。
101、获取待封装的操作信息,所述操作信息中包含至少一个图片的超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求。
具体地,待封装的操作信息为一些公共方法,例如,点击图片所示的按钮等。一般来说,图片可以为利用屏幕截图所获得的GUI元素。由于操作信息涉及了图片的引用,因此,在操作信息中,需要包含所引用图片的HTTP请求。例如,一个图片的HTTP请求可以为如下:
http://10.125.10.176:8080/ie/public/comtinue.png。
可选地,在本实施例的一个可能的实现方式中,还可以进一步将所述至少一个图片部署在第一服务器上。
其中,所述第一服务器可以为任意一种万维网(World Wide Web,Web)服务器,例如,tomcat服务器、apache服务器或jetty服务器等,本实施例对此不进行特别限定。
具体地,具体可以采用版本控制系统(subversion,SVN)方式,将所述至少一个图片部署在第一服务器上。例如,将所述至少一个图片部署在SVN服务器上进行管理,进而再部署到所述第一服务器上。其中,SVN服务器对数据进行管理的详细描述可以参见现有技术中的相关内容,此处不再赘述。由于SVN服务器可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,中央版本库非常像普通的文件服务器。用户可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这样,能够有效提高图片管理的可靠性和灵活性。
102、利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口。
例如,可以利用Sikuli提供的API,即org.sikuli.script.Region中的click()方法和exists()方法,以及org.sikuli.script.Screen,对所述操作信息进行封装,以获得公共接口可以为如下形式:
103、根据所述公共接口,生成可执行的文件包。
可选地,在本实施例的一个可能的实现方式中,通过执行103,所生成的所述可执行的文件包可以包括但不限于JAR包。
可选地,在本实施例的一个可能的实现方式中,在103之后,还可以进一步将所述可执行的文件包上传到第二服务器上,以供进行下载。这样,当其他外部方法需要进行公共方法的调用时,只需要在外部方法的代码的POM配置文件中配置这个可执行的文件包即可。
其中,所述第二服务器可以为任意一种仓库服务器,例如,利用Nexus或Artifactory搭建的Maven仓库服务器等,本实施例对此不进行特别限定。
本实施例中,通过获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求,进而利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口,使得能够根据所述公共接口,生成可执行的文件包,由于待封装的操作信息中通过HTTP请求引用图片,使得可执行的文件包无需对路径进行处理,因此,能够避免现有技术中由于Jar包对路径处理存在难点,使得目前无法实现封装有GUI元素引用的公共接口的Jar包的调用的问题,从而提高了公共方法调用的可靠性。
另外,采用本申请提供的技术方案,由于待封装的操作信息中通过HTTP请求引用图片,因此,只需要将图片部署在外部服务器上,而无需封装在可执行的文件包中,这样,能够有效减小可执行的文件包的大小,节省了可执行的文件包的下载时间,从而提高了公共方法的代码的编译效率。
另外,采用本申请提供的技术方案,由于待封装的操作信息中通过HTTP请求引用图片,因此,只需要将图片部署在外部服务器上,而无需封装在可执行的文件包中,这样,能够在外部服务器上独立操作图片,例如,修改图片等,从而提高了公共方法调用的灵活性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图2为本申请另一实施例提供的基于Sikuli的操作信息封装装置的结构示意图,如图2所示。本实施例的基于Sikuli的操作信息封装装置可以包括获取单元21、封装单元22和导出单元23。其中,
获取单元21,用于获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求。
具体地,待封装的操作信息为一些公共方法,例如,点击图片所示的按钮等。一般来说,图片可以为利用屏幕截图所获得的GUI元素。由于操作信息涉及了图片的引用,因此,在操作信息中,需要包含所引用图片的HTTP请求。例如,一个图片的HTTP请求可以为如下:
http://10.125.10.176:8080/ie/public/comtinue.png。
可选地,在本实施例的一个可能的实现方式中,如图3所示,本实施例提供的基于Sikuli的操作信息封装装置还可以进一步包括图片部署单元31,具体可以将所述至少一个图片部署在第一服务器上。其中,所述第一服务器可以为任意一种万维网(World WideWeb,Web)服务器,例如,tomcat服务器、apache服务器或jetty服务器等,本实施例对此不进行特别限定。
具体地,所述图片部署单元31具体可以采用版本控制系统(subversion,SVN)方式,将所述至少一个图片部署在第一服务器上。例如,所述图片部署单元31将所述至少一个图片部署在SVN服务器上进行管理,进而再部署到所述第一服务器上。其中,SVN服务器对数据进行管理的详细描述可以参见现有技术中的相关内容,此处不再赘述。由于SVN服务器可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,中央版本库非常像普通的文件服务器。用户可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这样,能够有效提高图片管理的可靠性和灵活性。
封装单元22,用于利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口。
例如,所述封装单元22可以利用Sikuli提供的API,即org.sikuli.script.Region中的click()方法和exists()方法,以及org.sikuli.script.Screen,对所述操作信息进行封装,以获得公共接口可以为如下形式:
导出单元23,用于根据所述公共接口,生成可执行的文件包。
可选地,在本实施例的一个可能的实现方式中,所述导出单元23通过相应的操作,所生成的所述可执行的文件包可以包括但不限于JAR包。
可选地,在本实施例的一个可能的实现方式中,如图4所示,本实施例提供的基于Sikuli的操作信息封装装置还可以进一步包括下载部署单元41,用于将所述可执行的文件包上传到第二服务器上,以供进行下载。这样,当其他外部方法需要进行公共方法的调用时,只需要在外部方法的代码的POM配置文件中配置这个可执行的文件包即可。
其中,所述第二服务器可以为任意一种仓库服务器,例如,利用Nexus或Artifactory搭建的Maven仓库服务器等,本实施例对此不进行特别限定。
本实施例中,通过获取单元获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求,进而由封装单元利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口,使得导出单元能够根据所述公共接口,生成可执行的文件包,由于待封装的操作信息中通过HTTP请求引用图片,使得可执行的文件包无需对路径进行处理,因此,能够避免现有技术中由于Jar包对路径处理存在难点,使得目前无法实现封装有GUI元素引用的公共接口的Jar包的调用的问题,从而提高了公共方法调用的可靠性。
另外,采用本申请提供的技术方案,由于待封装的操作信息中通过HTTP请求引用图片,因此,只需要将图片部署在外部服务器上,而无需封装在可执行的文件包中,这样,能够有效减小可执行的文件包的大小,节省了可执行的文件包的下载时间,从而提高了公共方法的代码的编译效率。
另外,采用本申请提供的技术方案,由于待封装的操作信息中通过HTTP请求引用图片,因此,只需要将图片部署在外部服务器上,而无需封装在可执行的文件包中,这样,能够在外部服务器上独立操作图片,例如,修改图片等,从而提高了公共方法调用的灵活性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或页面组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一个计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种基于Sikuli的操作信息封装方法,其特征在于,包括:
获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求;
利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口;
根据所述公共接口,生成可执行的文件包。
2.根据权利要求1所述的方法,其特征在于,所述可执行的文件包包括JAR包。
3.根据权利要求1所述的方法,其特征在于,所述图片包括GUI元素。
4.根据权利要求1~3任一权利要求所述的方法,其特征在于,还包括:
采用SVN方式,将所述至少一个图片部署在第一服务器上。
5.根据权利要求1~3任一权利要求所述的方法,其特征在于,所述根据所述公共接口,生成可执行的文件包之后,还包括:
将所述可执行的文件包上传到第二服务器上,以供进行下载。
6.一种基于Sikuli的操作信息封装装置,其特征在于,包括:
获取单元,用于获取待封装的操作信息,所述操作信息中包含至少一个图片的HTTP请求;
封装单元,用于利用Sikuli提供的API,对所述操作信息进行封装,以获得公共接口;
导出单元,用于根据所述公共接口,生成可执行的文件包。
7.根据权利要求6所述的装置,其特征在于,所述可执行的文件包包括JAR包。
8.根据权利要求6所述的装置,其特征在于,所述图片包括GUI元素。
9.根据权利要求6~8任一权利要求所述的装置,其特征在于,所述装置还包括图片部署单元,用于
采用SVN方式,将所述至少一个图片部署在第一服务器上。
10.根据权利要求6~8任一权利要求所述的装置,其特征在于,所述装置还包括下载部署单元,用于
将所述可执行的文件包上传到第二服务器上,以供进行下载。
CN201410141393.8A 2014-04-09 2014-04-09 基于Sikuli的操作信息封装方法及装置 Active CN104978175B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410141393.8A CN104978175B (zh) 2014-04-09 2014-04-09 基于Sikuli的操作信息封装方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410141393.8A CN104978175B (zh) 2014-04-09 2014-04-09 基于Sikuli的操作信息封装方法及装置

Publications (2)

Publication Number Publication Date
CN104978175A CN104978175A (zh) 2015-10-14
CN104978175B true CN104978175B (zh) 2019-04-30

Family

ID=54274714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410141393.8A Active CN104978175B (zh) 2014-04-09 2014-04-09 基于Sikuli的操作信息封装方法及装置

Country Status (1)

Country Link
CN (1) CN104978175B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446880A (zh) * 2015-11-23 2016-03-30 北京思德泰科科技发展有限公司 一种基于Linux图形界面的互联网彩票自助终端的自动测试方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521120A (zh) * 2011-11-16 2012-06-27 中国民航信息网络股份有限公司 一种软件自动化测试系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060082353A (ko) * 2005-01-12 2006-07-18 와이더댄 주식회사 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법
CN102289378B (zh) * 2011-09-30 2014-12-03 互动在线(北京)科技有限公司 自动生成应用程序的方法
CN102722370B (zh) * 2012-05-24 2016-05-25 南京华设科技股份有限公司 Android模块化开发方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521120A (zh) * 2011-11-16 2012-06-27 中国民航信息网络股份有限公司 一种软件自动化测试系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Java获取URL对应的资源";leizhimin;《http://lavasoft.blog.51cto.com/62575/120445/》;20081217;第1-3页

Also Published As

Publication number Publication date
CN104978175A (zh) 2015-10-14

Similar Documents

Publication Publication Date Title
CN103269396B (zh) 一种对移动终端进行管理的方法和系统
US10073553B2 (en) Scripting cross-device wearable interaction
EP3118730B1 (en) Method for operating electronic device, and electronic device
US9047404B1 (en) Bridge to connect an extended development capability device to a target device
EP3035177B1 (en) Electronic device and method of controlling object in electronic device
CN111756917B (zh) 信息交互方法、电子设备和计算机可读介质
JP6214527B2 (ja) メッセージアカウントの選択的リンク
US20170185248A1 (en) Electronic device and method of managing application programs thereof
US9459990B2 (en) Automatic and transparent application logging
CN103995722B (zh) 在屏幕上同时开启多个窗口的方法及设备
CN106031157A (zh) 用于处理图像的电子设备和方法
CN104820683A (zh) 一种终端
WO2016161890A1 (zh) 一种数据上传的方法及其装置
US10541854B2 (en) Component loading based on user interactions
CN104978175B (zh) 基于Sikuli的操作信息封装方法及装置
CN103975301B (zh) 通过本地服务器对本地客户机应用进行事件服务的方法
CN110275736A (zh) 获取应用程序的运行数据方法、装置、设备及可读介质
CN104375831A (zh) 实现终端设备上的网页和应用间通信的方法、装置和系统
CN105119944B (zh) 一种应用的启动方法和相关装置
CN110069185B (zh) 用于联合运行寄宿应用的方法和设备
CN110377514A (zh) 软件构件的管理方法、装置、电子设备和存储介质
CN111078215B (zh) 软件产品应用方法及装置、存储介质及电子设备
CN112558968B (zh) 一种资源树视图的生成方法、装置、设备及存储介质
CN103955515B (zh) 双核浏览器的处理方法及装置
US20140215392A1 (en) Connections identification

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20240329

Address after: # 01-21, Lai Zan Da Building 1, 51 Belarusian Road, Singapore

Patentee after: Alibaba Singapore Holdings Ltd.

Country or region after: Singapore

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: ALIBABA GROUP HOLDING Ltd.

Country or region before: Cayman Islands